Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам

Читать в полной версии →

Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.

Меня зовут Евгений. По образованию я инженер КИПиА. Моя основная работа связана с обслуживанием различных систем автоматики. В основном, это инженерные системы. Автоматизация вентиляции, отопления, обслуживание измерительных датчиков. Но в мою работу входило также и программирование промышленных контроллеров. Для меня это всегда была самая сложная и интересная работа. Но так вышло, что со временем на работе таких задач стало все меньше, и я больше занимался техническим обслуживанием инженерных систем и поддержанием их рабочего состояния. Мне стало скучно. И я решил, что хочу больше заниматься именно программированием.

Свой путь в «большое» программирование я начал в 2015 году, когда вдруг осознал, что действительно хочу стать разработчиком. Тогда я начал активно читать «Хабрахабр», при этом большую часть статей я не особо понимал, но все равно было очень интересно. Нужно было выбрать первый язык. Я пошерстил интернет на эту тему, перечитал уйму разных статей — и выбрал Python. В качестве курсов я выбрал Codecademy и начал читать Марка Лутца «Изучаем Python». Даже поставил себе цель на SmartProgress и каждый день описывал свой прогресс. Вот ссылка. Курсы на Codecademy оказались довольно поверхностными, а книга Лутца очень объемной.

Тогда я начал искать какие-то дополнительные ресурсы для изучения программирования, наткнулся на Хекслет и даже зарегистрировался на нем. Но учиться на нем тогда не начал, потому что на тот момент меня больше привлек сервис Checkio.org. У него был очень клёвый дизайн и много интересных задачек по Python.

Чтение Лутца, курсы на Codecademy и решение задач на Checkio, отписка на SmartProgress — в таком вялотекущем режиме прошел мой 2015-й год. Прогресса особого не было, нужно было писать какой-то свой pet-project, чтобы применять полученные знания. Но я не знал как. И забросил это дело.

Знакомство с вёрсткой

В 2016 году я озадачился тем, что хочу сделать собственный сайт, но не знаю как. Тогда я хотел запустить свой бизнес — конечно же в интернете. Собирал сайт на конструкторе, пробовал установить WordPress и сделать что-то на нём. Я хотел, чтобы всё было красиво, а получалось либо коряво, либо результат меня совсем не устраивал. Тогда я понял, что мне нужно изучить вёрстку. Я нашел одну онлайн-школу и её интерактивные курсы — и меня затянуло. Я прошел все бесплатные курсы и даже на месяц купил подписку. Всё это обучение шло параллельно с основной работой. Тогда я начал верстать свои первые макеты, стало что-то получаться. Так прошел весь 2016 и половина 2017 года. Когда HTML и CSS я более или менее освоил, то понял, что совсем не знаю JavaScript. Я выбрал его как основной язык и начал активное изучение. Начал с книги «Eloquent JavaScript», тогда же я стал больше смотреть тематических видео на YouTube.

В это же время я понял, что хочу ближе познакомиться с IT-тусовкой. Я каждую неделю слушал подкасты по фронтенду, стал сначала посещать местные митапы, затем — бесплатные конференции.

Интенсивы

Мое обучение шло довольно медленно. И я решил, что мне не хватает практики и командной работы. В начале 2018 года я принял решение пройти базовый курс по вёрстке от той школы. Даже не смотря на то, что вёрстку на тот момент я более или менее знал, выбрал именно базовый курс — но самый сложный макет. Курс оказался очень интересным и насыщенным. На выходе я получил свёрстанный интернет-магазин, который не стыдно было положить в портфолио. Но так как на тот момент я уже больше изучал JS, а на втором курсе была продвинутая вёрстка, я купил интенсив уже от другой школы. Потому что в нём, судя по описанию, было больше JavaScript и еще давали Vue.js. Летом я закончил этот курс, где сделал за все время собственный сайт-портфолио и немного изучил Vue. Но всё равно чего-то не хватало. Было много практических заданий, но как будто не было прочных фундаментальных знаний. В тот момент я начал активно читать Slack Хекслета и смотреть лекции на YouTube. И меня очень сильно зацепило. Я понял — вон оно, это именно то, что мне нужно! И с 1 сентября, я, как прилежный ученик, начал проходить курсы на Хекслет.

Про Хекслет

