Как я стану веб-разработчиком… и стану ли?

0jqcocmrq4thyqbhd94xh9yxffk.jpegПо следам своего недавнего интервью и на правах пятницы публикую более подробный рассказ про свои планы по переходу из конструкторов в веб-разработчики для обсуждения и получения советов от сообщества. Пишу исключительно от себя, никто над душой не стоит и текст не вычитывает, нет скрытого подтекста и уловок HR менеджеров, как это бывает в других статьях об успешной переквалификации.

Пролог


На Хабре частенько проскакивают статьи на тему «из таксистов в программисты за 9 месяцев»… А что если я только собираюсь преодолеть этот путь? И вдруг не получится? В любом случае, я хочу немного рассказать о себе, чего хочу и почему решил пойти таким путем. Это не очередная success story и, возможно, никогда таковой не станет, но думаю найдутся люди, которые увидят в этих строках себя, свои страхи и отговорки и решат что-то изменить. Хочется рассказать о том, что уже было сделано, а что только планируется, и получить обратную связь от бывалых специалистов области. Итак, пройдемся по порядку.

Немного о себе


cntutpsqt_eupz2etbbrv_oxy8u.jpegАнатолий, 27 лет
Город: Смоленск
Семейное положение: женат, есть дочь и ипотека
ВУЗ и специальность: НИУ «МЭИ», инженер АСОИУ
Служба в армии: радиоперехват ОсНаз ГРУ
Текущая профессия: инженер-конструктор 2 категории

В программировании я не совсем новичок, у меня есть определенный бэкграунд за спиной. Начиналось обучение с Бэйсика и Паскаля в средней школе, потом был Делфи, Си/Си++, PHP, JavaScript. Сейчас мой основной язык Go. Ну и конечно Си для микроконтроллеров.

Между четвертым и пятым курсом четыре месяца провел в Америке по программе бесплатной рабочей силы Work and Travel, где немного подтянул разговорный английский и много путешествовал (фото сделано в Силиконовой долине). После института сходил в армию по призыву, где служил за постом радиоперехвата и писал игры на VBA, о которых по возвращению рассказал на Хабре.

На завод я попал еще во время учебы в институте на практику, и после армии вернулся туда же, что хорошо отразилось на карьерном росте. В мои текущие задачи входит полный цикл разработки и сопровождения приборов газоанализа: от проектирования электрических схем до написания текстовой документации. Спектр задач очень размазан, делаем всё и сразу. Здесь появился первый опыт написания и поддержания серверов сбора телеметрии с датчиков. В качестве языка для бэкенда выбрал Go, а для фронтенда Vue.js.

Мой путь в вебе


Еще со студенческих времен я немного (преимущественно в качестве хобби) промышлял созданием / допиливанием / поддержкой сайтов на готовых движках и написанием под них различных парсеров на PHP: картинки, товары, статьи, комментарии. На этом мои познания в вебе до недавнего времени заканчивались.

С Go я познакомился в середине прошлого года, выбрав его в качестве языка для рабочей задачи: требовалось поднять сервер для сбора телеметрии с датчиков по TCP. Знакомство прошло успешно, я достаточно быстро смог решить поставленную задачу и стал дальше углубляться в изучение. Прошел два курса от Mail.ru на Coursera, решил на нем еще пару прикладых задач, одна из которых крутится на Heroku и выручает меня по сей день: прогоняет через себя и отдает мне ролики с видеохостингов, ибо у нас на работе заблокирован доступ к видео файлам.

Также год назад начинал писать браузерную io-игрушку JS (Phaser) + Go на вебсокетах. За основу взял идею и графику старой bluetooth игрушки BiPlanes с намерениями добавить несколько типов игры (Death Match, Capture the Flag, Rugby) и деление игроков на небольшие комнаты по 10 человек.

_wayuaxhaxjorie97dx_2z4nfwm.jpeg

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

