Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

Шлях джавіста: від інтерна до IT-директора

$
0
0

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

У кожного з нас шлях у світі Java складається по-своєму. Хтось починає у маленькому стартапчику, який з часом закривається через брак інвестицій, і потрібно все починати знову. Хтось відразу ж потрапляє у велику компанію. Декому вдається стати сініором за 1,5 роки, і він ламає собі голову, куди ж рухатись далі. Кожен такий досвід чогось вчить і підштовхує до певного вектора розвитку. Я свій шлях проходив протягом 10 років у 4 компаніях і виніс з нього багато вагомих уроків. Один з найцінніших полягає в тому, що в світі технологій все змінюється досить швидко, і щоб бути класним, затребуваним спеціалістом, потрібно постійно бути в курсі змін та нових технологічних рішень і завжди дивитися на крок попереду себе — і в сенсі інновацій, і в сенсі власного кар’єрного розвитку.

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

Перші кроки в IT

Я почав своє знайомство з девом ще за часів студентства. Пішов у маленьку польську компанію, яка розробляла ігри на J2ME. Тоді писали багато софта під мобільні телефони, і ця технологія була неабияк популярна. Компанія була невеличка, і мені доручали багато різноманітних завдань, з якими треба було самому сидіти та розбиратись. Це дуже драйвило навчатися новому, здобувати ‘’медальку’’ і рухатись далі. Пропрацював я в цій компанії 1,5 роки. Cпочатку був залучений до гейм-девелопменту, потім пробував себе трохи у вебі. У світ якраз тоді вийшла нова платформа — Android. І як тільки з’явилась її альфа-версія, мені дали єдиному в компанії імпортувати на неї ігри на Java. Закінчилося тим, що я написав статтю про Android, в якій oписав перспективи платформи і чи можна взагалі на ній розробляти ігри, i її надіслали у Польщу. Тоді це було першим знаком для мене, що Android витіснить J2ME. І я зрозумів, що ті знання, що в мене є про J2ME невдовзі застаріють і потрібно їх оновлювати, тримати ніс за вітром і рухатись вперед. На той час мене дуже цікавив Android, але у львівських компаніях експертизи по цьому напрямку не було, і я пішов у інше русло. Власне, я продовжив свій шлях у напрямку Java SE/EE.

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

Розуміння майбутніх перспектив

Отримавши свій хороший старт у польській компанії, я перейшов працювати у більшу українську компанію, яка переважно займалась аутсорсингом і налічувала вже 75 людей. Мені подобалось те, що компанія співпрацювала з європейськими замовниками. Власне, ми розробляли швейцарцям різні системи. Тут я працював джуніор спеціалістом і почав серйозніше ставитись до роботи. Це вже була порівняно велика компанія з чіткіше налагодженими процесами і хорошим менеджером. І це був мій перший справжній досвід спілкування і з замовниками, і з делівері менеджерами. Насправді тут я побачив, які взагалі спеціалісти існують, і що світ широкий, є багато перспектив, і можна рухатись, куди захочеш. Тут вже був рівень не мобільної Java, в якій є багато всіляких обмежень, а Java рівня ентерпрайз. У нас була матриця знань і змога прогресувати, що для мене було завжди дуже пріоритетним. Я там попрацював 3 роки і зрозумів, що вже переріс цю компанію, починаю стояти на місці, і потрібно рухатися далі.

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

Потрібно скласти собі PDP (Personal Development Plan), який буде, наприклад, складатися з трьох пунктів:

  1. Що тобі подобається робити;
  2. Що тобі треба робити, але поки не вдається;
  3. Трендові штуки, які треба час від часу пробувати.

Такий план можна підшукати для себе онлайн. Маючи вже базу на рівні мідла, людина свідомо обирає для себе, куди саме вона як спеціаліст хоче рухатись далі. До прикладу, обирає для себе якусь вужчу технологічну сферу, наприклад, Machine Learning, або ж обирає якийсь конкретний домен. Я зараз дуже раджу вже на цьому рівні зв’язувати себе з якоюсь сферою, наприклад, фінансами. Адже зараз найбільше цінують спеціалістів не лише з певними технологічними знаннями, але перш за все з експертизою в певному домені. І на цьому рівні потрібно вже будувати PDP на наступну сходинку — рівень сініора