Я выбрал профессию «Фронтенд-JavaScript» и поставил себе цель — полностью пройти профессию и завершить все проекты. Что больше всего меня поразило, так это то, что на самом базовом курсе «Введение в программирование» даются очень глубокие фундаментальные знания. Особенно мне понравился сам формат обучения. Небольшая лекция и сразу практическая задача. Это позволяло учиться в комфортном режиме. Что было, как бальзам на душу, по сравнению с 2-х часовыми вебинарами на других курсах. Уровень практических задач заставлял мой мозг сильно напрягаться. Это не было похоже на Codecademy, плюс много непонятных терминов — СИКП, пары cons, car, cdr, рекурсия, каррирование. Что это вообще такое? Курс «Введение в программирование» пролетел незаметно. Я, не раздумывая, оплатил подписку и продолжил свой путь.

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

Про резюме и трудности при смене профессии

Работу программистом я начал искать в середине 2018 после окончания курса в другой школе. Для начала нужно было составить резюме, и я решил оформить его на «Мой круг». В резюме я указал все свои учебные проекты и желаемую должность — frontend-разработчик. Но одного сервиса «Мой круг» было недостаточно, так как основная площадка для поиска работы — это HH. Вот тут начались проблемы — у меня уже было резюме на HH по основной специальности, я решил создать новое. Но с новым резюме я никак не мог пройти модерацию, потому что постоянно прилетал отказ.

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

Используя эти две площадки, я начал мониторить рынок и откликаться на вакансии. Я принял решение сразу позиционировать себя как frontend-разработчик — без приставок junior. На основной работе у меня был хороший доход, поэтому при смене профессии я решил, что буду искать примерно такой же уровень. Но тогда я еще был готов к просадке в 20% на начальном этапе.

Но всё изменилось в конце 2018 года. У меня нет собственного жилья, а мы с женой жили на съёмной квартире. В конце года у нас родился сын, и жилищный вопрос встал особо остро. Мы купили квартиру в ипотеку. Маленький ребёнок и ипотека — это самые большие статьи расходов и большая ответственность. Поэтому при поиске работы программистом я уже не мог позволить себе просадку и искал зарплату, которая равнялась бы основному доходу. Это накладывало определенные ограничения. Не каждый работодатель готов платить такую сумму за человека, у которого в портфолио только учебные проекты, но я не сдавался и продолжал уверенно идти к своей цели — активно откликался на все вакансии, которые мне попадались. Поначалу были сплошные отказы и первые отклики пошли не сразу, — но все-таки они были. И вот спустя 3 месяца меня приглашают на первое собеседование.

Про собеседования

Первое приглашение на собеседование я получил в какую-то аутсорсинговую компанию. Они занимались разработкой софта для банковского сектора и даже игр. Но это было не техническое собеседование, а скорее общее с HR и директором компании. В целом оно прошло гладко — из вопросов я больше всего запомнил часть про методологию scrum, agile (про них я ничего не знал). А также у меня спросили почему Vue, а не React? Мне не перезвонили, и я продолжил свои поиски.

Второе собеседование было в компанию, которая разрабатывала софт для государственных заказчиков. На этот раз это было чисто техническое собеседование. Собеседовал меня один на один тимлид компании. Гонял по всем вопросам — HTML, СSS, Git, performance, как работает браузер, сети, HTTP, JavaScript, Vue.js. На первую половину вопросов я ответил довольно бодро и уверенно. А когда пошли более глубокие вопросы по JS и Vue — начал немного плавать. В целом я оказался крайне доволен этим собеседованием, так как прошёл его достойно. Тимлид дал мне положительный фидбек и готов был взять на работу — нужно было согласование с hr и бизнесом. Но у них оказались другие планы. Через два дня на созвоне с HR она мне отказала, по причине того, что у меня нет коммерческого опыта разработки. И за такую сумму они не готовы меня нанять, так как им легче найти на рынке студента с меньшими амбициями. Я не сильно расстроился и продолжил искать дальше.

Летом 2019 на меня выходит HR крупной туристической компании и предлагает работу. Я соглашаюсь на скайп-интервью. Беседа с техническими специалистами показала, что они не очень уверены в моих знаниях и предложили выполнить тестовое задание. Я согласился. Нужно было реализовать небольшое SPA-приложение на Vue — корзину покупок. Две недели я активно делал это задание и старался сделать его максимально качественно. Я по максимуму прилизал приложение и задеплоил его на Github pages. Не успел только написать тесты, и отправил на проверку.

