Рубріки: ДосвідКар'єра

Що б я сказав собі на початку кар’єри: три головні поради від розробника з 14-річним стажем

Олександр Панченко

Як почати карʼєру в IT, якщо з усього переліку необхідного у вас лише бажання, Google та приблизне розуміння майбутньої спеціальності з того пʼятихвилинного відео на YouTube?  

Старт карʼєри в IT — нелегкий шлях. І навіть якщо все можна погуглити та накидати для себе орієнтовний план подальших дій, все одно це не замінить досвідченого знайомого (ментора), який за кавою поділиться мапою точного розташування тих «граблів» та лазівками, аби ця доріжка де-не-де, але була менш тернистою. 

Я подумав, які б поради я дав собі 14 років тому, на початку своєї карʼєри Java Developer. І я вирішив поділитися ними з вами. Сподіваюся, що вони будуть корисними та допоможуть вам не робити моїх помилок 🙂

Let’s go! 

1 Закладай залізобетонний фундамент з самого початку! Фокусуйся на найважливішому!

На початку кар’єри, особливо, коли пощастило приєднатися до команди проєкту, де використовуються різноманітні технології та фреймворки, (або ж стартапу, що стрімко розвивається), розробник стикається з тим, що наявних знань та навичок недостатньо для ефективного розвʼязання поставлених задач.

Тоді новачок буде хапатися за всі книги та статті, які нагуглить, або ті, які порадять більш досвідчені члени команди, буде намагатися їх «з’їсти» максимально швидко, всі одразу, іноді навіть жертвуючи вихідними чи сном. Це призведе до спаду мотивації, ефективності, зменшення задоволення від процесу роботи та навчання, і врешті-решт джун неминуче зіткнеться з вигорянням. З цим стикався і я, багато разів.

Маю наступне правило: «Максимально фокусуйся на двох-трьох речах одночасно, і не більше».

Хочу зупинитися на деяких важливих пунктах:

Хороший рівень володіння однією мовою програмування

Важливо опанувати основну мову програмування, що використовується розробником на проєкті для розвʼязання поставлених задач. Також і сертифікація (наприклад, OCAJP для Java), а саме підготовка до неї, допомагає вивчити або ж згадати основні базові теми по технології, закрити прогалини по суміжних темах, які не вивчав до цього.

Але це лише один із варіантів — можливо, комусь краще підійде:

Тут вже справа смаку 🙂

Знайомство та робота з фреймворками

Важливо знати основи фреймворків, які використовуються на поточному проєкті, найчастіше це Spring та Hibernate. Без цього важко буде виконувати поставлені завдання, а інколи і зовсім неможливо.

Ґрунтовне знання структур даних та алгоритмів

Добре, що матеріалів за цією темою дуже багато: різноманітних книг, статей, відео. Тому не має бути проблемою знайти список рекомендованих матеріалів для вивчення цієї теми.

Тут важливо відразу пробувати застосовувати отримані знання на практиці (на поточному проєкті або ж потренуватися на власному pet-проєкті).

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

Розвивайте свої комунікативні навички

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

Впевнене володіння англійською мовою

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

2Копай вглиб!

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

Мінімум вивчайте глибше:

  • мову програмування;
  • структури даних;
  • алгоритми;
  • фреймворки;
  • модульні та інтеграційні тести.

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

3 Дивись ширше — збагачуй власну експертизу

Неможливо стати справжнім Software Developer, займаючись лише кодингом таски, яку вам дає тимлід, а перед тим архітектор чи техлід розписує специфікацію.

У 2022 році й надалі повноцінний Software Developer — це спеціаліст, який бере участь у дизайні, програмуванні, збірці, деплої та підтримці software, над яким він (чи команда) працює.

А для цього треба мати широкий спектр скілів. 

Наведу декілька прикладів: 

  • Soft skills — комунікація всередині команди та з клієнтом критично важлива, треба її постійно розвивати.
  • Архітектура та system design — це мастхев, тут потрібно знати хоча б основи архітектури та її поширені типи, їхні плюси та мінуси, де можуть бути підводні камені, які є best practices.
  • Аналітичне мислення — здатність проаналізувати задачу, оцінити її, розуміти tradeoffs, pitfalls та як твоя логіка буде скейлитися.
  • Якщо дозволяє проєкт і час, то вивчайте хоча б на базовому рівні одну-дві додаткові мови програмування. Наприклад, якщо зараз пишете на Java, я б ще глянув у бік Kotlin та Python (Python буде корисною для написання скриптів).
  • DevOps — я думаю, що Software Developer має чітко і ясно розуміти як написаний ним сервіс доставляється на тестові енвайрменти чи продакшен, які проблеми виникають із його сервісом та як вони розв’язуються. В багатьох командах, особливо маленьких — виділеного DevOps немає, і все частіше клієнти очікують, що Software Developer знає, як доставити виконану роботу на продакшен та підтримувати її в стабільно робочому стані протягом тривалого часу. Останнім часом популярним є запровадження культури DevOps у маленьких, середніх і навіть великих командах, тож ці знання не будуть зайвими.

Last but not least

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

Keep going!

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Останні статті

IT в Україні йде до свого фінального кінця. І потраплятимуть туди виключно за покликом душі

Коротко про українську IT-сферу у 2024 році Це коли на одну вакансію Middle розробника по…

26.03.2024

Блокчейн-розробка сьогодні: зарплати і перспективи на ринку праці

Формування криптовалютної галузі в Україні почалося ще у 2014 – саме тоді з'явилися перші стартапи,…

18.03.2024

Скільки рішень ухвалює розробник? Погляд новачка, який запускає продукт

Автор цього блогу — Python-девелопер Сергій Солдатов, який вирішив створити досить унікальний продукт. І це…

12.03.2024

Чи треба готуватись до співбесіди?

Думки шукачів діляться на: «так, однозначно» і «ні, не вартує, я все і так про…

04.03.2024

Відкладаєте до останнього? Що таке «синдром студента» і як з ним боротися

Синдром студента — це форма прокрастинації, яка полягає в тому, що людина, якій дали завдання,…

23.02.2024

Вчимося працювати з Git: основи конфігурації, гілки, додавання файлів та директорій

Git — це найпопулярніша CVS прямо зараз, яка дозволяє відстежувати історію розробки і спільно працювати.…

20.02.2024