З часу появи комп'ютерів, світ стрімко змінився. В теперішні часи, вже не потрібно стояти в черзі, щоб здати свою перфокарту юній дамі, яка, через деякий час, видасть результати Ваших обчислень у паперовому вигляді. Тепер, Ваші обчислення виконуються на персональному комп'ютері. Які у свою чергу являються універсальними - себто Ви можете виконувати на них довільні обчислення, з довільною (але не безкінечною) точністю. Це відбувається завдяки їхній властивості виконувати довільні програми. А хто пише усі ці програми? Звичайно, що ми - люди. Але якщо ми поглянемо на різномаїття способів написання програм з точки зору мов програмування, виникає питання: а яку саме мову обрати? Яка саме мова найкраще підійде для вирішення нашої задачі? З цього моменту, необхідно поглянути на саму задачу. Можливо Ви бажаєте копатись у нутрощах операційної системи, програм до неї, асемблерному коді на дану платформу, писати драйвери пристроїв; тоді вашими мовами стануть C/C++, Асемблер, а якщо ви хитрий садомазохіст то Pascal чи Basic. Ви можете бажати писати корисні і цікаві програми для операційної системи, але кросплатформенно, тоді вам підійдуть Java (також для мобільних пристроїв), Python. Якщо Ви бажаєте писати web-сайти і отримувати за це прибуток, тоді безсумнівно Вашими основними мовами будуть HTML (розмітка) PHP (динамічний контент, скриптинг), SQL (робота з базою даних). Сайти також можна писати і на інших мовах, як от Perl чи С++ (я про це напишу пізніше), але це непопулярні методи.

Системне програмування

Для системного програмування, на мою думку, найкраще підходять С/С++. Хоча про це можна дискутувати бескінечно, тому, що вибір мови являється дуже особистим і тонким питанням. Не одна сторінка в Інтернеті наповнилась гнівними суперечками на рахунок того, чия мова краща. Але зара тут не про це. Як виглядає код на С чи С++? Ось так виглядає проста програма "Привіт, Світ" на С.
#include <stdio.h>;

int main ()
{
    printf("Привіт, Світ!\n") ;
}
Якщо Ви вмієте користуватися системним командним інтерпретатором (себто терміналом) і запустите на виконання дану програму (не забудьте, що її спочатку необхідно скомпілювати), Ви отримаєте наступне: Екран-Terminal-2 Ось програма дещо складніша:
#include <stdio.h>

int main()
{
    int a, b ;

    printf("Введіть число a: ");
    scanf("%i", &a) ;

    printf("Введіть число b: ");
    scanf("%i", &b) ;

    printf("a + b = %i\n", a + b ) ;

    return 0 ;
}
При запуску її (скомпільованої) в терміналі ми побачимо наступне: Екран-Terminal-3 Очевидно, що програма додає два цілих числа, які попередньо зчитує, і виводить кінцевий результат обчислення на екран. Але це є надпроста програма - нею нікого не здивуєш. Усі корисні програми містять сотні, тисячі, а деякі і мільйони рядків коду. Не хвилюйтеся, по мірі Вашого росту в даній області, Ваші програми ставатимуть все кориснішими і більшими. Хоча необхідно пам'ятати, що величина кількості коду не завжди відповідає його якості чи корисності. Ваша програма може певним чином використовувати іншу програму, відповідно зменшивши об'єм свого коду, але її крисність від цього не зменшиться. Окрім самих мов C/C++ вам також будуть необхідні знання стандартної бібліотеки С (тобто її функцій, наприклад printf, scanf і інші ), а якщо ви плануєте використовувати С++ - вам також будуть необхідними знання бібліотеки STL (Standard Template Library - Стандартна Бібліотека Шаблонів). За необхідністю ви також повинні навчитись використовувати і інші бібліотеки системи. Асемблер являється дуже низькорівневою мовою програмування. Мова настільки низькорівнева, що навіть базова функція виводу повідомлення на екран перетворюється на головний біль. У ньому ви не знайдте типових для Вас операторів "+", "-" "=" чи "/". Щоб додати два числа необхідно працювати з регістрами і операторами додавання. Ось приклад програми "Привіт, Світ" на асемблері синтаксису компанії AT&T для комп'ютерів PC:
.text                   # оголошення секції

