Інтерв'ю: Senior Software Engineer у SoftServe Віталій Гребенніков | robot_dreams
Для відстеження статусу замовлення - авторизуйтесь
Введіть код, який був надісланий на пошту Введіть код із SMS, який був надісланий на номер
 
Код дійсний протягом 2 хвилин Код з SMS дійсний протягом 2 хвилин
Ви впевнені, що хочете вийти?
Сеанс завершено
На головну
Від роботи на заводі до Senior Software Engineer: що допомогло мені увійти в IT

Від роботи на заводі до Senior Software Engineer: що допомогло мені увійти в IT

Колонка Віталія Гребеннікова, лектора курсу Python Developer та світчера

Віталій Гребенніков, Senior Software Engineer у SoftServe та лектор курсу Python Developer, має досвід написання власних бібліотек та розробки WebUI-продукту на Python для Cisco. А трохи більш як 8 років тому він працював на заводі та не знав, ким хоче стати.

У своїй колонці для robot_dreams Віталій розповідає, що допомогло йому визначитися із професією, як опанував Python (та чому саме його) та що робити, коли опускаються руки.

Світчер з великим досвідом: як і чому я прийшов до IT

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

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

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

Писав код для заводських верстатів

Я завжди хотів бути інженером-конструктором, оскільки мене приваблювала ідея щось створювати, збирати та випробовувати, але, на жаль, професія інженера малооплачувана. Одного разу, коли я вчергове шукав, де підзаробити, мені запропонували посаду підсобного працівника на заводі. Я тоді подумав: «О, завод — те, що треба. Стабільність! Все як мама казала. Класно, що в мене є інженерна освіта».

Місяць я займався тим, що тягав різні залізяки, а далі на підприємстві оголосили набір на посаду оператора координатно-пробивного преса (це такі великі машини, які дірявлять метал). Запускати (натискати кнопку) та змінювати деталі на цих великих і дорогущих апаратах мала тільки людина з інженерною освітою… тобто я. Загалом це нехитра робота, але часто я був знесилений через велику кількість змін і потребу працювати вночі. 

На заводі в мене було достатньо часу на роздуми про життя та читання цікавих книжок, що вплинуло на мій подальший розвиток. Притаманне мені бажання опановувати нові знання і розвиватися тільки посилювалося. За п’ять років роботи на виробництві мені вдалося попрацювати оператором технічного контролю, лаборантом, я навіть гнув мідні труби на верстаті (до речі, це було прикольно). А останні два роки я писав код для верстатів. Ну як писав… це складно було назвати справжнім програмуванням, адже я лише змінював чи оптимізував уже наявний код.

Я швидко розібрався, як це робити, і невдовзі мені стало нецікаво писати програми для заводських верстатів. Завдяки цьому в мене з’явився інтерес до програмування для вебу, що виявилося цікавим і веселим заняттям.

Як обирав мову програмування і які складнощі були у навчанні

Ще працюючи на заводі, я почав дивитися популярні відео про HTML, CSS і PHP (тоді це був стандартний набір для вебпрограміста). Визначитися з вибором мені допоміг друг Костя, який вже на той момент два роки програмував на Python.

Він сказав мені: «Спробуй цей Python — і все, більше тобі нічого не буде потрібно, ні PHP, ні інших мов, ні JavaScript. Python класний». Я йому повірив. А потім і сам переконався, що ця мова структурована, логічна, без синтаксичного сміття, а код легко читати.

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

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

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

Перша робота в аутсорсі

Одного разу мені зателефонували з невеликої аутсорс-компанії та запросили на співбесіду на позицію Junior Strong Python Developer. Я був здивований, адже відправив їм CV приблизно пів року тому, коли думав перейти на роботу в якусь компанію. Тоді мені не вдалося це зробити, і я продовжив спокійно фрилансити, зібрав собі класний комп’ютер, щоб працювати та грати в ігри. Моє життя мене цілком влаштовувало, а вакансія передбачала роботу в офісі й переїзд у Львів. Близькі та рідні вмовили спробувати пройти співбесіду і… сам того не очікуючи, я отримав офер.

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

Однак були й плюси: мені дуже сподобалося працювати в команді та ділитися досвідом. На додаток, ми з колегами стали добрими друзями поза роботою.

Загалом перша робота в аутсорс-компанії була досить стресовою.

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

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

Долати нервові напруження на роботі мені допомагає хобі — музика (я зараз записую свій реп-альбом) та сон. Раніше я активно катався на байку і подорожував.

Цілі на майбутнє

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

Завдяки саморефлексії та читанню книг з психології (наприклад, Дейла Карнегі) я став більш упевненим в собі. Працюючи Strong Junior Python Developer у SoftServe, усвідомив, що я розумний і на деяких темах знаюся краще за своїх колег. Це стало відправною точкою у моєму розвитку від Junior-спеціаліста до Middle та Senior. Звичайно, ще іноді у мене активізується комплекс самозванця, але я відганяю від себе сумніви.

Дуже важливо ставити собі цілі. Для цього я використовую SMART-техніку. Так, ціль повинна відповідати п’яти критеріям:

  • Specific — конкретна.
  • Measurable — вимірювана.
  • Achievable — досяжна.
  • Relevant — значуща. Результат має розв'язувати конкретну проблему.
  • Time-bound — обмежена за часом.

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

Поради для Junior-програмістів

1. Майте бажання вчитися. Кожен, хто готовий вчитися нового, може опанувати будь-що. Коли я інтерв’ював програмістів у свою команду, то обирав тих, хто горить своєю справою.

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

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

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

5. Чітко ставити цілі. Я рекомендую використовувати технологію SMART і ставити як короткотривалі, так і довготривалі цілі.

Ще статті
Експертки про те, як оцінюють кандидатів на нетехнічних інтерв’ю
Частина 2. Робота із записами: вставка, читання, змінення й видалення