Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.
Меня зовут Евгений. По образованию я инженер КИПиА. Моя основная работа связана с обслуживанием различных систем автоматики. В основном, это инженерные системы. Автоматизация вентиляции, отопления, обслуживание измерительных датчиков. Но в мою работу входило также и программирование промышленных контроллеров. Для меня это всегда была самая сложная и интересная работа. Но так вышло, что со временем на работе таких задач стало все меньше, и я больше занимался техническим обслуживанием инженерных систем и поддержанием их рабочего состояния. Мне стало скучно. И я решил, что хочу больше заниматься именно программированием.
Свой путь в «большое» программирование я начал в 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 минут в день. Как можно раньше ходите на собеседования. Слушайте подкасты и посещайте конференции. Не зацикливайтесь на технологиях и расширяйте кругозор.
Таков мой путь. Он был не быстрым, но его надо было пройти.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 23:10:08 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="Guel3k2dMfx9hceE69ZJ3WnkHldE2hW_1ZMUQftjnr71Nm7pv-OcnMvG4xzn2bmqqe0z_Uzt6x1oc44VqWR50A";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам</title>
<meta name="description" content="Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/kak-ya-ustroilsya-v-krupnuyu-kompaniyu-blagodarya-hexlet-i-opensource">
<meta property="og:title" content="Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам">
<meta property="og:description" content="Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.">
<meta property="og:image" content="https://ru.hexlet.io/vite/assets/blog_post-7eTyeLLt.webp">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="6uArJwP5U9GVukG5PoBTWMMl0c4BCG7SRcW__iAD-wQFMeAQ8Yf-sSP5ZSEyj6MvAyz8ZAk_kHD4JSWqcgQcag" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1OCwicHVyIjoiYmxvYl9pZCJ9fQ==--023ea18f500b1c4c91617fa96bbc52df8395da39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20engineer-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0NiwicHVyIjoiYmxvYl9pZCJ9fQ==--5c088db10d02b94be027408f50ecf11c23d9d4cb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Version%20control-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T23:10:08.105Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"HVmz0WrA4asoCzYaBL_UXMJ6r1tXMzpNsRUIk5XmgU3yiHjmmL5My55IEoIIsCQrAnOC8V8ExO8M9ZLHx-FmIw","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Evgeny Malafeev","id":49448,"is_tutor":true},"tags":[{"id":633,"slug":"javascript","name":"JavaScript"},{"id":1443,"slug":"frontend","name":"Фронтенд"}],"id":907,"title":"Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам","slug":"kak-ya-ustroilsya-v-krupnuyu-kompaniyu-blagodarya-hexlet-i-opensource","state":"published","summary":"Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.","votes_count":78,"created_at":"2020-06-20T20:47:04.483Z","published_at":"2020-06-25T13:12:54.413Z","body":"**Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.**\n\nМеня зовут Евгений. По образованию я инженер КИПиА. Моя основная работа связана с обслуживанием различных систем автоматики. В основном, это инженерные системы. Автоматизация вентиляции, отопления, обслуживание измерительных датчиков. Но в мою работу входило также и программирование промышленных контроллеров. Для меня это всегда была самая сложная и интересная работа. Но так вышло, что со временем на работе таких задач стало все меньше, и я больше занимался техническим обслуживанием инженерных систем и поддержанием их рабочего состояния. Мне стало скучно. И я решил, что хочу больше заниматься именно программированием.\n\nСвой путь в «большое» программирование я начал в 2015 году, когда вдруг осознал, что действительно хочу стать разработчиком. Тогда я начал активно читать «Хабрахабр», при этом большую часть статей я не особо понимал, но все равно было очень интересно. Нужно было выбрать первый язык. Я пошерстил интернет на эту тему, перечитал уйму разных статей — и выбрал Python. В качестве курсов я выбрал Codecademy и начал читать Марка Лутца «Изучаем Python». Даже поставил себе цель на SmartProgress и каждый день описывал свой прогресс. Вот [ссылка](https://smartprogress.do/goal/89276/). Курсы на Codecademy оказались довольно поверхностными, а книга Лутца очень объемной. \n\nТогда я начал искать какие-то дополнительные ресурсы для изучения программирования, наткнулся на Хекслет и даже зарегистрировался на нем. Но учиться на нем тогда не начал, потому что на тот момент меня больше привлек сервис Checkio.org. У него был очень клёвый дизайн и много интересных задачек по Python. \n\nЧтение Лутца, курсы на Codecademy и решение задач на Checkio, отписка на SmartProgress — в таком вялотекущем режиме прошел мой 2015-й год. Прогресса особого не было, нужно было писать какой-то свой pet-project, чтобы применять полученные знания. Но я не знал как. И забросил это дело.\n\n::programs\n\n## Содержание\n\n## Знакомство с вёрсткой\n\nВ 2016 году я озадачился тем, что хочу сделать собственный сайт, но не знаю как. Тогда я хотел запустить свой бизнес — конечно же в интернете. Собирал сайт на конструкторе, пробовал установить WordPress и сделать что-то на нём. Я хотел, чтобы всё было красиво, а получалось либо коряво, либо результат меня совсем не устраивал. Тогда я понял, что мне нужно изучить вёрстку. Я нашел одну онлайн-школу и её интерактивные курсы — и меня затянуло. Я прошел все бесплатные курсы и даже на месяц купил подписку. Всё это обучение шло параллельно с основной работой. Тогда я начал верстать свои первые макеты, стало что-то получаться. Так прошел весь 2016 и половина 2017 года. Когда HTML и CSS я более или менее освоил, то понял, что совсем не знаю JavaScript. Я выбрал его как основной язык и начал активное изучение. Начал с книги «Eloquent JavaScript», тогда же я стал больше смотреть тематических видео на YouTube.\n\nВ это же время я понял, что хочу ближе познакомиться с IT-тусовкой. Я каждую неделю слушал подкасты по фронтенду, стал сначала посещать местные митапы, затем — бесплатные конференции.\n\n## Интенсивы\n\nМое обучение шло довольно медленно. И я решил, что мне не хватает практики и командной работы. В начале 2018 года я принял решение пройти базовый курс по вёрстке от той школы. Даже не смотря на то, что вёрстку на тот момент я более или менее знал, выбрал именно базовый курс — но самый сложный макет. Курс оказался очень интересным и насыщенным. На выходе я получил свёрстанный интернет-магазин, который не стыдно было положить в портфолио. Но так как на тот момент я уже больше изучал JS, а на втором курсе была продвинутая вёрстка, я купил интенсив уже от другой школы. Потому что в нём, судя по описанию, было больше JavaScript и еще давали Vue.js. Летом я закончил этот курс, где сделал за все время собственный сайт-портфолио и немного изучил Vue. Но всё равно чего-то не хватало. Было много практических заданий, но как будто не было прочных фундаментальных знаний. В тот момент я начал активно читать Slack Хекслета и смотреть лекции на YouTube. И меня очень сильно зацепило. Я понял — вон оно, это именно то, что мне нужно! И с 1 сентября, я, как прилежный ученик, начал проходить курсы на Хекслет.\n\n## Про Хекслет\n\nЯ выбрал профессию «Фронтенд-JavaScript» и поставил себе цель — полностью пройти профессию и завершить все проекты. Что больше всего меня поразило, так это то, что на самом базовом курсе «Введение в программирование» даются очень глубокие фундаментальные знания. Особенно мне понравился сам формат обучения. Небольшая лекция и сразу практическая задача. Это позволяло учиться в комфортном режиме. Что было, как бальзам на душу, по сравнению с 2-х часовыми вебинарами на других курсах. Уровень практических задач заставлял мой мозг сильно напрягаться. Это не было похоже на Codecademy, плюс много непонятных терминов — СИКП, пары cons, car, cdr, рекурсия, каррирование. Что это вообще такое? Курс «Введение в программирование» пролетел незаметно. Я, не раздумывая, оплатил подписку и продолжил свой путь.\n\nМне очень понравилось, что если ты не можешь долго решить задачу, к каждой есть топики. В них можно задать свой вопрос, либо найти чей то ответ, который подтолкнёт тебя к верному решению. Также у Хекслета очень дружелюбное комьюнити в Telegram — можно задать свой вопрос там. Спасибо всем ребятам, кто не раз помогал мне, когда я упирался в проблему. Единственное, чего мне не хватило для более качественного обучения — личного наставника, к которому всегда можно обратиться за советом. Но насколько я знаю, у Хекслета уже есть такая возможность.\n\n\n## Про резюме и трудности при смене профессии\n\nРаботу программистом я начал искать в середине 2018 после окончания курса в другой школе. Для начала нужно было составить резюме, и я решил оформить его на «Мой круг». В резюме я указал все свои учебные проекты и желаемую должность — frontend-разработчик. Но одного сервиса «Мой круг» было недостаточно, так как основная площадка для поиска работы — это HH. Вот тут начались проблемы — у меня уже было резюме на HH по основной специальности, я решил создать новое. Но с новым резюме я никак не мог пройти модерацию, потому что постоянно прилетал отказ. \n\nКогда ты меняешь профессию, HH обязательно требует указывать твоё предыдущее место работы. На тот момент я этого не знал, поэтому в новом резюме указывал только учебные проекты и как последнее место работы — фриланс. Тогда я действительно занимался фрилансом — делал сайты для бизнеса для своих друзей. В конечном счёте, в резюме я добавил два последних места работы по специальности, а в разделе «О себе» подробно описал почему я решил сменить профессию. И моё резюме приняли.\n\nИспользуя эти две площадки, я начал мониторить рынок и откликаться на вакансии. Я принял решение сразу позиционировать себя как frontend-разработчик — без приставок junior. На основной работе у меня был хороший доход, поэтому при смене профессии я решил, что буду искать примерно такой же уровень. Но тогда я еще был готов к просадке в 20% на начальном этапе. \n\nНо всё изменилось в конце 2018 года. У меня нет собственного жилья, а мы с женой жили на съёмной квартире. В конце года у нас родился сын, и жилищный вопрос встал особо остро. Мы купили квартиру в ипотеку. Маленький ребёнок и ипотека — это самые большие статьи расходов и большая ответственность. Поэтому при поиске работы программистом я уже не мог позволить себе просадку и искал зарплату, которая равнялась бы основному доходу. Это накладывало определенные ограничения. Не каждый работодатель готов платить такую сумму за человека, у которого в портфолио только учебные проекты, но я не сдавался и продолжал уверенно идти к своей цели — активно откликался на все вакансии, которые мне попадались. Поначалу были сплошные отказы и первые отклики пошли не сразу, — но все-таки они были. И вот спустя 3 месяца меня приглашают на первое собеседование.\n\n## Про собеседования\n\nПервое приглашение на собеседование я получил в какую-то аутсорсинговую компанию. Они занимались разработкой софта для банковского сектора и даже игр. Но это было не техническое собеседование, а скорее общее с HR и директором компании. В целом оно прошло гладко — из вопросов я больше всего запомнил часть про методологию scrum, agile (про них я ничего не знал). А также у меня спросили почему Vue, а не React? Мне не перезвонили, и я продолжил свои поиски.\n\nВторое собеседование было в компанию, которая разрабатывала софт для государственных заказчиков. На этот раз это было чисто техническое собеседование. Собеседовал меня один на один тимлид компании. Гонял по всем вопросам — HTML, СSS, Git, performance, как работает браузер, сети, HTTP, JavaScript, Vue.js. На первую половину вопросов я ответил довольно бодро и уверенно. А когда пошли более глубокие вопросы по JS и Vue — начал немного плавать. В целом я оказался крайне доволен этим собеседованием, так как прошёл его достойно. Тимлид дал мне положительный фидбек и готов был взять на работу — нужно было согласование с hr и бизнесом. Но у них оказались другие планы. Через два дня на созвоне с HR она мне отказала, по причине того, что у меня нет коммерческого опыта разработки. И за такую сумму они не готовы меня нанять, так как им легче найти на рынке студента с меньшими амбициями. Я не сильно расстроился и продолжил искать дальше.\n\nЛетом 2019 на меня выходит HR крупной туристической компании и предлагает работу. Я соглашаюсь на скайп-интервью. Беседа с техническими специалистами показала, что они не очень уверены в моих знаниях и предложили выполнить тестовое задание. Я согласился. Нужно было реализовать небольшое SPA-приложение на Vue — корзину покупок. Две недели я активно делал это задание и старался сделать его максимально качественно. Я по максимуму прилизал приложение и задеплоил его на Github pages. Не успел только написать тесты, и отправил на проверку. \n\nНеделю я ждал от компании ответа. Первично они оценили его положительно, но взяли время для окончательного принятия решения. И вот, спустя неделю, я получаю от них на почту свой первый оффер! Я был немного ошарашен. В оффере говорилось, что они по достоинству оценили мое тестовое и выбрали в качестве финального кандидата меня. Зарплату мне предложили такую же как на моей основной работе. Всё выглядело просто шикарно, но меня накрыл страх. Мне вдруг резко стало страшно. Страшно уходить с текущей работы, здесь я всё знаю, все стабильно. Что ждёт меня там? Я же ничего не знаю. Ничего не умею. А вдруг я не справлюсь? А вдруг меня уволят? Как я буду платить за ипотеку? Все эти вопросы роем кружились в моей голове и я, как будто находился в оцепенении. Я не знал что мне делать. Я созвонился с HR и начал более подробно расспрашивать про компанию и про работу.\n\nОказалось, что у компании сейчас нет свободных мест в офисе и на время, пока они ищут офис побольше, мне предлагали поработать месяц или два на удалёнке. Также в компании была очень маленькая белая зарплата, всё остальное чёрным налом. Эти два фактора очень сильно меня смутили и только усилили мои переживания. Какая удаленка, я же искал офис? Как я буду коммуницировать с командой? Я же зелёный джун, а вдруг я не справляюсь с задачами и не у кого будет спросить совета? Чёрная зарплата, — а вдруг мне выплатят не всю сумму или лишат за что-то? Все эти вопросы только усилили мою неуверенность в себе и в компании. И я отказался. Зато я получил бесценный опыт. Я понял, что даже джуном можно найти достойную зарплату, если грамотно подойти к выполнению тестового задания.\n\nПоиски работы продолжились. После этого было еще несколько собеседований, всех уже не вспомнить. Но больше всего я запомнил своё самое провальное собеседование. Это была небольшая компания, которая занималась логистикой. Я нашел их на HH и откликнулся, даже не смотря на странный стек. На клиенте они использовали Backbone, Marionette, MVC-архитектуру. Меня позвали на собеседование. Не то чтобы я прям хотел работать в этой компании, скорее наоборот. Я согласился только ради опыта собеседования. Все пошло не по плану с самого начала — меня завели в переговорку и попросили подождать. Собес проводили сразу три разработчика, должности их я не знал. Они начали сразу немного в агрессивной форме. После вопросов обо мне, начали указывать мне на баги, которые нашли в моих учебных работах. И говорили об этом в ироничном ключе. Я сразу стал жутко переживать, и чувствовать себя неловко. Отвечая на один вопрос, меня могли перебить и тут же задать другой. Сложилось впечатление, что разработчики тешили своё ЧСВ. Потом мне дали самую простую задачку. Написать на листочке функцию анаграмму. Я конечно же знал, как перевернуть строку, но так как изначально я сильно растерялся, захотел почему то решить её именно через рекурсию. Но шестерёнки в моем мозгу, как будто заклинило, и я даже не смог выдать рабочее решение. Я попросил другую задачу, но опять же не смог её решить. В итоге интервьюер сказал, что собеседование на этом закончено. И поглумился над тем, что я джун, а прошу такую большую зарплату. Вот такой был факап. Но я не расстроился. Этот случай наоборот придал мне уверенности, и я продолжил свои поиски.\n\n## Про проекты на Хекслете\n\nПараллельно с поиском работы я продолжал активно учиться на Хекслете и проходить проекты. Первый проект оказался не таким сложным — самое трудное было настроить окружение, CI/CD, разобраться, как работает npm, как опубликовать пакет и записать asciinemу. Проект который взорвал мой мозг — вычислитель отличий, вот где по-настоящему пришлось попотеть. Помню, были моменты, когда ты открываешь шаг и просто не понимаешь, как к нему подступиться. Это было больно — но через эту боль я чувствовал, что расту. \n\nСамый интересный момент произошёл со мной в начале 2020 года. В начале января я оплатил четвертый проект. В то же время в Slack-канале job (сейчас он есть в Telegram) я увидел интересное объявление, которое меня заинтриговало, где пользователь Михаил запрашивал помощь в разработке Open Source проекта конференции IT Global Meetup. Стек: React, Storeon, Parcel. Опыта в опенсорсе у меня не было. Единственный PR, который я сделал - были примеры тестовых для hexlet/ru-test-assignments. Я тогда только закончил курсы по React/Redux, но не писал на этих технологиях. Я написал Михаилу, что так мол и так. Такой то опыт — готов помочь. И оказался в деле. Также со мной в команде оказались ребята из Slack-комьюнити Хекслета.\n\n## Про Open Source\n\nПроект я тогда отложил и погрузился в этот Open Source. Мы работали с ребятами в команде, проводили совместные созвоны, распределяли задачи через issues на GitHub. Постоянно обсуждали какие-то решения в нашем телеграм-чате. В общем — это была настоящая командная работа. Не все фичи, которые мы разрабатывали, попали в итоге в продакшен, но с горем пополам этот проект был запущен. Конечно, пандемия коронавируса внесла свои коррективы в работу конференции IT Global Meetup, но это уже другая история. Этот проект очень сильно мне помог. Я почти сразу добавил его первым пунктом в своё резюме. И на всех последующих собеседованиях выглядел уже более привлекательно для работодателей. \n\nМой совет всем новичкам — не бойтесь опенсорса. Хотите получить реальный опыт работы, но не знаете как? Open Source — ваш лучший выбор! Даже сейчас я стараюсь находить свободное время и контрибьютить в опенсорс. Например, в проекты Хекслета.\n\n## Заветная работа\n\nВ марте этого года мне неожиданно прилетает письмо на почту, примерно такого содержания. «Евгений, ваше резюме на HH еще актуально? Ищем сейчас фронтендера. Требования — такие..., задачи..., условия.... Смотрю на лейбл отправителя — компания «Газпромнефть». Я был заинтригован и тут же дал ответ — мол да, актуально. Списываемся в телеге, созвон, мне рассказывают более подробно про проект и стек. Звучит интересно, я договариваюсь на этот же день на собеседование. Приезжаю к ним уже через полтора часа. Беседую с руководителем и бекенд-разработчиком. По технологиям расспрашивает фронтендер. Всё проходит очень гладко. Мне задают вопрос, в случае успешного рассмотрения, через какой срок я готов выйти на работу ? Я говорю, что минимум через две недели. Прощаемся. На следующий день звонок. Евгений — твою кандидатуру утвердили. Радуюсь в душе. Ура! Меня готовы взять. Но вида не подаю. Говорю, что готов к ним выйти, но чтобы запустить процедуру увольнения, хочу получить от них официальный оффер. Мне говорят, что контора крупная и всё идёт через бюрократию долго. Я понимаю, что возможно ничего мне не светит в данной ситуации и тупо забиваю. Тем более в самом разгаре началась пандемия коронавируса и карантин. Продолжаю дальше ходить на свою работу и параллельно откликаться на вакансии. Каково же было моё удивление, когда спустя почти месяц, мне прилетает на почту официальный оффер. С требованием принять решение до конца дня. Снова всё тот же страх накатывает на меня. Сердце бешено колотится в груди, и я судорожно решаю, что же мне делать. Трезво оценив ситуацию и посовещавшись с женой, я понимаю — что это мой шанс и его нельзя упускать. Я же так давно его ждал. Я подписываю оффер и в этот же день пишу заявление на увольнение. Я прыгнул в омут с головой и ничуть об этом не жалею. \n\n\n> ### Читайте и другие истории успеха:\n> Решить первый проект во сне и стать программистом, или [Как Хекслет подарил мне состояние потока](https://ru.hexlet.io/blog/posts/reshit-pervyy-proekt-vo-sne-i-stat-programmistom)\n\nВ итоге я работаю фронтенд-разработчиком в крупной компании, которая занимается цифровыми решениями. У меня интересный проект, связанный с большим объемом данных и их визуализацией. Мой стек на текущей работе: Vue.js, Vuex, Vue-router. Выучил я его, потому что активно использовал для выполнения тестовых заданий. Но данный стек — не приговор, в свободное время я пишу на React.\n\nПосле того, как выходишь на рабочее место, нужно постоянно продолжать учиться. Конечно, ты учишься во время работы, но лучше расширять свой кругозор и попробовать другой язык программирования. Или пройти другую профессию на Хекслете. Сейчас я работаю на удаленке, поэтому все коммуникации с командой происходят в мессенджерах. Приходится очень быстро учиться, а также разбираться в предметной области, чтобы лучше понимать требования заказчика.\t\n\n::posts\n\n## Благодарности\n\nВ конце своей истории я бы хотел высказать благодарность всем участникам проекта Хекслет. Ребята делают крутой продукт, который готовит на выходе настоящих специалистов. Этот проект я дико рекомендую всем своим знакомым, кто интересуется темой программирования и хочет попробовать себя в профессии. Я, кстати, уже даже привёл несколько человек. \n\nХекслет помог мне посмотреть на мир программирования под другим углом, я стал глубже разбираться в фундаментальных основах и по-другому анализировать и решать инженерные задачи. Также хотел сказать огромное спасибо наставникам и всем участникам комьюнити в Slack. Ребята — вы супер! Мои планы на будущее не ограничиваются фронтендом. Я собираюсь пройти профессию по бекенду и поглубже изучить Node.js. В свободное время продолжу контрибьютить в Open Source проекты.\n\nМой совет всем, кто только в начале пути. Ребята, верьте в себя! Ставьте себе цель и потихоньку идите к ней. Старайтесь выделять на обучение хотя бы 30 минут в день. Как можно раньше ходите на собеседования. Слушайте подкасты и посещайте конференции. Не зацикливайтесь на технологиях и расширяйте кругозор.\nТаков мой путь. Он был не быстрым, но его надо было пройти.\n","reading_time":11,"url":"https://ru.hexlet.io/blog/posts/kak-ya-ustroilsya-v-krupnuyu-kompaniyu-blagodarya-hexlet-i-opensource","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":554,"title":"Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой","slug":"kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy","summary":"Привет! Меня зовут Юрий Бачевский, и это моя история успеха — как после 30 лет уйти в IT, имея ипотеку и маленького ребенка.","created_at":"2019-11-15T10:26:36.618Z","published_at":"2022-01-24T09:53:03.554Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":895,"title":"Как устроиться программистом до окончания обучения и почему нужно задавать вопросы: опыт студента Хекслета","slug":"kak-ustroitsya-programmistom-do-okonchaniya-obucheniya-i-pochemu-nuzhno-zadavat-voprosy-opyt-studenta-heksleta","summary":"История о том, как стать программистом, даже если тебе за 30 лет, и почему не стоит бояться ходить на первые собеседования.","created_at":"2020-06-10T06:53:40.001Z","published_at":"2020-06-18T13:08:51.955Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":881,"title":"Как верстальщик стал фронтенд-разработчиком","slug":"kak-verstalschik-stal-frontend-razrabotchikom","summary":"История о том, как неуверенный в себе верстальщик за год успел сменить три компании в качестве фронтенд-разработчика.","created_at":"2020-05-29T13:48:15.233Z","published_at":"2020-06-02T08:09:31.099Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"mainStackCategory":{"id":2,"name":"Курсы по веб-разработке","slug":"web_development","short_name":"Веб-разработка","order":190,"state":"published","category_slug":"courses_web_development"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":12,"slug":"frontend","title":"Фронтенд-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":20,"duration_in_months":10},"id":17,"slug":"frontend","title":"Фронтенд-разработчик","subtitle":"Изучите HTML, CSS, JavaScript и React","subtitle_for_lists":"Изучите HTML, CSS, JavaScript и React","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"frontend","price_text":"от 6 792 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"},{"stack":{"id":7,"slug":"python","title":"Python-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":10,"duration_in_months":10},"id":7,"slug":"python","title":"Python-разработчик ","subtitle":"Изучите Python, Django, REST и Fast API для создания веб-приложений","subtitle_for_lists":"Изучите Python, Django, REST и Fast API для создания веб-приложений","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"python","price_text":"от 6 792 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"},{"stack":{"id":37,"slug":"python-sicp","title":"СИКП на Python","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4150,"duration_in_months":1},"id":62,"slug":"python-sicp","title":"СИКП на Python","subtitle":"Навык понимать код на фундаментальном уровне, уверенно проходить собеседования и решать сложные задачи","subtitle_for_lists":"Изучите Python на глубоком уровне для решения сложных задач","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"python-sicp","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1OCwicHVyIjoiYmxvYl9pZCJ9fQ==--023ea18f500b1c4c91617fa96bbc52df8395da39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20engineer-bro.png"},{"stack":{"id":24,"slug":"python-django-development","title":"Django","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":300,"duration_in_months":2},"id":36,"slug":"python-django-developer","title":"Django","subtitle":"Навык создания веб-приложений на Django, необходимый для получения оффера на позицию Python-разработчика","subtitle_for_lists":"Изучите фреймворк Django для создания веб-приложений ","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"python-django-development","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0NiwicHVyIjoiYmxvYl9pZCJ9fQ==--5c088db10d02b94be027408f50ecf11c23d9d4cb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Version%20control-bro.png"},{"stack":{"id":131,"slug":"flask","title":"Веб разработка на Python","audience":"for_beginners","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1050,"duration_in_months":1},"id":222,"slug":"flask","title":"Веб-разработка на Python","subtitle":"Навык создания веб-приложений на Flask для разработки лёгких и гибких серверных решений","subtitle_for_lists":"Навык создания веб-приложений на Flask","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"flask","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png"}]},"url":"/blog/posts/kak-ya-ustroilsya-v-krupnuyu-kompaniyu-blagodarya-hexlet-i-opensource","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Evgeny Malafeev","name":"Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам","datePublished":"2020-06-25T13:12:54.413Z","headline":"Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":78}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/success","name":"Истории успеха"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/kak-ya-ustroilsya-v-krupnuyu-kompaniyu-blagodarya-hexlet-i-opensource","name":"Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/success">Истории успеха</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="JavaScript"><span class="m_5add502a mantine-Badge-label">JavaScript</span></button><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="Фронтенд"><span class="m_5add502a mantine-Badge-label">Фронтенд</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">25 июня 2020 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>11 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>78</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="Как я устроился в крупную компанию благодаря Хекслету и опенсорс-проектам"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p><strong>Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.</strong></p>
<p>Меня зовут Евгений. По образованию я инженер КИПиА. Моя основная работа связана с обслуживанием различных систем автоматики. В основном, это инженерные системы. Автоматизация вентиляции, отопления, обслуживание измерительных датчиков. Но в мою работу входило также и программирование промышленных контроллеров. Для меня это всегда была самая сложная и интересная работа. Но так вышло, что со временем на работе таких задач стало все меньше, и я больше занимался техническим обслуживанием инженерных систем и поддержанием их рабочего состояния. Мне стало скучно. И я решил, что хочу больше заниматься именно программированием.</p>
<p>Свой путь в «большое» программирование я начал в 2015 году, когда вдруг осознал, что действительно хочу стать разработчиком. Тогда я начал активно читать «Хабрахабр», при этом большую часть статей я не особо понимал, но все равно было очень интересно. Нужно было выбрать первый язык. Я пошерстил интернет на эту тему, перечитал уйму разных статей — и выбрал Python. В качестве курсов я выбрал Codecademy и начал читать Марка Лутца «Изучаем Python». Даже поставил себе цель на SmartProgress и каждый день описывал свой прогресс. Вот <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://smartprogress.do/goal/89276/" rel="noopener noreferrer" target="_blank">ссылка</a>. Курсы на Codecademy оказались довольно поверхностными, а книга Лутца очень объемной.</p>
<p>Тогда я начал искать какие-то дополнительные ресурсы для изучения программирования, наткнулся на Хекслет и даже зарегистрировался на нем. Но учиться на нем тогда не начал, потому что на тот момент меня больше привлек сервис Checkio.org. У него был очень клёвый дизайн и много интересных задачек по Python.</p>
<p>Чтение Лутца, курсы на Codecademy и решение задач на Checkio, отписка на SmartProgress — в таком вялотекущем режиме прошел мой 2015-й год. Прогресса особого не было, нужно было писать какой-то свой pet-project, чтобы применять полученные знания. Но я не знал как. И забросил это дело.</p>
<style data-mantine-styles="inline">.__m__-_R_bderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_bderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_bderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/frontend?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Фронтенд-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите HTML, CSS, JavaScript и React</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Фронтенд-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 6 792 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/python?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Python-разработчик </p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите Python, Django, REST и Fast API для создания веб-приложений</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png" alt="Python-разработчик " loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 6 792 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/python-sicp?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">СИКП на Python</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите Python на глубоком уровне для решения сложных задач</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1OCwicHVyIjoiYmxvYl9pZCJ9fQ==--023ea18f500b1c4c91617fa96bbc52df8395da39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20engineer-bro.png" alt="СИКП на Python" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/python-django-developer?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Django</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите фреймворк Django для создания веб-приложений </p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0NiwicHVyIjoiYmxvYl9pZCJ9fQ==--5c088db10d02b94be027408f50ecf11c23d9d4cb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Version%20control-bro.png" alt="Django" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/flask?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Веб-разработка на Python</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык создания веб-приложений на Flask</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png" alt="Веб-разработка на Python" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Знакомство с вёрсткой</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-3">Интенсивы</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Про Хекслет</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Про резюме и трудности при смене профессии</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-6">Про собеседования</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Про проекты на Хекслете</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">Про Open Source</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-9">Заветная работа</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-11">Благодарности</a></li>
</ul>
<h2 id="heading-2-2">Знакомство с вёрсткой</h2>
<p>В 2016 году я озадачился тем, что хочу сделать собственный сайт, но не знаю как. Тогда я хотел запустить свой бизнес — конечно же в интернете. Собирал сайт на конструкторе, пробовал установить WordPress и сделать что-то на нём. Я хотел, чтобы всё было красиво, а получалось либо коряво, либо результат меня совсем не устраивал. Тогда я понял, что мне нужно изучить вёрстку. Я нашел одну онлайн-школу и её интерактивные курсы — и меня затянуло. Я прошел все бесплатные курсы и даже на месяц купил подписку. Всё это обучение шло параллельно с основной работой. Тогда я начал верстать свои первые макеты, стало что-то получаться. Так прошел весь 2016 и половина 2017 года. Когда HTML и CSS я более или менее освоил, то понял, что совсем не знаю JavaScript. Я выбрал его как основной язык и начал активное изучение. Начал с книги «Eloquent JavaScript», тогда же я стал больше смотреть тематических видео на YouTube.</p>
<p>В это же время я понял, что хочу ближе познакомиться с IT-тусовкой. Я каждую неделю слушал подкасты по фронтенду, стал сначала посещать местные митапы, затем — бесплатные конференции.</p>
<h2 id="heading-2-3">Интенсивы</h2>
<p>Мое обучение шло довольно медленно. И я решил, что мне не хватает практики и командной работы. В начале 2018 года я принял решение пройти базовый курс по вёрстке от той школы. Даже не смотря на то, что вёрстку на тот момент я более или менее знал, выбрал именно базовый курс — но самый сложный макет. Курс оказался очень интересным и насыщенным. На выходе я получил свёрстанный интернет-магазин, который не стыдно было положить в портфолио. Но так как на тот момент я уже больше изучал JS, а на втором курсе была продвинутая вёрстка, я купил интенсив уже от другой школы. Потому что в нём, судя по описанию, было больше JavaScript и еще давали Vue.js. Летом я закончил этот курс, где сделал за все время собственный сайт-портфолио и немного изучил Vue. Но всё равно чего-то не хватало. Было много практических заданий, но как будто не было прочных фундаментальных знаний. В тот момент я начал активно читать Slack Хекслета и смотреть лекции на YouTube. И меня очень сильно зацепило. Я понял — вон оно, это именно то, что мне нужно! И с 1 сентября, я, как прилежный ученик, начал проходить курсы на Хекслет.</p>
<h2 id="heading-2-4">Про Хекслет</h2>
<p>Я выбрал профессию «Фронтенд-JavaScript» и поставил себе цель — полностью пройти профессию и завершить все проекты. Что больше всего меня поразило, так это то, что на самом базовом курсе «Введение в программирование» даются очень глубокие фундаментальные знания. Особенно мне понравился сам формат обучения. Небольшая лекция и сразу практическая задача. Это позволяло учиться в комфортном режиме. Что было, как бальзам на душу, по сравнению с 2-х часовыми вебинарами на других курсах. Уровень практических задач заставлял мой мозг сильно напрягаться. Это не было похоже на Codecademy, плюс много непонятных терминов — СИКП, пары cons, car, cdr, рекурсия, каррирование. Что это вообще такое? Курс «Введение в программирование» пролетел незаметно. Я, не раздумывая, оплатил подписку и продолжил свой путь.</p>
<p>Мне очень понравилось, что если ты не можешь долго решить задачу, к каждой есть топики. В них можно задать свой вопрос, либо найти чей то ответ, который подтолкнёт тебя к верному решению. Также у Хекслета очень дружелюбное комьюнити в Telegram — можно задать свой вопрос там. Спасибо всем ребятам, кто не раз помогал мне, когда я упирался в проблему. Единственное, чего мне не хватило для более качественного обучения — личного наставника, к которому всегда можно обратиться за советом. Но насколько я знаю, у Хекслета уже есть такая возможность.</p>
<h2 id="heading-2-5">Про резюме и трудности при смене профессии</h2>
<p>Работу программистом я начал искать в середине 2018 после окончания курса в другой школе. Для начала нужно было составить резюме, и я решил оформить его на «Мой круг». В резюме я указал все свои учебные проекты и желаемую должность — frontend-разработчик. Но одного сервиса «Мой круг» было недостаточно, так как основная площадка для поиска работы — это HH. Вот тут начались проблемы — у меня уже было резюме на HH по основной специальности, я решил создать новое. Но с новым резюме я никак не мог пройти модерацию, потому что постоянно прилетал отказ.</p>
<p>Когда ты меняешь профессию, HH обязательно требует указывать твоё предыдущее место работы. На тот момент я этого не знал, поэтому в новом резюме указывал только учебные проекты и как последнее место работы — фриланс. Тогда я действительно занимался фрилансом — делал сайты для бизнеса для своих друзей. В конечном счёте, в резюме я добавил два последних места работы по специальности, а в разделе «О себе» подробно описал почему я решил сменить профессию. И моё резюме приняли.</p>
<p>Используя эти две площадки, я начал мониторить рынок и откликаться на вакансии. Я принял решение сразу позиционировать себя как frontend-разработчик — без приставок junior. На основной работе у меня был хороший доход, поэтому при смене профессии я решил, что буду искать примерно такой же уровень. Но тогда я еще был готов к просадке в 20% на начальном этапе.</p>
<p>Но всё изменилось в конце 2018 года. У меня нет собственного жилья, а мы с женой жили на съёмной квартире. В конце года у нас родился сын, и жилищный вопрос встал особо остро. Мы купили квартиру в ипотеку. Маленький ребёнок и ипотека — это самые большие статьи расходов и большая ответственность. Поэтому при поиске работы программистом я уже не мог позволить себе просадку и искал зарплату, которая равнялась бы основному доходу. Это накладывало определенные ограничения. Не каждый работодатель готов платить такую сумму за человека, у которого в портфолио только учебные проекты, но я не сдавался и продолжал уверенно идти к своей цели — активно откликался на все вакансии, которые мне попадались. Поначалу были сплошные отказы и первые отклики пошли не сразу, — но все-таки они были. И вот спустя 3 месяца меня приглашают на первое собеседование.</p>
<h2 id="heading-2-6">Про собеседования</h2>
<p>Первое приглашение на собеседование я получил в какую-то аутсорсинговую компанию. Они занимались разработкой софта для банковского сектора и даже игр. Но это было не техническое собеседование, а скорее общее с HR и директором компании. В целом оно прошло гладко — из вопросов я больше всего запомнил часть про методологию scrum, agile (про них я ничего не знал). А также у меня спросили почему Vue, а не React? Мне не перезвонили, и я продолжил свои поиски.</p>
<p>Второе собеседование было в компанию, которая разрабатывала софт для государственных заказчиков. На этот раз это было чисто техническое собеседование. Собеседовал меня один на один тимлид компании. Гонял по всем вопросам — HTML, СSS, Git, performance, как работает браузер, сети, HTTP, JavaScript, Vue.js. На первую половину вопросов я ответил довольно бодро и уверенно. А когда пошли более глубокие вопросы по JS и Vue — начал немного плавать. В целом я оказался крайне доволен этим собеседованием, так как прошёл его достойно. Тимлид дал мне положительный фидбек и готов был взять на работу — нужно было согласование с hr и бизнесом. Но у них оказались другие планы. Через два дня на созвоне с HR она мне отказала, по причине того, что у меня нет коммерческого опыта разработки. И за такую сумму они не готовы меня нанять, так как им легче найти на рынке студента с меньшими амбициями. Я не сильно расстроился и продолжил искать дальше.</p>
<p>Летом 2019 на меня выходит HR крупной туристической компании и предлагает работу. Я соглашаюсь на скайп-интервью. Беседа с техническими специалистами показала, что они не очень уверены в моих знаниях и предложили выполнить тестовое задание. Я согласился. Нужно было реализовать небольшое SPA-приложение на Vue — корзину покупок. Две недели я активно делал это задание и старался сделать его максимально качественно. Я по максимуму прилизал приложение и задеплоил его на Github pages. Не успел только написать тесты, и отправил на проверку.</p>
<p>Неделю я ждал от компании ответа. Первично они оценили его положительно, но взяли время для окончательного принятия решения. И вот, спустя неделю, я получаю от них на почту свой первый оффер! Я был немного ошарашен. В оффере говорилось, что они по достоинству оценили мое тестовое и выбрали в качестве финального кандидата меня. Зарплату мне предложили такую же как на моей основной работе. Всё выглядело просто шикарно, но меня накрыл страх. Мне вдруг резко стало страшно. Страшно уходить с текущей работы, здесь я всё знаю, все стабильно. Что ждёт меня там? Я же ничего не знаю. Ничего не умею. А вдруг я не справлюсь? А вдруг меня уволят? Как я буду платить за ипотеку? Все эти вопросы роем кружились в моей голове и я, как будто находился в оцепенении. Я не знал что мне делать. Я созвонился с HR и начал более подробно расспрашивать про компанию и про работу.</p>
<p>Оказалось, что у компании сейчас нет свободных мест в офисе и на время, пока они ищут офис побольше, мне предлагали поработать месяц или два на удалёнке. Также в компании была очень маленькая белая зарплата, всё остальное чёрным налом. Эти два фактора очень сильно меня смутили и только усилили мои переживания. Какая удаленка, я же искал офис? Как я буду коммуницировать с командой? Я же зелёный джун, а вдруг я не справляюсь с задачами и не у кого будет спросить совета? Чёрная зарплата, — а вдруг мне выплатят не всю сумму или лишат за что-то? Все эти вопросы только усилили мою неуверенность в себе и в компании. И я отказался. Зато я получил бесценный опыт. Я понял, что даже джуном можно найти достойную зарплату, если грамотно подойти к выполнению тестового задания.</p>
<p>Поиски работы продолжились. После этого было еще несколько собеседований, всех уже не вспомнить. Но больше всего я запомнил своё самое провальное собеседование. Это была небольшая компания, которая занималась логистикой. Я нашел их на HH и откликнулся, даже не смотря на странный стек. На клиенте они использовали Backbone, Marionette, MVC-архитектуру. Меня позвали на собеседование. Не то чтобы я прям хотел работать в этой компании, скорее наоборот. Я согласился только ради опыта собеседования. Все пошло не по плану с самого начала — меня завели в переговорку и попросили подождать. Собес проводили сразу три разработчика, должности их я не знал. Они начали сразу немного в агрессивной форме. После вопросов обо мне, начали указывать мне на баги, которые нашли в моих учебных работах. И говорили об этом в ироничном ключе. Я сразу стал жутко переживать, и чувствовать себя неловко. Отвечая на один вопрос, меня могли перебить и тут же задать другой. Сложилось впечатление, что разработчики тешили своё ЧСВ. Потом мне дали самую простую задачку. Написать на листочке функцию анаграмму. Я конечно же знал, как перевернуть строку, но так как изначально я сильно растерялся, захотел почему то решить её именно через рекурсию. Но шестерёнки в моем мозгу, как будто заклинило, и я даже не смог выдать рабочее решение. Я попросил другую задачу, но опять же не смог её решить. В итоге интервьюер сказал, что собеседование на этом закончено. И поглумился над тем, что я джун, а прошу такую большую зарплату. Вот такой был факап. Но я не расстроился. Этот случай наоборот придал мне уверенности, и я продолжил свои поиски.</p>
<h2 id="heading-2-7">Про проекты на Хекслете</h2>
<p>Параллельно с поиском работы я продолжал активно учиться на Хекслете и проходить проекты. Первый проект оказался не таким сложным — самое трудное было настроить окружение, CI/CD, разобраться, как работает npm, как опубликовать пакет и записать asciinemу. Проект который взорвал мой мозг — вычислитель отличий, вот где по-настоящему пришлось попотеть. Помню, были моменты, когда ты открываешь шаг и просто не понимаешь, как к нему подступиться. Это было больно — но через эту боль я чувствовал, что расту.</p>
<p>Самый интересный момент произошёл со мной в начале 2020 года. В начале января я оплатил четвертый проект. В то же время в Slack-канале job (сейчас он есть в Telegram) я увидел интересное объявление, которое меня заинтриговало, где пользователь Михаил запрашивал помощь в разработке Open Source проекта конференции IT Global Meetup. Стек: React, Storeon, Parcel. Опыта в опенсорсе у меня не было. Единственный PR, который я сделал - были примеры тестовых для hexlet/ru-test-assignments. Я тогда только закончил курсы по React/Redux, но не писал на этих технологиях. Я написал Михаилу, что так мол и так. Такой то опыт — готов помочь. И оказался в деле. Также со мной в команде оказались ребята из Slack-комьюнити Хекслета.</p>
<h2 id="heading-2-8">Про Open Source</h2>
<p>Проект я тогда отложил и погрузился в этот Open Source. Мы работали с ребятами в команде, проводили совместные созвоны, распределяли задачи через issues на GitHub. Постоянно обсуждали какие-то решения в нашем телеграм-чате. В общем — это была настоящая командная работа. Не все фичи, которые мы разрабатывали, попали в итоге в продакшен, но с горем пополам этот проект был запущен. Конечно, пандемия коронавируса внесла свои коррективы в работу конференции IT Global Meetup, но это уже другая история. Этот проект очень сильно мне помог. Я почти сразу добавил его первым пунктом в своё резюме. И на всех последующих собеседованиях выглядел уже более привлекательно для работодателей.</p>
<p>Мой совет всем новичкам — не бойтесь опенсорса. Хотите получить реальный опыт работы, но не знаете как? Open Source — ваш лучший выбор! Даже сейчас я стараюсь находить свободное время и контрибьютить в опенсорс. Например, в проекты Хекслета.</p>
<h2 id="heading-2-9">Заветная работа</h2>
<p>В марте этого года мне неожиданно прилетает письмо на почту, примерно такого содержания. «Евгений, ваше резюме на HH еще актуально? Ищем сейчас фронтендера. Требования — такие..., задачи..., условия.... Смотрю на лейбл отправителя — компания «Газпромнефть». Я был заинтригован и тут же дал ответ — мол да, актуально. Списываемся в телеге, созвон, мне рассказывают более подробно про проект и стек. Звучит интересно, я договариваюсь на этот же день на собеседование. Приезжаю к ним уже через полтора часа. Беседую с руководителем и бекенд-разработчиком. По технологиям расспрашивает фронтендер. Всё проходит очень гладко. Мне задают вопрос, в случае успешного рассмотрения, через какой срок я готов выйти на работу ? Я говорю, что минимум через две недели. Прощаемся. На следующий день звонок. Евгений — твою кандидатуру утвердили. Радуюсь в душе. Ура! Меня готовы взять. Но вида не подаю. Говорю, что готов к ним выйти, но чтобы запустить процедуру увольнения, хочу получить от них официальный оффер. Мне говорят, что контора крупная и всё идёт через бюрократию долго. Я понимаю, что возможно ничего мне не светит в данной ситуации и тупо забиваю. Тем более в самом разгаре началась пандемия коронавируса и карантин. Продолжаю дальше ходить на свою работу и параллельно откликаться на вакансии. Каково же было моё удивление, когда спустя почти месяц, мне прилетает на почту официальный оффер. С требованием принять решение до конца дня. Снова всё тот же страх накатывает на меня. Сердце бешено колотится в груди, и я судорожно решаю, что же мне делать. Трезво оценив ситуацию и посовещавшись с женой, я понимаю — что это мой шанс и его нельзя упускать. Я же так давно его ждал. Я подписываю оффер и в этот же день пишу заявление на увольнение. Я прыгнул в омут с головой и ничуть об этом не жалею.</p>
<blockquote>
<h3 id="heading-3-10">Читайте и другие истории успеха:</h3>
<p>Решить первый проект во сне и стать программистом, или <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/reshit-pervyy-proekt-vo-sne-i-stat-programmistom" rel="noopener noreferrer" target="_blank">Как Хекслет подарил мне состояние потока</a></p>
</blockquote>
<p>В итоге я работаю фронтенд-разработчиком в крупной компании, которая занимается цифровыми решениями. У меня интересный проект, связанный с большим объемом данных и их визуализацией. Мой стек на текущей работе: Vue.js, Vuex, Vue-router. Выучил я его, потому что активно использовал для выполнения тестовых заданий. Но данный стек — не приговор, в свободное время я пишу на React.</p>
<p>После того, как выходишь на рабочее место, нужно постоянно продолжать учиться. Конечно, ты учишься во время работы, но лучше расширять свой кругозор и попробовать другой язык программирования. Или пройти другую профессию на Хекслете. Сейчас я работаю на удаленке, поэтому все коммуникации с командой происходят в мессенджерах. Приходится очень быстро учиться, а также разбираться в предметной области, чтобы лучше понимать требования заказчика.</p>
<style data-mantine-styles="inline">.__m__-_R_2fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_2fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_2fderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Привет! Меня зовут Юрий Бачевский, и это моя история успеха — как после 30 лет уйти в IT, имея ип...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">24 января 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ustroitsya-programmistom-do-okonchaniya-obucheniya-i-pochemu-nuzhno-zadavat-voprosy-opyt-studenta-heksleta"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Как устроиться программистом до окончания обучения и почему нужно задавать вопросы: опыт студента Хекслета"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как устроиться программистом до окончания обучения и почему нужно задавать вопросы: опыт студента Хекслета</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">История о том, как стать программистом, даже если тебе за 30 лет, и почему не стоит бояться ходит...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">18 июня 2020 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-verstalschik-stal-frontend-razrabotchikom"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Как верстальщик стал фронтенд-разработчиком"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как верстальщик стал фронтенд-разработчиком</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">История о том, как неуверенный в себе верстальщик за год успел сменить три компании в качестве фр...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">2 июня 2020 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-11">Благодарности</h2>
<p>В конце своей истории я бы хотел высказать благодарность всем участникам проекта Хекслет. Ребята делают крутой продукт, который готовит на выходе настоящих специалистов. Этот проект я дико рекомендую всем своим знакомым, кто интересуется темой программирования и хочет попробовать себя в профессии. Я, кстати, уже даже привёл несколько человек.</p>
<p>Хекслет помог мне посмотреть на мир программирования под другим углом, я стал глубже разбираться в фундаментальных основах и по-другому анализировать и решать инженерные задачи. Также хотел сказать огромное спасибо наставникам и всем участникам комьюнити в Slack. Ребята — вы супер! Мои планы на будущее не ограничиваются фронтендом. Я собираюсь пройти профессию по бекенду и поглубже изучить Node.js. В свободное время продолжу контрибьютить в Open Source проекты.</p>
<p>Мой совет всем, кто только в начале пути. Ребята, верьте в себя! Ставьте себе цель и потихоньку идите к ней. Старайтесь выделять на обучение хотя бы 30 минут в день. Как можно раньше ходите на собеседования. Слушайте подкасты и посещайте конференции. Не зацикливайтесь на технологиях и расширяйте кругозор.
Таков мой путь. Он был не быстрым, но его надо было пройти.</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Evgeny Malafeev</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">6 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ya-ustroilsya-v-krupnuyu-kompaniyu-blagodarya-hexlet-i-opensource/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">78</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy">Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ustroitsya-programmistom-do-okonchaniya-obucheniya-i-pochemu-nuzhno-zadavat-voprosy-opyt-studenta-heksleta">Как устроиться программистом до окончания обучения и почему нужно задавать вопросы: опыт студента Хекслета</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-verstalschik-stal-frontend-razrabotchikom">Как верстальщик стал фронтенд-разработчиком</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_web_development?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по веб-разработке</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>