💳 Trustee Plus: розраховуйся криптою за допомогою платіжної картки. Ліміт: 50 000 євро 🚀

SmallTalk with Senior. Досвідчений Python-розробник про те, як досягти рівня сеньйор і не витрачати зайвий час на винахід велосипеда

Хтось каже, що ​​Python — одна з найлегших мов програмування, інші — про її універсальність, коли його можна використовувати разом з іншими популярними мовами програмування, зокрема, Java, C#. Окрема цінність Phyton у тому, що це найкраща мова для програмування штучного інтелекту, машинного та глибокого навчання. Про те, що має знати Senior Python Developer,  як досягти цього рівня та на що варто звернути увагу, розповів Олександр Вітер, розробник на Python рівня сеньйор у SoftServe. 

До вашої уваги черговий матеріал з циклу SmallTalk with Senior на dev.ua, де усі, хто хоче досягти цього рівня, можуть скористатися порадами бувалих.

Залишити коментар
SmallTalk with Senior. Досвідчений Python-розробник про те, як досягти рівня сеньйор і не витрачати зайвий час на винахід велосипеда

Хтось каже, що ​​Python — одна з найлегших мов програмування, інші — про її універсальність, коли його можна використовувати разом з іншими популярними мовами програмування, зокрема, Java, C#. Окрема цінність Phyton у тому, що це найкраща мова для програмування штучного інтелекту, машинного та глибокого навчання. Про те, що має знати Senior Python Developer,  як досягти цього рівня та на що варто звернути увагу, розповів Олександр Вітер, розробник на Python рівня сеньйор у SoftServe. 

До вашої уваги черговий матеріал з циклу SmallTalk with Senior на dev.ua, де усі, хто хоче досягти цього рівня, можуть скористатися порадами бувалих.

Якщо ви — сеньйор і бажаєте поділитися своїм досвідом — пишіть на пошту [email protected] 

Від «матеріального» до програмування

Мене звуть Олександр Вітер і я працюю на позиції Senior Python Developer у SoftServe з 2021 року. Мені 33 роки, з яких останні шість живу в Одесі, але до цього майже все життя провів у Миколаєві. Там я спочатку вчився у звичайній школі, потім в економічному ліцеї, а далі — у НУК (Національний університет кораблебудування імені адмірала Макарова).

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

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

Нажаль, поспілкувавшись з більш досвідченими колегами, деякі з яких працювали на заводі по 30–40+ років, я зрозумів, що ця сфера в Україні має майже нульові кар’єрні і фінансові перспективи. Тож, щоб забезпечити собі і своїй сім’ї більш комфортний рівень життя, у 2017 році я почав вивчати різні мови програмування (JavaScript, Java, Python) і врешті-решт зупинився на останній як на основному інструменті в своїй кар’єрі. Думаю, основною причиною, чому я обрав саме backend розробку, а не щось інше, (frontend, AQA, DevOps) була схожість backend розробки на те, чим я займався як інженер-програміст на заводі. Тож фактично треба було лише вивчити синтаксис нової мови, а всі базові поняття і принципи я і так вже розумів. Першу роботу як Junior Python Developer я отримав у 2018 році, приблизно через рік після того, як почав вивчати мову. 

Найбільше мені допомогли такі ресурси, як:

  • Sololearn — сайт і мобільний додаток, це можна вивчати практично будь-яку мову програмування. Мені сподобався темп подачі матеріалі — від простого до складного з плавним наростанням складності та цікаві практичні завдання.
  • Codingame — сайт, де програмісти з усього світу змагаються, пишучи код «ботів» для різних ігор, які розробляються авторами цього проєкту. Дуже круто розвиває алгоритмічне мислення та здатність оптимізувати власні алгоритми.
  • CheckIO — сайт з задачами для тих, хто вивчає Python та JS. Доречі, я також там працював певний час як автор задач і статтей, уже після того, як встиг побути «учнем» на їхньому сайті.

Шлях сеньйора

На те, щоб стати сеньйором у мене пішло сім років, з яких перші чотири я працював на заводі з різними не дуже популярними технологіями, наприклад G-codes. Потім три роки — саме як Python Developer. Це був непростий шлях, я часто відчував, що мені не вистачає фундаментальних знань з Computer Science, які мають люди, що вивчали це все в університеті. Додатково до опанування практичних навичок мені доводилося виділяти час після роботи, коли я вже працював на позиції Junior Python Developer, для закриття прогалин у теоретичних знаннях. У середньому у людей шлях до сеньйора в Python займає пʼять років, тож у мене він був трохи довшим.

У 2020 та 2021, коли я ще був мідлом, але психологічно вже був готовий до наступного кроку — я викладав програмування у комп’ютерній школі Hillel. Це дуже сильно розвинуло софт скіли та менторські навички, що в результаті сильно допомогло під час проходження співбесід на позицію сеніора. Тож, щодо складності ставання сеньйором — був період у кар’єрі, коли доводилося паралельно працювати на двох роботах: на основній із понеділка по п’ятницю і викладачем — на вихідних.

