«Для успішного кар’єрного розвитку важливо скласти план дій та чітко слідувати йому» — Дмитро Держевицький, Advanced Software Engineer (Java)

19 Травня, 2023 6 хвилин читання

Мене звати Наталія Горова, і я продовжую ділитися цікавими історіями наших тиммейтів. Сьогодні в рубриці Growth Stories я хочу познайомити вас Дмитром Держевицьким, Advanced Software Engineer (Java). Дмитро долучився до Innovecs у 2016 році та разом з командою працював над запуском проєкту. На невеликий проміжок часу, Дмитро пішов з компанії, але за півтора року повернувся на позицію Senior Software Engineer (Java).

В інтерв’ю Дмитро дав цінні поради Junior-розробникам для більш продуктивного старту кар’єри в tech; розповів чому Middle-спеціалістам необхідно вивчати Cloud та в якому напрямку рухатися Advanced-розробникам. Важливі навички Java-розробникам та які книги завжди мають бути під рукою у Java-розробника.

 

Шлях до ІТ: як хобі стало роботою

Я познайомився зі сферою ІТ, коли ще навчався у школі. Тоді такого визначення, як ІТ ще не було, принаймні, ніхто так не казав «айті», «айтівець», «увійти в айті». Я пішов у Будинок Юного Техніка на курси «Основи Програмування на Basic». Спочатку це було скоріше як хобі — мене зацікавило як пишуться програми, операційні системи та ігри. До того ж мої друзі, які теж захоплювалися комп’ютерними технологіями, надихали все більше поринати в цей напрям. Ми навіть думали написати власну операційну систему, але звісно, це було нереально на той час.

Після 8 класу я перейшов до школи з поглибленим вивченням інформаційних технологій. У спеціально організованих класах ми вивчали більш високорівневі мови програмування, такі як Turbo Pascal, Delphi та навіть трохи C#. Графічні редактори Photoshop, CorelDRAW. А також Front-End технології, як JavaScript, HTML, CSS. Цікаво, що на той момент, років 15 назад, популярність набувала мова програмування ActionScript (FlashX), завдяки якій малювалася анімація для Web у 2000-х. Зараз ця технологія, звісно, вже не використовується.

Вищу освіту я здобув у КПІ, Факультет Інформатики та Обчислювальної Техніки, кафедра Технічної Кібернетики. Коли постало питання з пошуком роботи, я зіштовхнувся з усім відомою проблемою — майже всі роботодавці хочуть найняти людину з досвідом роботи, а який може бути досвід з enterprise-системами, коли ти студент або щойно випустився. Допомогла мені моя викладачка Java SE/EE, яка працювала в ІТ компанії. Вона запрошувала всіх своїх студентів проходити добір на курси при компанії, де вона працювала, які згодом давали можливість потрапити на реальний проєкт. Так я отримав свою першу роботу.

В Innovecs я доєднався у 2016 році як Middle Java-розробник, коли мій товариш запропонував разом працювати над запуском нового проєкту з нуля. В команді із чотирьох людей ми стартанули проєкт, який зараз користується великим попитом у користувачів та є успішним. Меншеніж за рік ми вийшли в продакшен та почали зростати як команда. Коли я тимчасово покидав Innovecs, на проєкті було приблизно 16 людей.

Повернувся в компанію через 1,5 року, коли на один із проєктів шукали Senior-розробника. Мій товариш, Дмитро Кривенко, порадив на цю позицію мене, й у такий спосіб доля звела мене з компанією вдруге. Наразі я займаю позицію Tech Lead і розвиваюся до Solution Architect.

В Innovecs дуже класна атмосфера. Мені подобається, що всередині компанії є можливість проводити knowledge sharing. Наприклад, якщо ти хочеш застосувати нову технологію, ти можеш піти до розробників з інших команд, які її використовують, та поділитися досвідом.

 

8 must-have навичок Java-розробника

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

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

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

Уміти працювати в команді. Наразі кожен проєкт складається з команди людей, які між собою тісно пов’язані. Це не одна чи дві людини зібралися в гаражі попрацювати, як колись відомі нам Стів Джобс та Стів Возняк. Робота в команді дуже важлива, треба вміти разом досягати цілей та розв’язувати проблеми.

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

Ефективно керувати часом та балансувати між роботою та особистим. Від того, як ти розподілиш свій час, буде залежати твоя продуктивність та ефективність. Загалом, на більшості проєктах розподіл пріоритетів відбувається таким чином: насамперед, вирішуються завдання, які пов’язані з продакшеном. Далі повсякденні завдання, наприклад, написання нових фіч. Менш пріоритетні — це дрібні технічні завдання, як поліпшення процесів та вирішення технічного боргу. В нашому випадку є Scrum Master, який пріоритизує всі завдання, але на менших проєктах цим займається Team Lead. Окрім правильно розподілу робочого часу, треба не забувати про баланс між роботою та особистим життям. Не потрібно овертаймити, оскільки це доволі швидко призведе до вигорання.

Вміння адаптуватися. Коли змінюються процеси, наприклад, під час виконання code review або деплоя в продакшен, буде круто, якщо ти зможеш швидко проаналізувати зміни та адаптувати їх до роботи.