Неделю я ждал от компании ответа. Первично они оценили его положительно, но взяли время для окончательного принятия решения. И вот, спустя неделю, я получаю от них на почту свой первый оффер! Я был немного ошарашен. В оффере говорилось, что они по достоинству оценили мое тестовое и выбрали в качестве финального кандидата меня. Зарплату мне предложили такую же как на моей основной работе. Всё выглядело просто шикарно, но меня накрыл страх. Мне вдруг резко стало страшно. Страшно уходить с текущей работы, здесь я всё знаю, все стабильно. Что ждёт меня там? Я же ничего не знаю. Ничего не умею. А вдруг я не справлюсь? А вдруг меня уволят? Как я буду платить за ипотеку? Все эти вопросы роем кружились в моей голове и я, как будто находился в оцепенении. Я не знал что мне делать. Я созвонился с HR и начал более подробно расспрашивать про компанию и про работу.

Оказалось, что у компании сейчас нет свободных мест в офисе и на время, пока они ищут офис побольше, мне предлагали поработать месяц или два на удалёнке. Также в компании была очень маленькая белая зарплата, всё остальное чёрным налом. Эти два фактора очень сильно меня смутили и только усилили мои переживания. Какая удаленка, я же искал офис? Как я буду коммуницировать с командой? Я же зелёный джун, а вдруг я не справляюсь с задачами и не у кого будет спросить совета? Чёрная зарплата, — а вдруг мне выплатят не всю сумму или лишат за что-то? Все эти вопросы только усилили мою неуверенность в себе и в компании. И я отказался. Зато я получил бесценный опыт. Я понял, что даже джуном можно найти достойную зарплату, если грамотно подойти к выполнению тестового задания.

Поиски работы продолжились. После этого было еще несколько собеседований, всех уже не вспомнить. Но больше всего я запомнил своё самое провальное собеседование. Это была небольшая компания, которая занималась логистикой. Я нашел их на HH и откликнулся, даже не смотря на странный стек. На клиенте они использовали Backbone, Marionette, MVC-архитектуру. Меня позвали на собеседование. Не то чтобы я прям хотел работать в этой компании, скорее наоборот. Я согласился только ради опыта собеседования. Все пошло не по плану с самого начала — меня завели в переговорку и попросили подождать. Собес проводили сразу три разработчика, должности их я не знал. Они начали сразу немного в агрессивной форме. После вопросов обо мне, начали указывать мне на баги, которые нашли в моих учебных работах. И говорили об этом в ироничном ключе. Я сразу стал жутко переживать, и чувствовать себя неловко. Отвечая на один вопрос, меня могли перебить и тут же задать другой. Сложилось впечатление, что разработчики тешили своё ЧСВ. Потом мне дали самую простую задачку. Написать на листочке функцию анаграмму. Я конечно же знал, как перевернуть строку, но так как изначально я сильно растерялся, захотел почему то решить её именно через рекурсию. Но шестерёнки в моем мозгу, как будто заклинило, и я даже не смог выдать рабочее решение. Я попросил другую задачу, но опять же не смог её решить. В итоге интервьюер сказал, что собеседование на этом закончено. И поглумился над тем, что я джун, а прошу такую большую зарплату. Вот такой был факап. Но я не расстроился. Этот случай наоборот придал мне уверенности, и я продолжил свои поиски.

Про проекты на Хекслете

Параллельно с поиском работы я продолжал активно учиться на Хекслете и проходить проекты. Первый проект оказался не таким сложным — самое трудное было настроить окружение, CI/CD, разобраться, как работает npm, как опубликовать пакет и записать asciinemу. Проект который взорвал мой мозг — вычислитель отличий, вот где по-настоящему пришлось попотеть. Помню, были моменты, когда ты открываешь шаг и просто не понимаешь, как к нему подступиться. Это было больно — но через эту боль я чувствовал, что расту.

Самый интересный момент произошёл со мной в начале 2020 года. В начале января я оплатил четвертый проект. В то же время в Slack-канале job (сейчас он есть в Telegram) я увидел интересное объявление, которое меня заинтриговало, где пользователь Михаил запрашивал помощь в разработке Open Source проекта конференции IT Global Meetup. Стек: React, Storeon, Parcel. Опыта в опенсорсе у меня не было. Единственный PR, который я сделал - были примеры тестовых для hexlet/ru-test-assignments. Я тогда только закончил курсы по React/Redux, но не писал на этих технологиях. Я написал Михаилу, что так мол и так. Такой то опыт — готов помочь. И оказался в деле. Также со мной в команде оказались ребята из Slack-комьюнити Хекслета.

Про Open Source

Проект я тогда отложил и погрузился в этот Open Source. Мы работали с ребятами в команде, проводили совместные созвоны, распределяли задачи через issues на GitHub. Постоянно обсуждали какие-то решения в нашем телеграм-чате. В общем — это была настоящая командная работа. Не все фичи, которые мы разрабатывали, попали в итоге в продакшен, но с горем пополам этот проект был запущен. Конечно, пандемия коронавируса внесла свои коррективы в работу конференции IT Global Meetup, но это уже другая история. Этот проект очень сильно мне помог. Я почти сразу добавил его первым пунктом в своё резюме. И на всех последующих собеседованиях выглядел уже более привлекательно для работодателей.