Що по грошах

Коли я починав свою кар’єру, то долар ще був по 8 (золоті були часи), тож у доларовому еквіваленті моя зарплата сеньйора у 14 разів більша за першу зарплату. А якщо порівнювати гривневі суми тоді і зараз, то сеньйорська зарплата у 67 разів більша, ніж була оплата інженера-програміста без досвіду 10 років тому.

Скрін DOU

Не дивлячись на те, що фінансово я вже досяг серйозного рівня, зарплата продовжує зростати в середньому раз на рік. Максимум, який я особисто бачив у вакансіях, які мені надсилали рекрутери, був в районі 6500$ на місяць, але я ще не досяг такого рівня. Від деяких людей чув, що в Україні реально заробляти й $7000–8000 як Senior Python Developer, але я таких вакансій не бачив. Суми в українських і закордонних (європейських) компаніях відрізняються не дуже суттєво, можливо на 10–20%. Американські компанії готові платити ще більше, деякі навіть більше $10 000 на місяць, проте такі вакансії треба активно шукати і самому на них подаватися, не чекаючи, доки рекрутери тебе знайдуть і самі запропонують.

Також треба враховувати, що багато компаній можуть не захотіти співпрацювати з людиною, яка живе у країні у стані війни, тож вони можуть попросити переїхати у більш безпечну країну (якщо є така можливість) та отримати інше податкове резидентство, що значно вплине на розмір чистого доходу, адже у багатьох країнах розмір податків може складати 30–45%, а не українські 5–6,5%

Що має знати кожен синьйор

Я б виділив такі ключові моменти:

  1. Базові знання з Computer Science. Маючи цю базу, навіть опановану самостійно, а не в університеті, значно простіше розбиратися з новими технологіями, іншими мовами програмування та багатьма іншими професійними інструментами. Без цього розробнику кар’єрно і професійно зростати дуже і дуже складно. При чому не обов’язково весь час тримати у пам’яті, наприклад, всі алгоритми сортувань чи всі можливі операції зі зв’язаними списками або бінарними деревами. Достатньо просто мати уявлення про їхнє існування (а також решту базових речей) і ті ситуації, коли їх варто використовувати. Це, по-перше, дозволить не витрачати зайвий час на винахід велосипеду, а по-друге — писати ефективні програми без думки «хай користувачі купують більш потужні девайси».
  2. Софт скіли. Багато хто з джунів і мідлів ігнорує цей пункт, вважаючи, що хард скіли це 90% успіху. Але насправді, чим вище по ієрархії ви підіймаєтесь, тим більш важливими стають софт скіли. Інколи навіть доходить до ситуацій, коли сеньйором може стати менш технічно кваліфікований спеціаліст, але з краще розвинутими софт скілами, а його колега мідл без добре розвинених софт скілів — так і залишиться мідлом ще на довгі роки, навіть маючи кращу технічну ескпертизу.
  3. Англійська мова. Чим вище позиція людини у ланцюжку джуніор — мідл — сеніор, тим зазвичай стає менше кодінгу і більше спілкування: з замовниками, з іншими командами, менторінг джунів тощо. Дехто навіть веде власний YouTube-канал, пише статті чи виступає на конференціях. Так от міжнародна мова спілкування в ІТ, як і в бізнесі, науці та багатьох інших сферах — це англійська. Бажано знати її хоча б на рівні В2 — це відкриває значно ширші можливості, ніж більш низкі рівні володіння.
  4. Розуміння потреб бізнесу. Мабуть одна з ключових точок, де сеньйор кардинально відрізняється від мідла. Якщо мідл просто бере чергову задачу і робить те, що там написано, без зайвих думок, то сеньйор має більш комплексне бачення і розуміння бізнесу клієнта, що допомагає висувати ідеї для покращень проєкту або розуміти, як зміни зі сторони нашої команди можуть вплинути на інші команди у позитивному чи негативному сенсі. Врешті-решт, нам платять хороші гроші не за те, що ми такі класні алгоритми пишемо, а за те business value, яке ми створюємо.
  5. Останній пункт буде трохи цинічним і не дуже лояльним — якщо ви ще не сеніор, то не засиджуйтеся дуже довго на одному місці. По-перше, я бачив багато ситуацій, коли пройти внутрішню атестацію в компанії на більш високу позицію набагато складніше, ніж пройти співбесіду в іншу компанію. Тобто джун може надовго застрягти на позиції джуна, а мідл — на позиції мідла в рамках однієї компанії, хоча вони могли б піднятися на +1 кар’єрну сходинку, якби спробували влаштуватися в іншу компанію. По-друге, для сеньйора важливі не лише роки досвіду, але й якість цих років. Тож важливо попрацювати на декількох проєктах за ті пʼять років, які ви будете йти до рівня сеньйор. Не всі компанії мають таку можливість — переводити людину з проєкту на проєкт кожні 1–2 роки. А якщо застрягти лише на одному проєкті на всі пʼять років початку своєї кар’єри, то не розів’ється достатньо широкий кругозір, який потрібен сеніору.

