Введення в програмування. Комп’ютерне програмування
Теорія
Простіше кажучи, комп’ютерне програмування — це спосіб змусити комп’ютери виконувати різні завдання. Це процес написання набору інструкцій (також відомого як код), який машина може зрозуміти та змусити машину виконувати їх. Кінцевою метою може бути розв’язання математичного рівняння, автоматизація нудного завдання або створення веб-сторінки, частини програмного забезпечення, мобільної програми чи цілої гри.
Комп’ютерне програмування вимагає технічних навичок і творчого мислення. Хтось називає це наукою, хтось мистецтвом.
Щоб мати повне уявлення про те, що таке комп’ютерне програмування, нам потрібно виділити два моменти у визначенні: «змушувати комп’ютери виконувати завдання» та «написати набір інструкцій, які машина може зрозуміти". Спершу поговоримо про інструкції.
Що таке мови програмування?
Отже, як ви можете написати цей набір інструкцій? Подумайте про комп’ютер як про свого іноземного друга. Вони не розуміють жодної мови, крім своєї рідної, і потребують дуже простих і зрозумілих описів кожної дії, яку ви хочете від них виконати. Чому ця остання частина? Ну, тому що вони ваші іноземні друзі-мандрівники в часі. Бачите, тепер ця метафора захоплює мене. Ваш комп’ютер – ваш закордонний друг у подорожах у часі з, наприклад, 12 століття. Ось чому він ні про що нічого не знає.
Дотримуючись цієї логіки, ви не можете просто сказати своєму комп’ютеру «зателефонувати Стіву з бухгалтерії». Вам потрібно описати кожну окрему дію, яку включає це замовлення:
- Візьміть трубку
- Натисніть кнопку, щоб увімкнути екран
- Проведіть пальцем по телефону, щоб розблокувати його
- Відкрийте Контакти
- Введіть «Steve from accounting» у пошуковий запит
- Відкрийте контакт Стіва
- Натисніть кнопку виклику
А що це було з рідною мовою? Комп’ютери не розуміють англійської чи української, але вони розуміють мови програмування, такі як C, Python або Java. Це трохи спрощення, оскільки комп’ютери насправді їх не розуміють — вони розуміють лише машинний код. Розробники програмного забезпечення використовують компілятори для перекладу вихідного коду, який вони пишуть, у машинний код, але ми не хочемо перевантажувати вас усією цією інформацією.
Існує більше тисячі мов програмування. Старі мови продовжують розвиватися, а нові з’являються. Нижче ви можете переглянути найпопулярніші мови програмування в серпні 2023 року згідно з PYPL Popularity of Programming Language. Цей список швидко змінюється, тому для отримання більш відповідних даних відвідайте їхній сайт.
У всьому світі, серпень 2023 року порівняно з роком тому:
Rank | Language | Share | Trend |
---|---|---|---|
1 | Python | 28.04 | +0.3% |
2 | Java | 15.78 | -1.3% |
3 | JavaScript | 9.27 | -0.2% |
4 | C# | 6.77 | -0.2% |
5 | C/C++ | 6.59 | +0.4% |
6 | PHP | 5.01 | -0.4% |
7 | R | 4.35 | +0.0 |
8 | TypeScript | 3.09 | +0.3% |
9 | Swift | 2.54 | +0.5% |
10 | Objective-C | 2.15 | +0.1% |
11 | Rust | 2.14 | +0.5% |
12 | Go | 1.93 | -0.2% |
13 | Kotlin | 1.77 | -0.0% |
14 | Matlab | 1.63 | +0.1% |
15 | Ada | 1.08 | +0.3% |
16 | Ruby | 1.06 | -0.1% |
Кожна комп’ютерна мова має свої власні цілі та переваги, і деякі мови краще підходять для конкретних програм і завдань. Одні мови складніші, інші менш складні. Деякі з них прості та популярні, інші — з нюансами та нішеві. Важливо пам’ятати, що так само, як англійська, українська чи будь-яка інша мова, мови програмування мають частини, конструкції та концепції, які є спільними для всіх них. Отже, вивчити іншу комп’ютерну мову буде так само важко (або так само легко), як вивчити іноземну. Якщо ви розумієте речення "I can write" ("Я вмію писати") англійською мовою, у вас не виникне особливих проблем із сприйняттям поняття "ich kann schreiben" німецькою мовою.
Як вибрати мову програмування?
Вибираючи мову, ви повинні запитати себе, якою роботою ви б хотіли займатися. І це підводить нас до частини питання «змусити комп’ютери виконувати завдання». Подумайте, чому ви хочете навчитися кодувати. Хочеш стати розробником ігор? Хочете створювати мобільні додатки? Ви хочете створювати веб-сайти? А може вам потрібне програмування для автоматизації роботи з науково-статистичними даними?
Кожне поле діяльності містить певну кількість мов. Веб-розробка, наприклад, розрізняє два основних типи програмування: фронтенд розробку та бекенд розробку.
Фронтенд (інтерфейс) веб-сайту – це частина, яку бачать користувачі. Шрифти, кольори, повзунки, панелі та меню створюються за допомогою поєднання HTML, CSS і JavaScript. Подумайте про це як про дизайн інтер’єру будинку. У цьому сенсі бекенд-розробка схожа на будівництво будинку. Він включає в себе сервер, додаток і базу даних. Робота бекенд-розробника полягає в створенні та підтримці цих компонентів. Тут можна використовувати багато різних мов, наприклад, PHP, Python, Java тощо.
Отже, справа не у виборі мови. Це більше стосується вибору сфери вашої діяльності. Якщо ви хочете створювати програми для Android, виберіть Java або Kotlin; для програм iOS виберіть Swift, а якщо ви хочете розробляти ігри, вивчіть C або C++. І якщо ваша відповідь на запитання «чому» — «щоб заробити багато грошей, і т.п.», розгляньте найбільш використовувані мови програмування та почніть з них.
Що мені очікувати?
Багато з цього здається рутиною, а коли це не так, це більше схоже на удар головою об цегляну стіну посеред пустелі. Проте так багато людей знаходять у цьому велику радість. Програмування – це не лише мови, синтаксис і компілятори, це весь процес логічного мислення, який робить його таким корисним. Ніколи не існує «найкращого» вирішення проблеми. Ви завжди хочете зробити це швидшим, кращим і більшим.
Програмування вчить думати інакше. Це вчить вас думати про те, як речі працюють і чому вони працюють так чи інакше. Процес кодування схожий на головоломку, яку ви постійно намагаєтеся розгадати.
Програмування вчить терпіння. Це одна з найбільш стресових і обтяжливих речей, які ви можете зробити. Багато людей розчаровуються і кидають навчання, коли їхній код не працює з першого разу. Але правда в тому, що це нормальний процес. У програмістів з багаторічним досвідом все ще бувають моменти, коли їхній код не працює, і вони не знають, чому. Але терпіння та наполегливість є ключовими рисами, які привели їх туди, де вони є зараз.
Суть у тому, що програмування – це навичка. І, як і з будь-якою навичкою, вам потрібно докласти трохи часу та зусиль, щоб побачити результати. Hyperskill допоможе вам освоїти навички програмування - виконуйте проєкти, щоб отримати досвід у популярних мовах. Наша платформа пропонує навчальну програму, яка крок за кроком проведе вас із новою інформацією. Хай щастить!
Ви також можете переглянути Урок на сайті hyperskill.org.
Практичні завдання та відповіді
Подаються завдання та варіанти відповідей. Правильний варіант виділено синім кольором.
№1. Справжній програміст
Запитання: Що вам обов’язково потрібно, щоб стати програмістом?
Виберіть один варіант зі списку:
- Купити дуже дорогий комп’ютер
- Зламати веб-сайт
- Знати не менше трьох іноземних мов
- Багато навчатися та практикуватися ✔
№2. Власник Java
Питання: Хто є власником Java?
Виберіть один варіант зі списку:
- Tencent
- Корпорація Oracle ✔
- Amazon
- Microsoft
№3. Програми Java
Запитання: Виберіть правильну відповідь про те, для чого можна використовувати Java.
Виберіть один або кілька варіантів зі списку:
- Медичні програми ✔
- Індустрія фінансових послуг ✔
- Смартфони Android ✔
- Комп’ютерні ігри ✔