Досвід тімліда на ентерпрайзному проекті

Оскільки я прагнув розвитку та розмаху, то пішов працювати у одну з найбільших ІТ-аутсорингових компаній в Україні. Мене підкупило те, що вони мали в Україні повний цикл розробки. Спочатку я хотів піти на Android, який мене чомусь завжди приваблював, але мене переконали, що Android — це така технологія, яка не показує масштабу. І я пішов на велетенський джавішний проект з нуля. Це був повний Java-стек, хороший ентерпрайз, класні технології, i в ньому було залучено багато спеціалістів. Почав я там сініор девелопером, а з часом став тімлідом і отримав більше обов’язків, з-поміж яких і набір джуніор спеціалістів в команду.

На цьому великому проекті я співпрацював з дуже крутими людьми: бізнес-аналітиками, архітекторами, займався бізнес-девелопментом і навіть переймав деякий менеджерський досвід. Проект був цікавий ще тим, що тоді якраз джавішна спільнота прагнула бути незалежною, тобто хотіли брати один стек технологій Java і її різних фреймворків, щоб закривати всю компетенцію і не залежати від Frontend-спеціалістів та всіх інших. Ми ставили собі завдання виховати інженера, який зможе на Java написати будь-яку програмку. От тільки його одного посадиш, і маєш візуально готовий продукт, звісно ж якщо інтерфейс не вимагав дуже привабливого дизайну. Ta з часом, десь після двох років такого процесу, виявилось, що це не дуже вдала ідея. Окрім того, JavaScript почав активно розвиватися. Таке рішення було хорошим лише для дуже простих інтерфейсів, для консольних рішень, які не вимагають супер-сексі дизайну. Однак потім i воно мало свою прогалину по сапорту, i підтримувати це було дуже важко, адже якщо готові UI-компоненти на Java були з дефектами, то їх було потім дуже важко фіксити. І це значною мірою впливало на гнучкість та сексуальність дизайну. Тож ми свою роль виконували, але сапорт-спеціалісти витрачали потім дуже багато часу на підтримку продукту, коли вже кістяк було написано. Так я отримав свій хороший досвід ентерпрайзу і захотів змін і чогось більшого.

Аналізуючи цей період, можу сказати, що на рівні стронг мідла — початку сініора, коли вже є солідна база знань, важливо не зазнаватись. Головне завдання на цьому етапі — бути сильним спеціалістом і мати щось таке, за що тебе можна буде виділити з-поміж інших, наприклад, дуже круті знання в якійсь специфічній технології, виступи на якусь тему, наприклад, Data Science. Вже на рівні сініора-ліда важливо чітко усвідомлювати, які в тебе сильні сторони. Якщо є емпатія та певний набір софт скілів, тоді потрібно розвивати свої менеджерські здібності. Якщо ж переважають технічні навики та схильності, то потрібно шукати якісь real-life challenging projects, щоб максимально їх прокачати.

Як я потрапив у N-iX і став IT-директором у бельгійській компанії

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

Окрім Java на проекті було багато інших технологій, в тому числі Python i Ruby. Однак для вирішення багатьох основних задач на проекті я обрав саме Java, оскільки це було найкращим рішенням, було достатньо експертизи і в команді, і в N-iX загалом. І звісно замовник був не проти. Java завжди була технологією доступу до всього, яка вирішувала багато проблем, i в замовників не виникало сумнівів, чому саме Java. За це я її і люблю. Пам’ятаю, як я ще йшов на першу роботу, то доступ до знань з Java був обмежений, тому що вона не була така розповсюджена тоді, як інші мови, i було дуже важко знайти якісь курси. І до певного періоду, якщо хотів опанувати власне Java, потрібно було сидіти і навчатися самому. Тому якщо, бувало, ти зустрічаєш джавіста з досвідом, то це означає, щo людина сиділа, розбиралася і розуміє часто більше, ніж інші.