Встала задача по знакомству разработать автоматизированную систему управления наружным освещением: сюда входило проектирование самого устройства и написание серверной и клиентской частей для управления. После разработки и сборки платы на написание ПО под микроконтроллер взял в подмастерье коллегу, а сам тем временем занялся серверной частью. В задачи сервера входят периодический опрос параметров устройств через TCP и поддержка REST API для SPA. Для клиентской части взял Vue заготовку админ панели, связал с серверной частью посредством JWT и постепенно наращиваю функционал обеих частей.

На данном этапе это выглядит примерно так (там два яруса плат, если что):

zb43bqz4ebgpkaiv1v45gongkka.jpeg

3c20pobftoomjjo5dcwhpec33ss.jpeg

5vdsbvkijwzn5trjtrc70bwe4za.jpeg

-fvyqu5a-abj3o4m15vxe5e4krq.jpeg

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

В процессе работы я понял, что мне очень не хватает знаний по SQL: я банально не понимал, как работает запрос на соединение двух таблиц. Начал искать, где бы подтянуть свои знания в этой области: немного почитал / посмотрел теории и взялся за практику на сайте SQL-EX. Очень доволен результатом: прорешал более 80 задач и получил базовый сертификат, теперь в SQL я чувствую себя немного уверенней. Планирую постепенно прорешивать задачи на расширенный сертификат.

Текущая работа предусматривает обильное число командировок по просторам нашей необъятной родины. С того момента, как я заболел идеей профессиональной переориентации, я начал подстраивать свои командировки таким образом, чтобы проездом через Москву или Питер попадать на всевозможные митапы, которые так или иначе затрагивали веб программирование.

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

Почему я решил сменить работу


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

Работая на заводе, чувствую себя отстающим от мира сего. Сколько современных технологий проходит мимо нас?! Да что говорить, когда я единственный в отделе, кто использует Git? Остальные сотрудники, которые называют себя «программистами», до сих пор сохраняют программы по разным папкам и периодически теряют «нужную» версию.

ysq2t9lajhrvow7i-pzmmdso_bs.jpeg Утомляет бюрократия. Однажды я месяц писал служебную записку в соседний отдел с информацией, которая уложилась бы в минутный телефонный разговор. Надо мной три начальника: сначала пишешь для заведующего сектором, он вносит свои правки; потом читает заместитель начальника отдела — текст корректируется;, а дальше идем к начальнику отдела, поучаем нагоняй и начинаем изучать матчасть — неделю читаем ГОСТы и СТО, а потом процесс повторяется… Короче каждый видит по-своему. Работа не делается, а срок в итоге срываю только я.

В прошлом году меня поставили в кадровый резерв на заведующего сектором разработки (считай тимлид) — наверное, видят меня в качестве будущего мини-начальника, хотя в нашем секторе как минимум четверо людей опытней и старше меня. Но что такое кадровый резерв для завода? Это значит, что пока начальник не уйдет на пенсию (а этого не случится ближайшие лет 10, спасибо пенсионной реформе), никакого скачка по должности у меня не произойдет. Это завод, тут отделы не переформировываются десятилетиями, а люди сами не уходят на пенсию, если вы понимаете о чем я.

Конечно же тут должен быть абзац про зарплату, и это для меня вообще больная тема. И дело даже не в конкретных суммах (я считаю свою зарплату вполне нормальной — порядка двух средних по региону), а в том, что у меня жена зарабатывает больше… Я вроде рад и всё такое, но представляете, как это сказывается на мне? Без комментариев.

И самое главное — ИТ область предоставляет неограниченные возможности для развития, в то время как на заводе это развитие весьма скромно, область и спектр решаемых задач очень узок и ты практически привязан к единственному месту работы, с такими навыками я мало где еще смогу пригодиться. Я хочу создавать реальный продукт, который работает и им можно пользоваться, а не вот это вот всё заниматься бюрократией и чтением ГОСТов по безопасности.

Мои планы


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

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

