Якщо б я зараз вивчав програмування, як би це було?

Ось він я, програміст з досвідом більше 20 років. Так, я існую. Мене звати Сергій Немчинський, я професійно займаюся програмуванням з 1996 року, а першу програму написав в 1988 році. Я так-сяк знаю більше 20 різних мов програмування, а писати професійний код можу на п’яти. Встиг попрацювати в самих відомих IT-компаніях України, а зараз директор своєї компанії FoxmindEd.

Як стати таким крутим, як я?

Не варто повторювати мій шлях крок за кроком — світ дуже змінився за останні роки, є більш виграшні стратегії. Розповім вам, що б я робив, якби навчатися програмуванню було потрібно у 2023 році.

Не заради грошей

Існує мода на професії. Коли я вчився, дуже популярні були юристи та фінансисти, а програмуванням займались лише справжні ентузіасти. Зараз програмісти користуються попитом і заробляють непогані гроші. Чи цього достатньо, щоб вивчати програмування? Ні!

З самого початку треба розуміти, що програмування — це стиль життя. Це багато сидячої роботи, це постійне навчання. Це дуже специфічний розклад дня і тижня, а також специфічне мислення програміста. І це не всім підходить.

Не йдіть в програмісти лише заради грошей. Є купа професій, де можна заробити і більше. Ставайте на цей шлях лише тоді, коли програмування вам до душі.

Всі на Youtube!

Коли я починав, такого сервісу як Youtube просто не було. Зараз він є, і це чудово: там можна знайти матеріал будь-якого рівня складності, включно з тими, що для новачків. Чим фронтенд відрізняється від бекенда, які мови програмування бувають, як працює програміст — будь-яке питання знайде відповідь.

Взагалі з відео матеріалами програмісту доводиться працювати постійно, тому що нові технології з'являються дуже швидко. І якщо потрібно розібратись в чому, найпростіший шлях — подивитись відео, де хтось ділиться своїм досвідом. Наприклад, я.

Так, я веду свій канал на Youtube, де розповідаю про мови програмування, нові технології, а також відповідаю на вічні питання, наприклад, «як стати програмістом». А ще в мене є ціла лекція для підлітків з порадам по профорієнтації. Там трохи більше про вибір професії програміста.

Вчиться, воно згодиться

Я б став міліонером, якби мені давали долар кожен раз, коли я чув:

— Мені не потрібна вища освіта, я буду програмістом, буду заробляти шалені гроші і так!

Що ж, можливо. Я зустрічав таку людину — він почав програмувати в 15, ледь закінчив школу, до ВНЗ не вступав, замість цього пішов працювати «за їжу», а в 23 роки він був справжнім, чесним сініором. Але є нюанс: його батьки теж були програмістами, вони виступали його менторами і спонсорами, а коли він пішов працювати, дали йому рекомендації.

Якщо в вас немає таких зв’язків та підтримки, шукайте ВНЗ, де є спеціальності, пов’язані з програмування. Круто, якщо в вас є можливість навчатися в одній з провідних країн.

Що дасть вам навчання в ВНЗ:

Диплом про вищу освіту — після деякого занепаду вища освіта знов стала маркером добре підготовленого спеціаліста, особливо за кордоном;

Знайомства та перший нетворкінг — є велика вірогідність, що з вашими одногрупниками ви будете зустрічатись на професійному шляху протягом багатьох років;

Професійні знання — в більшості ВНЗ ви отримаєте корисні знання, які знадобляться вам у роботі.

Додаткові знання — додаткові предмети, які ви вивчаєте у ВНЗ, це теж корисні знання, якими можна користуватися в роботі;

Досвід роботи — ви можете робити свій проект або шукати підробітку на фріланс-сайтах.

Не тому вчився

Одне з найчастіших запитань, які мені надсилають — «Як стати програмістом, якщо тобі 30, 40, 50 років?» «Що робити, коли маєш диплом про освіту, але далеку від програмування?»