Спочатку я був на цьому проекті тімлідом, який набирав людей і створював команду за допомогою координації з Брюсселя, де знаходився IT-директор замовника. Перший рік з трирічного існування проекту ми власне так дзеркально і налагоджували стосунки: IT-директор з Брюсселя розраховував на мене в Україні, а я міг покластися на нього з того боку. І ми ось так будували продукт, щоб вивести його на ринок. Це була активна стадія розвитку продукту, де все збирається, як під час стрибка з літака, маючи елементи для складання парашута. Ми зібрали чудову команду і налаштували класні процеси із застосуванням сучасних підходів, де ми розмежували фронтенд і бекенд-розробку. Тобто в нас джавісти писали реально те, в чому Java найсильніша, i так само юайщики і девопс. В нас були всі спеціалісти різних рівнів, щоб повністю мейнтейнити продукт самостійно. Людям в Брюсселі подобалось, що ми були дуже самостійною одиницею, i якщо вони давали нам завдання практично будь-якого рівня складності, ми їх вирішували без зайвих запитань.
Таким чином, в Україні можна працювати начебто не у продуктовій компанії, але займатись продуктом, будувати щось, а не просто виконувати таски замовника, чого власне хочуть так багато сініор-спеціалістів.

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

Що стосуєтся технолoгічниx рішень, Java нас дуже задовільнилa i забезпечила увесь бекенд. Також велику долю успіху зіграла наша фронтенд-команда, девопс i тe, що ми могли це все дуже гарно і швидко виводити на ринок. На цьому проекті я спілкувався також з архітекторами з інших проектів, деякі з них були моїми друзями з попередніх компаній. В N-iX так заведено, що люди з різних проектів спілкуються між собою в чатах, завжди можна прийти і порадитись, і це створює хорошу робочу атмосферу. Власне, у нас є така собі внутрішня Java-спільнота.

Якщо ж говорити про задоволеність команди, то в різний час вона була різною, але загалом люди були задоволені, що мали можливість попрацювати на такому проекті. Це дуже корисний досвід і навіть зараз, після того, як вони пішли з проекту, то переоцінили своє ставлення до проектів і взагалі тe, чим вони б хотіли займатись. Тобто така продуктова історія у досвіді дала майндшифт у всьому, в тому числi у ставленні до технологічного стеку. Загалом це був хороший цикл для мене тривалістю в 2,5 роки, коли ми написали багато всього на Java. Це була можливість попрацювати повністю над продуктом і в технологічному сенсі, і в стратегічному.

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

Лід Java-девелопер... а куди ж далі?

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

Можна продовжувати рухатися в технічному напрямку: ставати техлідом, архітектором, ентерпрайз-архітектором. З точки зору архітектури та розвитку в ширину у Java-спеціаліста є куди рухатись, тому що багато різноманітних задач у різних сферах можна вирішити на Java. Це чудовий напрямок для справжнього технаря. Також можна розширювати свої скіли в специфічних Java-технологіях, таких як Hybris. Для тих же, кого приваблює менеджмент і розвиток та використання своїх софт скілів, більше підходить роль тімліда, щоправда технічні навики тоді з часом трохи втрачаються. Є ще один напрямок розвитку, а саме піти трішки в бік від звичайного ентерпрайзу та опанувати і заглибитися більше в такі інноваційні та перспективні зараз технології, як Machine Learning, Artificial Intelligence та Virtual Reality. До речи, у N-iX зараз є немало Java-проектів, які постійно шукають нових людей.

Насправді в Україні Java enterprise development буде актуальним ще багато років, тому про брак роботи не варто перейматися. Проте тим, хто прагне бути на передовій, варто тримати ці технології майбутнього на своєму радарі.


Viewing all articles
Browse latest Browse all 8115

Trending Articles