Якщо ж є амбіції та бажання вирости до Team Lead, Solution Architect, СТО або CEO, то треба прокачувати лідерські навички. Наприклад, вміння керувати, направляти та мотивувати команду. Саме лідер мусить проводити 1х1, вирішувати спірні ситуації та конфлікти, вміти брати на себе відповідальність.

 

Поради для кар’єрного розвитку: від Junior до Advanced

З погляду hard skills, Junior Java-розробнику потрібно вивчити одну із найпопулярніших мов програмування, на якій він хоче працювати — Java, C#, JavaScript тощо. Але просто знання мови в наш час недостатньо, тому додатково потрібно вивчити фреймворк, наприклад, для Java це Spring Framework та Hibernate. Ну і, звісно, зрозуміти, як працює система керування версіями Git.

Middle Java-розробник повинен ці знання відшліфувати та вміти використовувати самому або з допомогою Senior-розробників. На цьому етапі дуже важливо починати вивчати Cloud технології, навіть неважливо якого саме провайдера — Amazon AWS, Microsoft Azure, Google Cloud чи Oracle Cloud.

До речі, Cloud сертифікації мають велику вагу у кар’єрному зростанні та підвищенні твоєї цінності, як розробника. Варто зауважити, що наразі сертифікат дають не на два роки, а лише на 1. Це пов’язано з тим, наскільки швидко зараз змінюються технології. Зараз усе крутиться в хмарному середовищі, й ти мусиш знати, що запропонувати клієнту в певний момент часу. Зберігання даних в Cloud має низку переваг, порівнюючи зі зберіганням даних на фізичному сервері. Наприклад, реплікація та бекап даних і менша вартість.

Senior Java-розробник — прокачаний у скілах девелопер, який самостійно вміє аналізувати та виконувати завдання. Може підмінити тім ліда за потреби.

Якщо казати про розвиток Advanced Java-розробника, то спеціаліст мусить вирішити, в якому напрямі хоче розвиватися — Tech Lead, Architect або менеджер та качати відповідно лідовські чи архітекторські навички; вміти розробляти технічне завдання для майбутніх завдань та презентувати ідеї замовнику.

 

Книги або digital: Де Java-розробнику шукати інформацію

Для успішного кар’єрного розвитку, важливо скласти план дій та чітко слідувати йому. Для того, щоб претендувати на Solution Architect, я планую здати AWS Certified Solutions Architect Associate 2023 та прочитати книгу Роберта Мартіна, або, як його всі називають, Uncle Bob, «Чиста Архітектура». Цю книгу я б рекомендував прочитати навіть джунам. Навіть якщо ти спочатку мало чого зрозумієш, перечитуючи книги такого роду ти почнеш все більше й більше виносити для себе.

ТОП-5 книжок, які я раджу прочитати кожному Java-розробнику:

  • Чиста Архітектура, Р. Мартінс / Clean Architecture, R. C. Martin
  • Чистий Код, Р. Мартінс / Clean Code, R. C. Martin
  • Ефективна Java, Д. Блох / Effective Java, J. Bloch
  • Spring в дії, К. Уоллс / Spring in action, C. Walls — крута книга для того, щоб зрозуміти Spring Framework. Нові видання виходять раз на 2 роки.
  • Шаблони проєктування, Gang of Four / Design Patterns, Gang of Four — книга є еталоном та рекомендується для читання.


Усі ці книги вважаються настільними, які час від часу потрібно перечитувати. Я раджу придбати їх в оригіналі, у друкованому вигляді.

А для того, щоб бути в курсі всіх новин у сфері ІТ, треба читати спеціалізовані сайти. Я дуже раджу DZone, dev.to та технічні блоги на Medium. Там я черпаю свіжі ідеї, інформацію про нові технології та їхнє застосування. Треба просто взяти собі за звичку щоранку читати статті на таких сайтах — я це порівнюю з тим, як ми всі щоранку читаємо новини. Так само розробники мусять читати новини у сфері tech. До того ж прокачується англійська мова, коли ти в оригіналі читаєш профільний контент.

Ще до карантину я відвідував конференцію, яку дуже раджу Java-розробникам — Java Day, яка триває 2–3 дні. Організатори завжди запрошують крутих спікерів, а тому час проведений в оточенні Java-спеціалістів та професіоналів буде однозначно корисним. Наразі така конференція проводиться онлайн, наскільки мені відомо.

 

Поради інженерам-початківцям

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

Наприклад, з’явився ChatGPT. Особисто я сприймаю його як помічника, який допомагає мені економити час на рутинних завданнях та сфокусуватися на більш корисних та стратегічних. Насправді ніякої магії в чат-боті нема, проста математика, за якою іноді треба навіть перевіряти. Звідси можна зробити висновок, коли виходить нова технологія, треба її обов’язково спробувати та використати, інакше можна відстати від прогресу та втратити власну привабливість на ринку.

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

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

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

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

 

Хочу подякувати Дмитру за таку цікаву, наповнену інсайтами розмову. Я впевнена, що кожен Java-розробник віднайшов для себе корисну інформацію, яку зможе застосувати на своєму кар’єрному шляху.

Nataliia Horova
PR&Media Relations Specialist
У пошуку ідеальної вакансії?
Надсилай нам своє резюме і ми зв'яжемося з тобою.