.global _start      # оголошуємо вхідну точку програми

_start:

# Пишемо у stdout
movl    $len,%edx         # третій аргумент - довжина повідомлення
movl    $msg,%ecx       # другий аргумент - вказівник на повідомлення
movl    $1,%ebx            # перший аргумент - файловий дескриптор (stdout)
movl    $4,%eax            # номер системного виклику (sys_write)
int     $0x80                   # переривання для виконання функції ядром

# і вихід
movl    $0,%ebx         # перший аргумент - код завершення програми
movl    $1,%eax         # номер системного виклику (sys_exit)
int     $0x80                # переривання для виконання функції ядром

.data                           # оголошення секції даних

msg:
.ascii "Hello, world!!!\n" # наше повідомлення
len = 30                   # довжина повідомлення
Доволі таки страшно, чи не так? Але основна перевага асемблера полягає у тому, що ним можна писати програми, які дуже швидко виконуються, або програми, які використовують спеціальні можливості процесора. В даному питанні, вам не допоможуть високорівневі мови програмування на подобі С++ чи Java, хіба-що хтось вже написав модулі на асемблері для цих мов. Очевидно, що недоліком тут являється занадто великі витрати на написання програми. За допомогою даних мов можна створювати найрізноманітніші програми. До їх складу входять: ігри, віконні програми, програми - сервіси, серверні програми, спеціалізовані редактори, чатові системи, унікальні віджети, браузери і багато чого іншого.

Web-програмування

Основою веб програмування або створення веб сторінок, являється мова розмітки HTML. Без неї в Інтернеті ніде і не сунешся. Але не хвилюйтеся - до складу мови розмітки HTML входять всього кілька десятків теґів на подобі "<html></html>", отже її освоєння не буде спонукати великих зусиль. Ось базова структура html-сторінки:
<html>

    <head>
    
        <title>
        </title>
        
    </head>
    
    <body>

    </body>
    
</html>
Між теґами і безпосередньо розміщується тіло видимої для користувача сторінки. Між тегами i розміщуються посилання на додаткові файли сторінки, її налаштування, основні пошукові теґи і інше. Але за допомогою HTML можна будувати тільки статичні сторінки, тобто сторінки, які з часом не можуть автоматично змінитися (нові коментарі, нові статті тощо). І тут на допомогу нам приходить популярна мова PHP. Ось приклад скрипту PHP:
<html>

    <head>
    
        <title>
        </title>
        
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        
    </head>
    
    <body>

    <?php
        
        echo '<h1> Привіт, Світ! </h1><br>' ;
        
        for ($i=1; $i<=10; $i++) echo $i. ' ' ;
    ?>

    </body>
    
</html>
Після того, як Ви збережете даний файл у спеціалізованій директорі вашого Web-сервера, яка призначена для php-файлів сайту і через браузер відкриєте даний файл Ви отримаєте наступне: Екран-localhost-sample.php - Google Chrome На даний момент, для створення сайтів в основному використовуються спеціальні системи управління контентом (CMS - Сontent Managment System). Але все-одно вам будуть необхідні спеціалізовані знання, щоб налаштовувати їх необхідним чином. Окрім HTML i PHP вам також будуть необхідні знання CSS (Cascading Style Sheets - каскадні таблиці стилів), і мову баз даних SQL (Structured Query Language - Структурна Мова Запитів). Ну як, обрали свою мову? У наступних статтях, Я розкажу Вам, як легко вивчаються практично усі мови програмування.