В ближайшем будущем планирую много времени посвящать чтению книги «Высоконагруженные приложения» Мартина Клеппмана и таки дочитать ее до конца, она положительно сказывается на моем осознании, чего же у вас там, в Вебе, происходит. И это вовсе не уловка на фоне недавней статьи, интервью было составлено еще за месяц до этого, я правда ее читаю… Узнал я о ней из интервью Oh, my code с преподавателем Golang курсов Василием Романовым из Mail.ru. Хотя чего я оправдываюсь?!

Мои страхи


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

Страх #1 — Мало опыта для перехода на новую работу.
Да — мало, да — хорошо бы иметь больше, но опыт дело наживное: можно не знать какой-то конкретной технологии, но жизненный опыт и стремление развиваться никто не отменял. Я вообще считаю весь свой жизненный опыт уникальным: да я в армии со спутников скриптами отфильтровывал информацию о том, сколько холодильников загружают в Air Force One. Ну само собой не только это…, но об этом история умалчивает.

Страх #2 — Компаниям нужны миддлы / сеньоры / лиды, но только не джуны
Да, статистика по вакансиям подтверждает это, но вакансии для джунов есть, и это главное. А кто говорил, что будет легко? Искать и не сдаваться.

Страх #3 — Зарплата джуна в новой для меня области будет сильно ниже, чем я имею сейчас, а ведь мне надо содержать семью
Этот страх основной. Я надеюсь частично его компенсировать за счет более высоких ставок в ИТ в целом. Я понимаю, что возможно придется согласиться на некий даунгрейд по зарплате, но я готов на это решиться ради бОльших перспектив, тем более жена недавно вышла из декрета и мы потихоньку начинаем вставать на ноги после двухлетней «голодовки». Она меня в этом поддерживает, а на днях заявила: «А давай переедем?». И куда я могу поехать, имея опыт разработки только газоанализаторов?! Это еще больше мотивирует сменить профессию.

Страх #4 — Первая работа не должна быть удаленной
vm9bkqijwkefjjndfkyl9buq_ws.jpegЯ считаю, что с современными технологиями в организации удаленной работы вообще нет никаких проблем, будь то новичок или бывалый. Для меня ситуация складывается так, что в моем городе практически отсутствуют компании, которым могли бы потребоваться бэкенд-разработчики: есть только небольшие веб-студии, которые клепают сайты-визитки, так что поднабраться опыта сначала на офисной работе у меня наврятли получится. Тут я готов рассматривать вариант временного переезда на стажировку в Москву или Минск с дальнейшим продолжением работы удаленно. Судя по всему такое практикуют.

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

Мои цели


Конечно самая глобальная цель: стать удаленным бэкенд-разработчиком, снять тихое помещение и заниматься тем, что нравится. Да, я понимаю, что смотрю на мир через призму розовых очков, но я этого хочу и в это верю. Смоленск находится между Москвой и Минском в 4 часах езды от каждого, что должно быть весьма удобно в случае каких-то митапов, не будь я только железно привязан к проходной завода.

А локальные цели пока что выглядят так:

1. Дочитать книгу «Высоконагруженные приложения».
2. Начать рассылать резюме и проходить собеседования.
3. Больше практики… Возобновить работу над игрой.
4. Продолжить решать задачи от SQL-EX и начать разбираться в оптимизации запросов.

Заключение


Надеюсь рассказ получился не слишком сумбурным, жду ваших комментариев с замечаниями и предложениями. Кстати, завтра иду на свое первое собеседование в ИТ сфере.

Ссылки по теме:


1. Из хирурга в разработчики: как в 40 лет сменить профессию?
2. Как я за 9 месяцев превратился из неофита в разработчика ПО без отрыва от основной работы
3. Мой опыт войти в айти в сравнении с тамбовким таксистом
4. «Я три года борюсь с синдромом самозванца» — 10 вопросов программисту, выпуск 7

© Habrahabr.ru