Хто такий програміст, що означає “писати код” і як зараз можна увійти в IT, журналістка Суспільного Вікторія Волошаненко говорила з кропивницьким android-розробником Костянтином Горбачем.
Що відомо: 28 лютого – неофіційне свято всіх IT-фахівців. Саме цього дня у 1956 році був запатентований мережевий кабель для комп’ютерів. IT-фахівець – це загальна назва для людей, які працюють в сфері інформаційних технологій (ІТ - Information Technologies). Програмісти – основа IT, бо створюють, “пишуть” всі ці технології.
Стати програмістом можна в будь-якому віці
23-річний Костянтин Горбач – розробник додатків для мобільних пристроїв з операційною системою Android. Він також представник команди кропивницької школи програмування Ш++ . Пише програми два роки. До цього не припускав, що працюватиме в IT.
Почалося все випадково – як не дивно, з вивчення іспанської мови, розповідає Костянтин. “Я ніколи не думав, що цим займатимуся. Якось прийшов до друга-філолога, з яким ми вивчали іспанську мову. В нього була відкрита С++ (мова програмування – ред.) – і середовище для розробки, і навчальний курс. Я спочатку жартома спитав, чи з ним усе нормально. Друг каже – мені цікаво. Я тоді особливо нічим не займався, тому теж вирішив взятися за це. Ми разом почали навчатися. Другові це швидко набридло, а я, як бачте, продовжив”.
Першою написаною програмою, каже Костянтин, для нього став генератор випадкових чисел. Тут поштовхом стала настільна гра. “Щоб зробити один хід, часом треба було вісім разів кинути кубики і потім порахувати суму результатів. Мені це набридло. Я вже знав С++, міг викликати рандомне число і за два вечори написав програму. Потім мені знову стало нудно, і я став додавати звукові ефекти залежно від результату”.
Якщо вимірювати програму сукупністю рядків і синтаксичних символів, то, за словами Костянтина, генератор зайняв стандартний аркуш формату А4.
Зараз профільною для Костянтина є операційна система Android. Тут він почав з того, що написав тест для перевірки знань з англійської мови з чотирма варіантами відповіді, підказками і результатами.
Першим серйозним завданням, виконаним уже для замовника, стало створення програми, яка дозволяє фірмі резервувати кімнату для перемовин – відстежити, чи приміщення зайняте, коли там закінчиться попередня зустріч і, зрештою, замовити для себе цю кімнату. “Це було дуже складно, – розповідає Костянтин. – Тоді я тільки прийшов у компанію. Допомогло, що кожні два дні контактував з техлідом (технічним керівником, англ.Tech Lead – ред.) ”.
Немає ідеальної мови програмування
“Коли починаєш вчити програмування, не важливо, яка мова, – каже Костянтин. – Але в межах розумного, звичайно. Починати з Haskell (мова програмування – ред.) я б не радив”. За словами розробника, він загалом мав справу з п’ятьма мовами. “Люди вкладають різне значення в поняття “знати мови програмування”. Я зараз працюю на Kotlin, до цього була Java. Можу писати на обох мовах. У всякому разі якщо я створю додаток, то він працюватиме. Мав справу з Python і JavaScript. Меншою мірою – з С++. У цілому не можна сказати про мову – легша чи важча. Це насамперед залежить від задач, для яких вона використовується. Хоча, звичайно, є мови, яких жартома чи напівжартома програмісти бояться. Я чув таке це про Haskell і Lisp. Хоча б тому, що там специфічний синтаксис і багато дужок. Взагалі в середовищі розробників, звичайно, є свої жарти”.
Про творчість і рутину
“Якщо говорити про творчість і рутину, то в програмуванні буває по-різному, – розповідає Костянтин. – Якщо приходить нове завдання, з яким ти досі не стикався, то це творчість. А коли ти зробив додаток, а тобі говорять – треба це все переробити для менших екранів, то це вже стає рутиною”.
За спостереженнями Костянтина, математика не потрібна в 98% випадків, але, як каже розробник “потрібні нейронні зв’язки, які створювалися, поки ми вчили математику в школі”. Тим не менше, у решті двох відсотках знання математики все ж допомагають.
Що потрібне, так це знання англійської мови. Це знадобиться для спілкування з закордонними замовниками, особливо для вивчення технічної документації. “Документація від початку виходить англійською мовою, – каже Костянтин. – І її можуть або довго перекладати, або взагалі цього не робити. А там якраз описуються нові технології, а також, можливо, і старі, але ти їх, наприклад, ще не знаєш. Грубо кажучи, код теж пишеться англійською. Щодо мене, то я англійську вивчив на іграх і серіалах”.
Якщо ви хочете стати програмістом
“Новачкам раджу прийти в Ш++”, – каже Костянтин. Це кропивницька школа програмування, де і дорослих, і дітей навчають безкоштовно. Є можливість онлайн-навчання. Також можна самому в інтернеті пошукати якість текстові і відеоматеріали для навчання, каже Костянтин, але тут є небезпека заплутатися в знайденому.
Людина має визначитися, що їй саме потрібно, і яких цілей хоче досягти через програмування. При цьому мінімальні технічні вимоги якраз не є перепоною, каже розробник. “ С++ можна кодити на Code Blocks (середовище програмування – ред.), якому практично нічого не треба. Будь-який ноутбук потягне, навіть якщо йому 10 років. А ось Android Studio може не запуститися або ж півгодини завантажуватиме всі бібліотеки. Для JavaScript треба тільки браузер. Але на старих комп’ютерах може бути замало оперативної пам’яті”.
Почати роботу як програміст можна в будь-якому віці
“Програмістами ніколи не стануть ліниві люди, які не вірять у себе, – каже Костянтин Горбач. – Вікових обмежень немає. У школі Ш++ був учень, якому вже зараз 17 років. І він програмує щонайменше три роки на високому рівні”.
За словами розробника, немає верхньої вікової межі. “У всіх різна швидкість вивчення, – каже Костянтин. – На будь-якому етапі може прийти повна відмова, нерозуміння і неприйняття матеріалу, але я вважаю: якщо себе взяти до рук і витратити трохи більше часу, щоб щось зрозуміти, то реально досягти успіху. Я теж інколи думаю, що програмування – не моє. Це означає, що мені всього лише треба відпочити і відіспатися. Буває так, що код взагалі вперто не йде. Це частина робочого процесу. Якщо щось не виходить, пишеш по-іншому, гуглиш, питаєш у техліда. Інколи потрібна допомога проєктного менеджера, щоб дав іншу задачу. У таких випадках треба відволіктися і переключитися. Не можна, щоб було лише одне завдання. Це дуже гальмує процес. Треба, щоб був запасний план. Окрім цього, не варто боятися невдач. Якщо програміст боятиметься помилок, він збожеволіє за тиждень”.