Для вас в мене лише хороші новини. По-перше, змінювати професію в 30-40-50 років — це нормально. Так живе сучасний світ: все швидко змінюється, і люди теж: їх називають світчери. По-друге, в вас вже є деякий досвід роботи, який в будь-якому випадку не буде зайвим, навіть якщо це далека від ІТ сфера. А якщо в вас є вища освіта, взагалі чудово: залишилось тільки дібрати профскілів.

Вибір мови програмування

Якби мені було 15 років, я б не вибрав одну мову програмування, а зайнявся б усім підряд. Я б намагався вивчити JavaScript, Java, С++, а ще спробував Game Dev у всіх його проявах. Просто у моїй молодості геймдев був занадто складним, а зараз ви можете встановити Unity і через 15 хвилин вже створити відносно працюючу програму.

В 30 до 40 років я б підійшов до справи серйозніше. Прослухавши на Youtube кілька лекцій, я б визначився з напрямком, а далі спробував декілька мов програмування в рамках цього напрямку. По тижню-два на кожну мову, при цьому не просто дивитися якісь відео, а писати код.

Проаналізувавши досвід знайомства з обраними мовами, варто обрати одну і вивчати її, намагаючись не передумати. Для мене це складно, мене несе то в один бік, то в інший. Саме тому я так часто звертаю вашу увагу на цей аспект. Обрали шлях і йдіть ним. Навчитись інших мов ви ще встигнете.

Робіть проекти і шукайте ментора

Зараз, коли я пишу цю статтю, в західних країнах йде хвиля скорочень в ІТ-секторі. На ринок вийшли тисячі досвідчених спеціалістів. Джунам шукати роботу дуже важко: на одну вакансію для джуніор девелопера приходить від 200 до 500 резюме.

Щоб виділитися з цієї юрби, майбутньому програмісту варто зробити портфоліо проектів. Це може бути акаунт на Гітхабі з прикладами коду або власний сайт, залежить від напрямку. Але показати, що ви вмієте, дуже корисно. Тому, як тільки ви зробили якусь роботу, написали непоганий код, — зберігайте його в портфоліо.

Не знаєте, які проекти робити? Знайдіть ментора. Це має бути досвідчений колега з дещо більшим досвідом в програмуванні, ніж у вас. За гроші або на волонтерських основах ментор допоможе вам створити кілька пробних проектів.

Інтроверт — це не вирок

Також вам знадобиться вміння спілкуватися. Іноді доводиться прикладати великі зусилля, щоб розвивати цей навик, але він дійсно важливий. За своєю природою я соціофоб і готовий не виходити з дому протягом тижнів. Для мене спілкування з іншими людьми було дуже складним, і мені довелося розвивати цей навик.

Я кажу це, щоб ви не мали виправдання на кшталт «я інтроверт і складна людина, я не можу спілкуватися». Я вас розумію, але вміння спілкуватися з людьми — необхідність, без цього ніяк.

Не копіюйте, а розберіться

Якщо ви знайшли готове рішення, потрібно розібратися в тому, як воно працює. Так, ви можете просто скопіювати код, але це не буде результатом вашої роботи. Ви не зрозумієте, як воно функціонує, і в майбутньому не зможете використовувати таке рішення.

Такий підхід допустимий лише в одному випадку — якщо у вас залишилося всього п'ять хвилин на здачу завдання замовнику. Поки ви навчаєтесь, ваш замовник — це ви. А вам потрібно не надати рішення, а навчитися знаходити рішення.

Вивчайте англійську

Це важливий аспект, про який я постійно повторюю. Знання англійської мови дуже важливе для роботи програмістом. Мова кулінарії — французька, мова музики — італійська, мова програмування — англійська. Якщо у вас ще немає хоча б середнього рівня англійської, то з цього і варто почати.

Не забувайте про відпочинок та здоров'я

Програмування може бути дуже виснажливою роботою, тому важливо не забувати про відпочинок та здоров'я. Робіть перерви на фізичну активність, займайтеся спортом, зустрічайтесь з друзями та проводьте час з родиною. 

665