Що може бути далі

Я великий шанувальник FIRE (Financial Independence, Retire Early — фінансова незалежність, ранній вихід на пенсію), тому майже всю кар’єру, починаючи з «джунівства» відкладав так багато грошей, як тільки міг. Враховуючи розмір зарплати сеньйора та вартість життя в Україні, у мене виходить відкладати близько 80%, а жити лише на 20%. Тому у планах на майбутнє — продовжувати працювати сеньйором ще років 10, а потім, за моїми розрахунками, збережених грошей має вистачити, щоб інвестувати їх і жити звичайним життям на дивіденди. 

Якщо план із FIRE спрацює — то за моїми розрахунками я зможу вийти на пенсію вже в 45 років, причому це буде пенсія, яку «виплачуєш сам собі», а не залежиш від милості держави. План Б, якщо раптом план А провалиться з тих чи інших причин — працювати до 60–65 років, як і більшість звичайних людей.

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

Чи існує компанія мрії?

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

Другий цікавий напрям — схожий на компанію Neuralink Ілона Маска, де чип зчитує електричні імпульси мозку. Я б хотів працювати d компанії, яка займається цифровізацією людської свідомості і (у перспективі) — створенням цифрового безсмертя. Тобто, щоб оцифрувати свідомість живої людини під час її життя, а після біологічної смерті, за певну суму, створити для неї нове синтетичне тіло і завантажити туди її цифрову свідомість, щоб вона продовжувала жити далі. Людство вже частково йде до цього, до розуміння, що «людина» — це її свідомість, а не її тіло. Наприклад, багато хто втратив кінцівки на війні чи при нещасних випадках. Але ж від цього ці люди не перестали бути собою. Так само, на мій погляд, і повна втрата тіла не має бути перешкодою до того, щоб жити далі, просто не в біологічній формі, а у кібернетичній.

Що, якби не IT?

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

Також мені подобається науково-фантастична література і фентезі, і час від часу я пишу статті на різні теми, тож можливо спробував би себе у якості письменника.

Ще я люблю працювати руками з деревом і металом, і у мене є розряд токаря, фрезерувальника, отримані ще в студентські роки, отже ще одна альтернатива — хтось із звичайною робочою професією.

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

Чому сеньйору зараз складно знайти роботу? 

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

Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram
SmallTalk with Senior. Java-розробник із досвідом розповів як стати хорошим Java-developer і за 6 років збільшити зарплату у 20 разів
SmallTalk with Senior. Java-розробник із досвідом розповів, як стати хорошим Java-developer і за 6 років збільшити зарплату у 20 разів
По темi
SmallTalk with Senior. Java-розробник із досвідом розповів, як стати хорошим Java-developer і за 6 років збільшити зарплату у 20 разів
SmallTalk with Senior. Досвідчений Wordpress/PHP Developer про те як досягнув сеньйорського тайтла ніколи не вивчаючи теорію заради теорії
SmallTalk with Senior. Досвідчений Wordpress/PHP Developer про те, як досягнув сеньйорського тайтла, ніколи не вивчаючи теорію заради теорії
По темi
SmallTalk with Senior. Досвідчений Wordpress/PHP Developer про те, як досягнув сеньйорського тайтла, ніколи не вивчаючи теорію заради теорії
Читайте також
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Не завжди є доступ до улюбленої IDE, або час на її запуск. Але коли потрібно швидко перевірити якийсь простий функціонал або втілити нову ідею, стане у пригоді онлайн-компілятор.
1 коментар
Мануал для джуна. Python Developer: запитання на співбесіді, практичні завдання та поради для початківців
Мануал для джуна. Python Developer: запитання на співбесіді, практичні завдання та поради для початківців
Мануал для джуна. Python Developer: запитання на співбесіді, практичні завдання та поради для початківців
Джунів, які шукають роботу, проходять купу співбесід та отримують відмови замість оферів, під час війни побільшало. А все тому, що до співбесід необхідно ретельно готуватися. dev.ua продовжує серію матеріалів про те, що треба знати джунам для проходження співбесіди й отримання омріяного оферу від першого роботодавця.  Олександр Ковтунов, Python Software engineer компанії Ajax Systems, який також проводить співбесіди для junior- і middle-фахівців, розповів про професію Python Developer і надав поради, як початківцям долучитися до професії.
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Діана Смелікова, операційний директор Wezom Academy, у своєму блозі на DOU пояснила, з чого почати вивчати програмування та яким мовам варто налагодити перевагу на початковому етапі. Ось 5 важливих порад від неї.
Які IT-спеціальності будуть потрібні в найближчі п'ять років? Ми з'ясували у голови американського стартапу ADAM Дениса Гурака
Які IT-спеціальності будуть потрібні в найближчі п'ять років? Ми з'ясували у голови американського стартапу ADAM Дениса Гурака
Які IT-спеціальності будуть потрібні в найближчі п'ять років? Ми з'ясували у голови американського стартапу ADAM Дениса Гурака

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.