Мой совет всем новичкам — не бойтесь опенсорса. Хотите получить реальный опыт работы, но не знаете как? Open Source —  ваш лучший выбор! Даже сейчас я стараюсь находить свободное время и контрибьютить в опенсорс. Например, в проекты Хекслета.

Заветная работа

В марте этого года мне неожиданно прилетает письмо на почту, примерно такого содержания. «Евгений, ваше резюме на HH еще актуально? Ищем сейчас фронтендера. Требования — такие..., задачи..., условия.... Смотрю на лейбл отправителя — компания «Газпромнефть». Я был заинтригован и тут же дал ответ — мол да, актуально. Списываемся в телеге, созвон, мне рассказывают более подробно про проект и стек. Звучит интересно, я договариваюсь на этот же день на собеседование. Приезжаю к ним уже через полтора часа. Беседую с руководителем и бекенд-разработчиком. По технологиям расспрашивает фронтендер. Всё проходит очень гладко. Мне задают вопрос, в случае успешного рассмотрения, через какой срок я готов выйти на работу ? Я говорю, что минимум через две недели. Прощаемся. На следующий день звонок. Евгений — твою кандидатуру утвердили. Радуюсь в душе. Ура! Меня готовы взять. Но вида не подаю. Говорю, что готов к ним выйти, но чтобы запустить процедуру увольнения, хочу получить от них официальный оффер. Мне говорят, что контора крупная и всё идёт через бюрократию долго. Я понимаю, что возможно ничего мне не светит в данной ситуации и тупо забиваю. Тем более в самом разгаре началась пандемия коронавируса и карантин. Продолжаю дальше ходить на свою работу и параллельно откликаться на вакансии. Каково же было моё удивление, когда спустя почти месяц, мне прилетает на почту официальный оффер. С требованием принять решение до конца дня. Снова всё тот же страх накатывает на меня. Сердце бешено колотится в груди, и я судорожно решаю, что же мне делать. Трезво оценив ситуацию и посовещавшись с женой, я понимаю — что это мой шанс и его нельзя упускать. Я же так давно его ждал. Я подписываю оффер и в этот же день пишу заявление на увольнение. Я прыгнул в омут с головой и ничуть об этом не жалею.

Читайте и другие истории успеха: Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока

В итоге я работаю фронтенд-разработчиком в крупной компании, которая занимается цифровыми решениями. У меня интересный проект, связанный с большим объемом данных и их визуализацией. Мой стек на текущей работе: Vue.js, Vuex, Vue-router. Выучил я его, потому что активно использовал для выполнения тестовых заданий. Но данный стек — не приговор, в свободное время я пишу на React.

После того, как выходишь на рабочее место, нужно постоянно продолжать учиться. Конечно, ты учишься во время работы, но лучше расширять свой кругозор и попробовать другой язык программирования. Или пройти другую профессию на Хекслете. Сейчас я работаю на удаленке, поэтому все коммуникации с командой происходят в мессенджерах. Приходится очень быстро учиться, а также разбираться в предметной области, чтобы лучше понимать требования заказчика.

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

В конце своей истории я бы хотел высказать благодарность всем участникам проекта Хекслет. Ребята делают крутой продукт, который готовит на выходе настоящих специалистов. Этот проект я дико рекомендую всем своим знакомым, кто интересуется темой программирования и хочет попробовать себя в профессии. Я, кстати, уже даже привёл несколько человек.

Хекслет помог мне посмотреть на мир программирования под другим углом, я стал глубже разбираться в фундаментальных основах и по-другому анализировать и решать инженерные задачи. Также хотел сказать огромное спасибо наставникам и всем участникам комьюнити в Slack. Ребята — вы супер! Мои планы на будущее не ограничиваются фронтендом. Я собираюсь пройти профессию по бекенду и поглубже изучить Node.js. В свободное время продолжу контрибьютить в Open Source проекты.

Мой совет всем, кто только в начале пути. Ребята, верьте в себя! Ставьте себе цель и потихоньку идите к ней. Старайтесь выделять на обучение хотя бы 30 минут в день. Как можно раньше ходите на собеседования. Слушайте подкасты и посещайте конференции. Не зацикливайтесь на технологиях и расширяйте кругозор. Таков мой путь. Он был не быстрым, но его надо было пройти.

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