Интервью: Senior Software Engineer в SoftServe Виталий Гребенников | robot_dreams
Для отслеживания статуса заказа — авторизируйтесь
Введите код, который был выслан на почту Введите код с SMS, который был выслан на номер
 
Код действителен в течение 5 минут Код с sms действителен в течение 5 минут
Вы уверены, что хотите выйти?
Сеанс завершен
На главную
От работы на заводе до 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. Работа с записями: вставка, чтение, изменение и удаление