Якщо б я зараз вивчав програмування, як би це було?
Ось він я, програміст з досвідом більше 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 резюме.
Щоб виділитися з цієї юрби, майбутньому програмісту варто зробити портфоліо проектів. Це може бути акаунт на Гітхабі з прикладами коду або власний сайт, залежить від напрямку. Але показати, що ви вмієте, дуже корисно. Тому, як тільки ви зробили якусь роботу, написали непоганий код, — зберігайте його в портфоліо.
Не знаєте, які проекти робити? Знайдіть ментора. Це має бути досвідчений колега з дещо більшим досвідом в програмуванні, ніж у вас. За гроші або на волонтерських основах ментор допоможе вам створити кілька пробних проектів.
Інтроверт — це не вирок
Також вам знадобиться вміння спілкуватися. Іноді доводиться прикладати великі зусилля, щоб розвивати цей навик, але він дійсно важливий. За своєю природою я соціофоб і готовий не виходити з дому протягом тижнів. Для мене спілкування з іншими людьми було дуже складним, і мені довелося розвивати цей навик.
Я кажу це, щоб ви не мали виправдання на кшталт «я інтроверт і складна людина, я не можу спілкуватися». Я вас розумію, але вміння спілкуватися з людьми — необхідність, без цього ніяк.
Не копіюйте, а розберіться
Якщо ви знайшли готове рішення, потрібно розібратися в тому, як воно працює. Так, ви можете просто скопіювати код, але це не буде результатом вашої роботи. Ви не зрозумієте, як воно функціонує, і в майбутньому не зможете використовувати таке рішення.
Такий підхід допустимий лише в одному випадку — якщо у вас залишилося всього п'ять хвилин на здачу завдання замовнику. Поки ви навчаєтесь, ваш замовник — це ви. А вам потрібно не надати рішення, а навчитися знаходити рішення.
Вивчайте англійську
Це важливий аспект, про який я постійно повторюю. Знання англійської мови дуже важливе для роботи програмістом. Мова кулінарії — французька, мова музики — італійська, мова програмування — англійська. Якщо у вас ще немає хоча б середнього рівня англійської, то з цього і варто почати.
Не забувайте про відпочинок та здоров'я
Програмування може бути дуже виснажливою роботою, тому важливо не забувати про відпочинок та здоров'я. Робіть перерви на фізичну активність, займайтеся спортом, зустрічайтесь з друзями та проводьте час з родиною.