Мене звуть Сергій Немчинський. Я працюю в ІТ вже понад 25 років, 15 з яких програмував на Java. А зараз я є директором і засновником навчальної компанії FoxmindEd.
Для мене програмування – це не просто робота, а справжня пристрасть. Моя мета – надихнути вас на високі досягнення в цій галузі, а також розповісти, як не наробити зайвих помилок.
Сьогодні я хочу поділитися з вами деякими міркуваннями та порадами, пов’язаними із вибором професії програміста. Бо я знаю, наскільки важливо чітко розуміти, чи відповідає ця професія вашим прагненням і здібностям, чи ні.
Отже, ви не станете програмістом, якщо…
…Вам не цікаво
Почнемо з головного: для того, щоб стати успішним програмістом, найважливіше – це глибока зацікавленість цією справою. Якщо ви не відчуваєте задоволення від написання програм, вам буде складно розвивати цю професію, навіть якщо ви намагаєтеся досягнути середнього рівня.
Програміст – це той, хто постійно шукає шляхи вирішення або обходу складнощів. Ці шляхи можуть бути простими, складними, очевидними або іноді дуже неочевидними. Далеко не завжди все виходить успішно, а той, хто не має зацікавленості, швидко втрачає мотивацію.
Отже, якщо ви розглядаєте програмування лише як засіб заробітку, варто переглянути свої підходи. На сьогоднішньому ринку праці існує безліч інших професій, де ви можете знайти своє покликання.
Моя 20-річна кар’єра у програмуванні навчила мене, що найголовніше – це безмежний інтерес до цього ремесла. Якщо вам не цікаво розв’язувати логічні головоломки, удосконалювати навички та розвиватися в цьому напрямі, то, скажу відверто – ця професія, можливо, не для вас.
…Ви не маєте чіткої програми навчання
Якщо людина намагається навчатися без чіткого плану, не розуміючи, що саме і як вона буде вивчати, це сигнал того, що вона, можливо, ніколи не стане програмістом. Факт у тому, що вже давно минули часи, коли можна було вивчити основи програмування за обмежений термін і відразу стати програмістом, оскільки знань у програмуванні тепер значно більше, ніж можливості їх опанувати за людське життя.
Є безліч знань, що взаємопов’язані чи розуміння яких з’являється після засвоєння попередніх або ж які мають різні контексти залежно від мети навчання. Як результат, відсутність структурованого плану навчання часто призводить до ситуації, коли людина може вчитися, писати код, проте через рік чи три залишається на одному й тому ж рівні, з якого розпочала.
Мій досвід навчання охоплював навчальні курси, стажування та самостійне вивчення. Структуроване навчання допомагає засвоїти необхідні знання й побудувати власний підхід до програмування.
…Занадто глибоко заглиблюєтеся у теорію
Завдяки моїй попередній діяльності у ролі викладача у програмуванні я добре розумію, наскільки важливо збалансувати теорію і практику. Іноді новачки глибоко занурюються у теоретичні аспекти, але практика – це саме те, що допомагає вам застосовувати знання на реальних проєктах.
Є багато тих, хто бажав стати програмістами, але так і не досяг цього. Чому? Бо надто глибоко захоплювались теорією компіляторів і роками досліджували різні мови тощо.
Зрозумійте просту річ, програмування – це не проходження рівнів, як у грі, це – справжня професія, яка вимагає вміння виконувати роботу на практиці. Оффери отримують не ті, хто володіє теорією, а ті, хто зможе застосувати свої знання на практиці. Навіть більше, технічні інтерв’юери на співбесідах чудово розрізняють тих, хто тільки читав книжки, від тих, хто справді вміє писати код.
…Не думаєте як програміст
Розвиток логічного й алгоритмічного мислення – ключовий аспект у програмуванні. Здатність аналізувати, розбирати складні задачі на частини та бачити загальну картину – це основи успішної кар’єри програміста.
Якщо людина не бажає або не вміє вирішувати проблеми та мислити як програміст, то їй буде складно опанувати цю професію.
Важливо розуміти, що для досягнення успіху у програмуванні не треба бути експертом у всіх технологічних областях.
Часто новачки вчаться з думкою: «Як тільки я опаную все, що важливо для програміста, тоді шукатиму роботу».
Але знань надто багато, а ваш час – обмежений. Навіть якщо вам 15 років, все одно не вистачить часу на все. Важливо зрозуміти основи й зосередитися на важливому, а не намагатися охопити все, що може стати в пригоді.
Але, хочу заспокоїти тих, хто твердо планує вивчитися на програміста. Якщо ви відчуваєте справжню пристрасть до програмування, ось декілька порад він мене, які можуть вам допомогти досягти своєї мети.
Наполеглива праця
Моя дорога до успіху була наповнена важкими моментами, але кожне випробування відкривало нові можливості. В умовах сучасного ІТ-ринку програмісту важливо мати вольові якості та бажання вдосконалюватися, всупереч труднощам.
Найважливіше та найцікавіше, про що варто пам'ятати, це те, що наполеглива праця важливіша за природний талант. Навіть якщо у вас є великі природні задатки, самі по собі вони нічого не дадуть. Крім того, програмування — це не та професія, в якій ви повинні стати світовою зіркою. Вам просто потрібно здійснити звичайну, хоч і складну інженерну роботу. Складність полягає у обсязі необхідної інформації. Тому на програмістів вчаться довго. Але всі знання вже по собі досить прості.
Вміння розв'язувати проблеми
Що очікують від вас майбутні роботодавці? В першу чергу - вміння знаходити вихід із складнощів. Гроші отримують ті, хто вміє вирішувати бізнес-проблеми. Наприклад, автоматизація бухгалтерії, створення мобільного додатка для замовлення їжі чи інші. Компанії шукають людей, які вміють це робити.
Програмування - це лише інструмент. Головне - чи зможете ви розв'язувати бізнес-завдання. Просте запитання на співбесіді не допоможе це визначити. Тому вас питають про досвід, який це підтверджує. Так, буває складно знайти першу роботу - бо немає підтвердження, що ви дійсно здатні вирішувати завдання. Тому ваша мета - продемонструвати, що ви можете розв'язувати бізнес-проблеми. Можливо, хоча б на проектах, які ви створили для себе.
Багато практикуйтеся
Щоб вчитися розв'язувати проблеми, треба мати реальне завдання. Взяти його, довго з ним працювати, розглядаючи з різних сторін, і потім вирішити. Це можливо лише тоді, якщо ви взялися за справжню задачу. Тому я завжди раджу вам створювати проекти для портфоліо так, щоб вони були схожі на комерційні. З мого досвіду, якщо програміст сам придумує завдання, яке не має практичного застосування, він його не доведе до кінця.
Ставте реалістичні цілі
Важливо ставити собі цілі, які допоможуть вам розвиватися та просуватися вперед. Зараз ваша мета - стати програмістом. Але, зважте на те, що часто новачки в програмуванні ставлять перед собою нереальні завдання, скажімо, намагаються стати спеціалістом за декілька місяців. Коли цей план не вдається, вони втрачають мотивацію і здаються. Тому встановлюйте реальні цілі.
Я рекомендую фокусуватися не на строках досягнення, а на самій можливості досягнення цілі. Саме таке мислення відрізняє програміста від спеціалістів в інших галузях. Програміст знає, що будь-яка ціль є досяжною. А, якщо вона є досяжною теоретично, то є такою і практично. А, отже, ви обов'язково досягнете її. Налаштовуйтеся на це.
Вивчайте англійську
Моя навчальна компанія співпрацює зі спеціалістами з усього світу. Я розумію, наскільки знання англійської мови допомагає ефективно комунікувати та отримувати доступ до світового досвіду.
Для початку вам буде досить базового рівня англійської, щоб зрозуміти технічну документацію. Проте для отримання роботи, у більшості випадків потрібний високий рівень володіння.
Наприклад, розробнику-початківцю не обов'язково знати англійську вище Intermediate, оскільки його спілкування з клієнтом обмежене. Але якщо ви плануєте роботу на посадах Project Manager, бізнес-аналітика або тестувальника, вам слід знати англійську на розмовному рівні. Це також стосується розробників рівня Senior і вище.
Отже
Мій досвід говорить про те, що програмування — це не лише професія, а й виклик для вашого розвитку. Вірте в себе, розвивайте навички та не бійтеся зіткнень із труднощами. Якщо моя історія стала для вас джерелом натхнення та порад, я вважатиму, що зробив свій внесок у розвиток цієї динамічної та захопливої галузі.