Хабрахабр

Мой путь из инженера в программисты

У него получилось. Краткое содержание
Автор поныл, как тяжело живется инженерам на Руси и решил уходить в программисты. Пост о том, как именно.

Зачем я все это пишу

  • Благодарность. Сказать «спасибо» сообществу Хабра.
  • Поддержка и мотивация. Морально поддержать инженеров, которые тоже решили менять свое призвание на новое, но не могут решиться.
  • Самомотивация. Для движения вперед очень полезны маленький отчет и немного планов, высказанных публично.
  • Поделиться опытом. Возможно, кому-то мой путь покажет его собственную дорожку.

Благодарность

С этого и стоит начать.
Мой пост «Инженер VS Программист. Ради этого пост задумывался. Самое главное — он принес мне волну поддержки, позитива и мотивации. Или куда уходят инженеры» принес множество комментариев, несколько личных сообщений, пару собеседований.

Именно поддержка сообщества дала вдохновляющий пинок, вперед, к моей цели, и привела меня в программисты. Большое спасибо всему сообществу Хабра!

Он дал мне направление и помог составить некое понимание, как и куда идти дальше. Отдельное спасибо хочу сказать serenityfx, который специально зарегистрировался, чтобы оставить комментарий с предложением поделиться своим опытом, нашел время побеседовать со мной лично, ответить на мои вопросы.

Ты крутой! Спасибо, Хабр!

Краткое содержание прошлого поста

Проработав 14 лет инженером, в том числе инженером-разработчиком, я решил перейти в программисты, потому что инженер-программист — востребованная специальность с более высокой оплатой труда, широкими перспективами и возможностями.

Мой путь

Благо, прямо из комментариев пришло несколько личных контактов, которые позволили сделать несколько попыток. Благодаря фидбеку от Хабра, я смог четко сформулировать два пути развития дальше.
Первый — еще раз попытаться найти себя как инженера-разработчика, как в России, так и за ее пределами.

Активно занялся поиском работы, в том числе за рубежом, и стал качать свои навыки в контроллерах. Второй путь, который тоже прорисовался достаточно четко – качать навыки программиста микроконтроллеров и встроенных систем и искать начальные позиции (джун-мидл) в этой сфере.
Как «умная и красивая обезьяна», у которой было время, я попытался идти одновременно по двум направлениям.

Надо идти в программисты. Через полгода стало понятно, что первый путь все же тупиковый. Я сосредоточился на контроллерах и поиске работы, но уже в качестве программиста. Стечение обстоятельств подтолкнуло меня к увольнению.

Моя жизнь фрилансера продлилась 8 месяцев и закончилась вместе с платежами по заказам. Неожиданно для себя я получил предложение поработать в качестве фрилансера на проекте, который одновременно использовал меня и как программиста контроллеров, и как инженера-разработчика. Но мои навыки программирования за это время сильно подросли, поэтому я вернулся к рынку труда и поиску вакансии инженера-программиста.

Так я стал инженером-программистом встроенных систем. По результатам одного из собеседований меня пригласили сначала на стажировку, потом на испытательный срок, который плавно перетек в постоянный контракт.

Но давайте чуть подробнее о каждом из этапов.

Стартовая позиция

На самом деле, моя работа на половину состояла из разработки и тестирования алгоритмов, железа, на четверть из организационных вопросов — управлением командой, закупками и документацией, и на четверть из программирования разработанных устройств. Начинается с инженера-разработчика.

Как у инженера старой школы, у меня была склонность к теоретическим знаниям, поэтому к моменту увольнения за спиной у меня уже было несколько пройденных курсов разной степени полезности:

А также половина пройденного курса на JavaRush, который был заброшен после решения идти в embedded.
На практике у меня был опыт моделирования и обработки сигналов, связанных с моими устройствами. Кроме того были интересные, но бесполезные курсы от HTML Академии ИТМО (HTML/CSS/JS),
«Управления проектами» от ВШЭ и «Теория графов» от ИТМО. Опыт написания прошивок для контроллеров серии C8051 от SiliconLabs, младших контроллеров Atmel и немного опыта разработки для FPGA от Altera.

Также за спиной был опыт управления командой и мелкосерийным производством, но я считал его нерелевантным.

В поисках вакансии

Их было много, они проходили волнами.
На собеседованиях был много странностей. Тема собеседований достойна отдельного поста. На собеседованиях на позицию инженера меня пытали на предмет опыта программирования.
Были короткие встречи, на которых я говорил «Стоп, вам нужен не я». Когда я приходил собеседоваться на позицию программиста, меня спрашивали, почему с таким опытом я не хочу работать инженером. Были замаскированные военные, идти к которым я не хотел принципиально. В противовес этому на одну из позиций был марафон собеседований из пяти двухчасовых собеседований на английском по скайпу. Была фирма, которая по сути представляла собой кооператив фрилансеров во главе с менеджером.
Главным же итогом большинства моих собеседований было отсутствие предложений о работе там, где я хотел, и наличие предложений там, где мне не хотелось бы работать.

Жизнь во фрилансе

Для меня огромным плюсом стало время. Здесь я с головой окунулся во все плюсы и минусы фриланса, которые многократно обсуждались на Хабре. Зато я легко отдавал проекту по 12 часов в день, имея возможности учиться и закрывать те пробелы в знаниях, которые у меня были в программировании. Я жил в своем таунхаусе на природе и не тратил время на дорогу. Сначала смакетировал на Дискавери нужный мне проект, потом сделал плату и повторил его на 10х серии. Я окунулся в мир STM32 и, в том числе, FreeRTOS. К сожалению, уезжать далеко от дома я не мог, потому что осциллограф, паяльник, блок питания пришлось бы таскать с собой. Параллельно разобрался в Git и проектировании на UML в рамках нужных задач.

Но основной доход приносил один заказчик. Одновременно пробегали проекты, связанные с антеннами и радарами. К слову, этот доход был в полтора раза выше мой зарплаты инженера-разработчика.

Когда же совсем перестал платить и исчез с горизонта, то пришлось затянуть пояс и идти искать работу снова.
Да, банальность известная всем — заключайте договор. Однако сначала заказчик стал задерживать оплату этапов, но я терпел. Я обменял деньги на опыт работы во фрилансе и программировании.

Испытание боем

Первая попытка решить тестовое задание (небольшая задачка для микроконтроллера) не привела к собеседованию. В эту фирму я попал со второго раза. Вторая попытка спустя полгода была более удачной. Отзвонился, узнал чем именно не понравилось мое решение (мало комментариев, предложен всего один вариант решения).

Разговор с будущим коллегой, долгий и обстоятельный. Собеседование с представителем HR, с небольшими тестами. Предложение об оплачиваемой «стажировке» на несколько дней. Суммарно более 2 часов.

Деньги получил на руки вместе с предложением испытательного срока на три месяца. За время «стажировки» закрыл пару-тройку багов.

Вкратце за это время: Можно сказать, что с этого времени началось настоящее погружение, длиной в полгода.

  • погрузился с головой в целое озеро легаси кода, борясь с багами;
  • нахлебался встроенного Линукса, от драйверов до баш скриптов;
  • быстренько пробежался по SVN;
  • научился юнит-тестированию GTestом;
  • освоил методологию CI, настроил свои задачи связкой Hudson/Ant/Python -> компиляция + юнит-тесты;
  • разобрался с Qt и его виджетами;
  • прокачал практическое применение FreeRTOS на STM;
  • написал скрипты выходного тестирования для нового девайса;
  • почти перестал чувствовать синдром самозванца.

Работаешь положенные 8 часов. Первые полгода были очень активным временем. На следующий день приходишь на работу и с новыми знаниями пытаешься решить задачу. Потом приезжаешь домой и все оставшееся время пытаешься быстро подтянуть свои знания и навыки, чтобы решить задачи, поставленные днем.

Где практическими советами, где просто идеями. Очень сильно помогали коллеги.

Главное не забывать смотреть чуть шире, и успевать понимать, что именно ты делаешь. Когда работаешь в режиме: есть задача — нужно срочно решать, то обучение движется существенно быстрее.

Легаси код, спринты, проектирование, тесты, CI/CD в полный рост. Сейчас я чуть снизил обороты, тем более что зимой я впадаю в состояние, близкое к спячке, но я уже не только работаю программистом, но и ощущаю себя им. И мне это чертовски нравится!

Никаких переработок и непонятных требований. Зарплата по сравнению с инженером-разработчиком выросла более чем в два раза. Это даже больше, чем я ожидал, когда собирался уходить в программисты.

Что дальше...

Это не сложно, потому что программирование имеет свойство затягивать в процесс. Не останавливаться. Начав, очень сложно остановиться.

Потому что белых пятен в моих знаниях еще очень много, в том числе теоретических. Учиться. А уж как не хватает практических.

Очень хочу заниматься своим проектом, тем более что у меня в голове есть парочка идей, а на руках две интересные платки.

Алгоритмы и базы данных. Записался на пару курсов.

Хочу дойти в той же сфере до сеньора, а там посмотрим.

Заключение

Если бы не терял время в тщетных надеждах и топтании на месте – в полтора года точно бы уложился. Самый главный посыл этого текста – я смог стать из инженера-разработчика программистом встроенных систем за два года.

Базовые понятия, железо, Линукс, контроллеры.
Чего явно не хватило – практики. Что было важно и нужно – знание теории. Любой свой проект, с обязательным красивым кодом и комментариями – очень не хватало при поиске работы.

У меня были вдохновляющие комментарии на Хабре и «крепкий тыл», который в меня верил. Уверенность в том, что все получится.

Еще раз всем огромное спасибо!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть