Всем привет! Я очень давно пытался собраться и написать свою историю успеха, и кажется, время пришло! Меня зовут Леша, и я уже почти два года как фронтенд-разработчик. Это моя история о том, как я сумел преодолеть все трудности и вкатиться в эту профессию.
Содержание
Жизнь «до» и учеба в университете
Кем я только не работал в жизни: разнорабочим на заводе, инженером по ремонту компьютеров и ноутбуков (рассказывал об этом у себя в твиттере), инструктором и помощником администратора в боулинг-клубе, аниматором на точке с шлемом виртуальной реальности Oculus Rift, рабочим у ландшафтного дизайнера, рабочим на стройке.
Вообще, куда я только не хотел поступать после школы. Сначала — в академию МЧС, начал заниматься своей физической подготовкой, и даже нашел знакомого, который эту академию уже заканчивал, он давал советы о том, как проще поступить. Потом эту идею я отбросил и захотел стать врачом — ходил на подготовительные курсы в медицинскую академию, но с химией у меня сложились тяжелые отношения, поэтому от идеи стать врачом тоже пришлось отказаться. Хотел стать и журналистом — благо вовремя понял, что журналистики в России нет и жизнь журналиста тяжела и неказиста (почти как программиста, но платят намного меньше).
Когда пришла пора принимать окончательное решение, остановился на направлении «Информатика и вычислительная техника» в Вятском Государственном Университете. Там же учился мой отец, и вообще — компьютер был у меня с самого детства, даже тогда, когда ни у кого еще не было. Отец работал на заводе в отделе автоматизации систем управления, поэтому мог позволить себе собрать домашний компьютер по запчастям. Другой вопрос, что я не был из числа тех вундеркиндов, которые программируют с пеленок. Я играл в игры (а делать их — не хотел), смотрел фильмы и сериалы, развлекался, но не писал код до учебы в ВУЗе, не считая информатики в школе. А еще был долгий период, когда я ходил помогать отцу обслуживать компьютеры в техникум около дома: мы чинили компьютеры, настраивали сеть, устанавливали нужные программы, и вообще — старались сделать жизнь студентов и преподавателей проще.
Я буквально кое-как поступил на это направление, потому что туда поступали самые умные ребята из области, и конкуренция была приличная: я был в самом низу списка по баллам ЕГЭ, при том, что баллы были хорошие, ведь я даже закончил школу на серебряную медальку. Это очень тяжелое и сложное направление, с большим количеством основ и низкоуровневых знаний — от ассемблера, до того, как сделать свой процессор в гараже: теория автоматов, архитектура ЭВМ, вычислительная и дискретная математика, мат анализ, теорвер, математическая логика, компьютерная графика, электротехника, схемотехника ЭВМ, — вот лишь неполный список того, что нам преподавали.
В итоге я не потянул эту учебу, с головой утонув в огромном разнообразии внеучебной деятельности: студенческий клуб, выступления на сцене, профком, организация мероприятий, волонтерство, поездки по всей России от университета, написание статей про гаджеты и технологии в молодежное издание. Но это отдельная большая история. В любом случ��е, университет дал мне какие-то самые базовые основы, и подарил возможность не бояться программирования как такового, дал понимание, что именно этим я и хочу заниматься в будущем.
После лабораторных в университете на Pascal, С++ и Java — Javascript был мне совсем не страшен. По-прежнему сложен, но совсем не страшен. Но лабораторные в университете и реальная разработка — совершенно разные вещи. Оглядываясь назад — радуюсь, что такая хардкорная учеба не убила во мне любовь к программированию, и это не сказки, такое действительно происходило с многими ребятами. Из тех 65 человек, с кем я поступил — диплом получило 7. Ну и софт-скиллы, конечно. Университет мощно прокачал мои навыки коммуникации, организации людей и мероприятий, публичных выступлений, поиска и анализа даже самой тяжелой для понимания информации.
После были попытки вкатиться в iOS-разработку (недавно писал об этом в твиттере), а потом — армия, по возвращению из которой возник вопрос — чем же мне заниматься. Понятно, что писать код, но в какой области? К тому момент хайп вокруг фронтенда достиг своего пика, и я решил — стоит попробовать, несмотря на то, что многие друзья всё-таки ушли в мобильную разработку. В моем небольшом городе даже проводили митапы для iOS-разработчиков (Peer Lab) — это были единственные встречи айтишников в городе. А до этого я уже проходил пару уроков на HTML Academy, поэтому туда и направился.
Первая ступень обучения и первая работа
Я не покупал никакие курсы у HTML Academy, а проходил только их тренажеры. В целом было несложно, но очень интересно. Параллельно заглядывал в раздел верстки на Free Code Camp, там бесплатно, качественно, но на английском. На тот момент я еще довольно плохо читал по-английски, и из-за этого FCC шел тяжело. Были и некоторые откровенно спираченные курсы — «Профессия веб-разработчик" от Ивана Петриченко на Udemy, и два курса «Типичный верстальщик" от Анны Блок. Можно меня за это критиковать, но тогда в кармане было шаром покати — и покупать их варианта не было, ничего не подпишешь, все мы не без греха.
Так прошло примерно 3-4 месяца учебы. В один прекрасный день с деньгами стало совсем плохо, и откладывать поиск работы больше было нельзя. Меня пугала идея удаленки, это было до пандемии, и идея о том, что джуну лучше работать в офисе — крепко сидела в моей голове. Отправился на HH, сделал резюме как смог и как умел, и стал ждать откликов. Конечно, их не было, ровным счетом ни одного, если не считать всякие бредовые звонки с вакансиями на специалиста техподдержки. Также самостоятельно мониторил вакансии на IT-портале своего города, но там почти в 100% случаев требовались люди с опытом. А еще было очень много вакансий на 1С. После более глубокого изучения вопроса поиска работы, прочтения статей и просмотра видео на ютубе — начал откликаться сам, писать сопроводительные письма, и, в целом, стал искать активно, откликаясь на большое количество вакансий.
Через неделю мне дали мое первое тестовое задание — надо было по одной переворачивать карточки c картинками на экране с определенным интервалом, да так, чтобы одна начинала переворачиваться в тот момент, когда еще не закончила предыдущая, т.е «внахлест». Конечно, надо было применить JS, который я знал очень посредственно, даже несмотря на то, что уроки по JS в тренажерах HTML Academy были. Но этого было мало — на тот момент там не давали основ, и предлагали сразу работу с DOM. Я легко и быстро сделал симпатичную верстку, но со скриптом были проблемы. Вторая противоречивая вещь в моей истории — я попросил друга помочь мне с этим тестовым заданием, а на тот момент он уже год как работал веб-разработчиком. Сразу скажу: сейчас меня не мучает совесть за тот случай, и я отношусь к такой помощи нормально. Если это поможет вам найти работу — то ничего плохого в этом нет. Собеседование всё равно проходить вам, и работать тоже, и если вы понимаете код, который вам помогли написать, если вы сможете воспроизвести его самостоятельно, сможете его отредактировать и внести правки, ответить на вопросы по этому коду — всё в порядке.
Сидя за столиком в McDonald и попивая колу со льдом, друг помог мне закончить начатое. В итоге тестовое задание приняли, выдав скромный фидбек с недочетами, что уже неплохо — ведь фидбека зачастую можно и вовсе не дождаться. Позвали на собеседование, моему волнению не было предела, и я выдохнул, только когда мне сказали выходить на работу с понедельника. Само собеседование было очень простым: обсудили то, что мои проекты по верстке на GitHub никуда не годятся, поговорили про учебу в университете и жизнь в целом, немного поговорили на английском с одним из разработчиков. Я был приятно удивлен, поняв, что мой английский — гораздо лучше, чем я о нем думаю.
Так началась моя первая работа верстальщиком. Компания занималась разработкой своего конструктора сайтов, а я делал шаблоны-блоки — затем они выливались в темы для этого конструктора, подобные тем, что лежат на Themeforest. Блоки были кастомизируемыми, в них можно было много чего менять. То есть, захотели вы сделать сайт для своей медицинской клиники — скачали конструктор, выбрали тему Medicine, накидали блоков, сделали текст и картинки под себя, подогнали всё как вам надо, и ваш сайт готов.
Поначалу было сложно: каждый день поход в офис, трекер рабочего времени, новый софт, всё новое. Если бы это была просто вёрстка — было бы проще, но надо было сделать так, чтобы моя верстка работала внутри конструктора, чтобы всё менялось и кастомизировалось, было адаптивным, и выглядело отлично. Но человеческое отношение, комфортный офис, кофе-машина и сладости конечно оказывали приятное впечатление, особенно первое время.
Мою первую тему просто уничтожили — в ней всё было плохо. К счастью, я узнал, что абсолютно все новички в компании через это проходят, и первую тему уничтожают в пух и прах. Но закончилось всё хорошо: я всё поправил, и после этого дело пошло — одна тема за другой, и так без конца на протяжении года. Примерно через год, когда рутина и этот конвейер встали в горле комом, я попросил задачу посложнее. Я сделал плагин для feedback-чата на сайте, тестировал новый продукт компании — и это было довольно интересно. Я благодарен этой компании за опыт: может я и не стал магистром верстки, но уж точно стал верстать гораздо увереннее.
Учеба на Хекслете
Неизвестно, что бы было дальше, если бы в один прекрасный день я не наткнулся на Вику в твиттере, где она писала про учебу на Хекслете. Мне стало интересно — я ей написал с вопросом, что это за Хекслет вообще такой, и она мне продала идею учиться на этой площадке буквально за 5-6 сообщений. Это было почти сразу, после того, как я устроился на первую работу, поэтому началось самое тяжелое время: работа в офисе, а затем учеба на Хеслете после работы до ночи. Но вводный курс так зацепил качеством материала, что сомнений не было — надо продолжать. Хекслет — первая площадка, где я встретил глубину, подробные основы, последовательность и надежду на светлое будущее (не ирония). И комьюнити, конечно, чаты в слаке, обсуждения в каждом уроке, возможность всегда задать вопрос — это бесценно.
Учеба шла очень медленно и тяжело, потому что после работы времени не очень много, сил очень мало, и поначалу такой низкий темп напрягал и деморализовывал. Со временем я смирился и отпустил свое желание как можно быстрее выучить всё и сразу. Решал все задачки сам, не подглядывал в решение учителя, проходил испытания, даже те, которые были направлены скорее на алгоритмическое мышление, чем непосредственно на фронтенд. Некоторые задачи и испытания не мог решить 2 дня, 3 дня, неделю и больше — бывало всякое, даже руки опускались, но неизбежно накатывающее чувство эйфории от в конце концов решенной задачи, стремление развиваться и получать заветную Козулю помогало не опускать руки. В течение года, я практически полностью прошел профессию «Фронтенд-разработчик» и даже осилил 2 проекта.
Проекты — это вообще лучшее, что вы можете сделать на Хекслете, особенно с проверкой ментора. Особенно учитывая, что сейчас есть автоматизированные тесты. Именно после проектов я почувствовал силу, способность написать что-то большое самостоятельно.
Вторая работа
Со всеми этими новыми знаниями пришло понимание, что пора двигаться дальше и искать новую работу. Я написал заявление об увольнении, отработал положенные две недели, начал искать и готовиться. Было несколько неудачных собеседований — то не мог нормально рассказать про Event Loop, то не мог нормально объяснить, как работает под капотом та или иная асинхронная функция, то не хватало каких-то знаний — про базы данных, например.
Важная мысль, которую я хочу донести до всех ребят, кто учится на тут: Хекслет — не волшебная пилюля. Да, Хекслет очень крутой, на мой вкус — лучшая площадка для обучения на русском языке, но ответственность за ваше образование несете только вы. Порой пройти даже всю профессию целиком — недостаточно, порой даже решенные задачи и пройденный материал не означают, что вы сможете четко ответить на поставленные вопросы на собеседовании. Вы сами должны узнать свои слабые места и подтянуть их до нужного уровня. И есть только один способ эти слабые места узнать — писать код, делать свои проекты, и ходить на собеседования.
После нескольких неудачных попыток я случайно наткнулся на несколько лонгридов про Anki и long-term memory. В целом, мне всегда была интересна тема запоминания информации, различные техники, которые позволяют делать это быстро и эффективно, как запоминать большие объемы информации надолго, а не выбрасывать из головы сразу же после применения (экзамена, например). На эту тему рекомендую книгу Джошуа Фоера «Эйнштейн гуляет по Луне: Наука и искусство запоминания». В целом, это тоже отдельная огромная тема, и я не буду подробно на этом останавливаться. Оставлю лишь две ссылки на интересные статьи на эту тему.
Опишу процесс коротко: открывал материал на Хекслете или из какого-нибудь сборника вопросов и ответов для подготовки к собеседованию на позицию фронтенд-разработчика, читал материал, самостоятельно составлял на его основе много кратких(!) вопросов и ответов — и заносил в Anki, а затем учил. Что мне это дало? После того, как я начал этим заниматься — я тут же прошел следующее собеседование, где меня гоняли по основам JS довольно сильно. Конечно, я ответил не на все вопросы: например, я не знал, как убить сетевой процесс из терминала, так и не выучил ничего про базы данных. Но тем не менее — это был совершенно иной уровень, и его оказалось достаточно. А уж live Coding был вовсе простой, тем более после задач и испытаний на Хекслете — банальный FizzBuzz. Правда, когда меня попросили переписать его рекурсивно — я слегка струхнул, но в итоге справился.
Теперь у меня совершенно другая работа, интересные и сложные задачи, удаленка, зарплата, выросшая в 3 раза. Сейчас пишу на Vue, при том что Vue я и вовсе не учил никогда, и на собеседовании о нем не было ни слова — я смог довольно быстро разобраться, что к чему, и учил «по дороге». Вся подготовка по Vue, что у меня была — пара просмотренных уроков в бесплатном курсе Ильи Климова, на тот момент их вышло совсем немного.
Кто бы что ни говорил, а Vue — самый дружелюбный фреймворк для старта.
В планах — выучить Nuxt, TypeScript, а также вернуться к экосистеме React и подтянуть основы (привет, СИКП!), потому что я совсем не хочу быть разработчиком одного фреймворка — я хочу быть инженером по разработке программного обеспечения (aka Software engineer), а не просто Vue-developer'ом.
Послесловие и советы
В конце попробую дать несколько советов новичкам. Начну с самого противоречивого и неоднозначного, но это — мой опыт.
-
Не бойтесь первого выгорания. Обязательно почитайте о нем статьи, посмотрите видео, что это такое, как с ним бороться, как его предотвратить, и что делать, если оно уже наступило. Выгорание — не миф, а реально серьезная штука. И чтобы научиться его эффективно предотвращать и бороть — его надо пережить, это точно такой же опыт, как и любой другой. Со мной оно случалось, и даже несколько раз, я выпадал из учебы на месяц и больше. Зато теперь я четко знаю, и даже чувствую — когда стоит выдохнуть и сделать паузу. А советы о том, что нужно много спать, отдыхать, плотно кушать, и пить много воды — вам и так дадут, из каждого утюга трубят. Тем не менее, если вам удастся избежать выгорания на протяжении всей карьеры — это будет замечательно.
-
Учите материал, когда готовитесь к собеседованиям, особенно если вы не понимаете его глубоко. Вы и не подозреваете, насколько сильно могут повлиять запомненные кусочки информации на понимание общей картины. Конечно, вы не раз слышали о том, что собеседование — не экзамен, и это действительно так. Но также верно и то, что надо держать в голове большие объемы информации и уметь качественно её преподнести. В целом, уделяйте внимание не только тому, где вы учитесь, и что вы сейчас изучаете, но и тому, как именно вы это делаете — это может сыграть решающую роль. Здесь же посоветую курс Learning how to learn на Coursera, где об этом рассказано подробно.
-
Возьмите ответственность за свое образование на себя. Только вы выбираете площадку, на которой будете учиться, только вы выбираете наставника. Только ваша задача — запомнить то, что нужно запомнить. Научиться писать код — тоже ваша задача, вся ваша карьера — это ваш личный большой проект, над которым работать только вам, и в конце концов спросить будет не с кого, кроме как с самого себя.
-
Ходите на собеседования — и как можно раньше. Это сложно, это волнительно, это выматывает физически и эмоционально, но это — необходимо, это тоже опыт и важный скилл, не говоря о том, что это отличный способ выявить свои слабые места и пробелы в знаниях.
-
Будьте в сообществе, будьте «на волне». Заведите твиттер, и пишите туда всё что вам захочется, не боясь осуждения со стороны бородатых дядек-сеньоров, заведите LinkedIn и приведите его в порядок, сделайте красивую страницу на GitHub, вступите в профильные чаты в телеграме и залетайте туда время от времени поболтать, ходите на митапы и конференции, на сходки, везде — если есть такая возможность. Я нашел свою текущую работу, потому что мне написала HR из твиттера на почту. Коммуникация и нетворкинг — наше всё. Не умеете общаться — учитесь сейчас, без этого будет тяжело. Однажды я попал на собеседование в одну очень привлекательную компанию, в которой действительно хотел работать, только потому что не постеснялся и сам написал на почту HR, и даже прошел первый этап, но у меня на руках уже был другой привлекательный оффер, и я его принял.
- Любите себя. Не делайте паршивые тестовые задания, выполнение которых занимает несколько недель. Не работайте бесплатно, не работайте за гроши, ищите код-ревью, менторинг, хорошие инженерные практики — это то, чего мне не хватало на старте, и сильно замедлило мою карьеру тогда, когда мне хотелось максимально быстрого роста.
На этом всё! Спасибо всем, кто сумел дочитать до этого момента.
Подписывайтесь на меня:
Давайте дружить =)
<!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 19:55:01 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="js2CRniLN35iLfsOPXmU4tGPnXEsy4bqd1kL49HoLg5hHElxivWaHtRu35YxdmSVEYaw2yT8eEjKuZG3g-_JYA";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-otchislitsya-iz-universiteta-no-stat-frontend-razrabotchikom">
<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="rpBY3EwBvgocbeuJ8JZRqgBPUIMyCH6N24hShoqWLWNBQZPrvn8TaqouzxH8maHdwEZ9KTo_gC9maMjS2JHKDQ" />
<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/eyJfcmFpbHMiOnsiZGF0YSI6NDA0OSwicHVyIjoiYmxvYl9pZCJ9fQ==--a6531362dd1f3afb65f5b269e1a23113df7171b1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Devices-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzNCwicHVyIjoiYmxvYl9pZCJ9fQ==--ba516ea9573bdfcd1d21e2aa0fff8818561828f2/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Typing-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcwOSwicHVyIjoiYmxvYl9pZCJ9fQ==--03e50bbd408fef672ad099f7b2a258d80f54ad96/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Hand%20coding-bro.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-26T19:55:01.029Z","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":"9nmOe4_iPUjeUVtvq0sDtISH0UI6_ttzmIOf5CdFKhsZqEVMfZyQKGgSf_enRPPDRI786DLJJdElYwWwdULNdQ","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Alexey Pavlov","id":257584,"is_tutor":false},"tags":[{"id":1443,"slug":"frontend","name":"Фронтенд"}],"id":1511,"title":"История успеха, или как отчислиться из университета, но всё равно стать фронтенд-разработчиком","slug":"Kak-otchislitsya-iz-universiteta-no-stat-frontend-razrabotchikom","state":"published","summary":"Всем привет! Я очень давно пытался собраться и написать свою историю успеха, и кажется, время пришло! Меня зовут Леша, и я уже почти два года как фронтенд-разработчик. Это моя история о том, как я сумел преодолеть все трудности и вкатиться в эту профессию.","votes_count":40,"created_at":"2021-08-18T21:26:27.221Z","published_at":"2021-08-27T10:06:26.104Z","body":"**Всем привет! Я очень давно пытался собраться и написать свою историю успеха, и кажется, время пришло! Меня зовут Леша, и я уже почти два года как фронтенд-разработчик. Это моя история о том, как я сумел преодолеть все трудности и вкатиться в эту профессию.**\n\n## Содержание\n\n## Жизнь «до» и учеба в университете\n\nКем я только не работал в жизни: разнорабочим на заводе, инженером по ремонту компьютеров и ноутбуков (рассказывал об этом у себя [в твиттере](https://twitter.com/ay_pavlov/status/1415017239871381508)), инструктором и помощником администратора в боулинг-клубе, аниматором на точке с шлемом виртуальной реальности Oculus Rift, рабочим у ландшафтного дизайнера, рабочим на стройке. \n\n::programs\n\nВообще, куда я только не хотел поступать после школы. Сначала — в академию МЧС, начал заниматься своей физической подготовкой, и даже нашел знакомого, который эту академию уже заканчивал, он давал советы о том, как проще поступить. Потом эту идею я отбросил и захотел стать врачом — ходил на подготовительные курсы в медицинскую академию, но с химией у меня сложились тяжелые отношения, поэтому от идеи стать врачом тоже пришлось отказаться. Хотел стать и журналистом — благо вовремя понял, что _журналистики в России нет_ и жизнь журналиста тяжела и неказиста (почти как программиста, но платят намного меньше).\n\nКогда пришла пора принимать окончательное решение, остановился на направлении «Информатика и вычислительная техника» в Вятском Государственном Университете. Там же учился мой отец, и вообще — компьютер был у меня с самого детства, даже тогда, когда ни у кого еще не было. Отец работал на заводе в отделе автоматизации систем управления, поэтому мог позволить себе собрать домашний компьютер по запчастям. Другой вопрос, что я не был из числа тех вундеркиндов, которые программируют с пеленок. Я играл в игры (а делать их — не хотел), смотрел фильмы и сериалы, развлекался, но не писал код до учебы в ВУЗе, не считая информатики в школе. А еще был долгий период, когда я ходил помогать отцу обслуживать компьютеры в техникум около дома: мы чинили компьютеры, настраивали сеть, устанавливали нужные программы, и вообще — старались сделать жизнь студентов и преподавателей проще. \n\nЯ буквально кое-как поступил на это направление, потому что туда поступали самые умные ребята из области, и конкуренция была приличная: я был в самом низу списка по баллам ЕГЭ, при том, что баллы были хорошие, ведь я даже закончил школу на серебряную медальку. Это очень тяжелое и сложное направление, с большим количеством основ и низкоуровневых знаний — от ассемблера, до того, как сделать свой процессор в гараже: теория автоматов, архитектура ЭВМ, вычислительная и дискретная математика, мат анализ, теорвер, математическая логика, компьютерная графика, электротехника, схемотехника ЭВМ, — вот лишь неполный список того, что нам преподавали. \n\nВ итоге я не потянул эту учебу, с головой утонув в огромном разнообразии внеучебной деятельности: студенческий клуб, выступления на сцене, профком, организация мероприятий, волонтерство, поездки по всей России от университета, написание статей про гаджеты и технологии в молодежное издание. Но это отдельная большая история. В любом случае, университет дал мне какие-то самые базовые основы, и подарил возможность не бояться программирования как такового, дал понимание, что именно этим я и хочу заниматься в будущем. \n\nПосле лабораторных в университете на Pascal, С++ и Java — Javascript был мне совсем не страшен. По-прежнему сложен, но совсем не страшен. Но лабораторные в университете и реальная разработка — совершенно разные вещи. Оглядываясь назад — радуюсь, что такая хардкорная учеба не убила во мне любовь к программированию, и это не сказки, такое действительно происходило с многими ребятами. Из тех 65 человек, с кем я поступил — диплом получило 7. Ну и софт-скиллы, конечно. Университет мощно прокачал мои навыки коммуникации, организации людей и мероприятий, публичных выступлений, поиска и анализа даже самой тяжелой для понимания информации.\n\nПосле были попытки вкатиться в iOS-разработку (недавно [писал об этом в твиттере](https://twitter.com/ay_pavlov/status/1425038849428934688)), а потом — армия, по возвращению из которой возник вопрос — чем же мне заниматься. Понятно, что писать код, но в какой области? К тому момент хайп вокруг фронтенда достиг своего пика, и я решил — стоит попробовать, несмотря на то, что многие друзья всё-таки ушли в мобильную разработку. В моем небольшом городе даже проводили митапы для iOS-разработчиков ([Peer Lab](https://peerlab.community/)) — это были единственные встречи айтишников в городе. А до этого я уже проходил пару уроков на [HTML Academy](https://htmlacademy.ru/), поэтому туда и направился. \n\n## Первая ступень обучения и первая работа\n\nЯ не покупал никакие курсы у HTML Academy, а проходил только их тренажеры. В целом было несложно, но очень интересно. Параллельно заглядывал в раздел верстки на [Free Code Camp](https://www.freecodecamp.org/), там бесплатно, качественно, но на английском. На тот момент я еще довольно плохо читал по-английски, и из-за этого FCC шел тяжело. Были и некоторые откровенно спираченные курсы — [«Профессия веб-разработчик\"](https://www.udemy.com/course/webdeveloper/) от Ивана Петриченко на Udemy, и два курса [«Типичный верстальщик\"](https://tpverstak.ru/) от Анны Блок. Можно меня за это критиковать, но тогда в кармане было шаром покати — и покупать их варианта не было, ничего не подпишешь, все мы не без греха.\n\nТак прошло примерно 3-4 месяца учебы. В один прекрасный день с деньгами стало совсем плохо, и откладывать поиск работы больше было нельзя. Меня пугала идея удаленки, это было до пандемии, и идея о том, что джуну лучше работать в офисе — крепко сидела в моей голове. Отправился на HH, сделал резюме как смог и как умел, и стал ждать откликов. Конечно, их не было, ровным счетом ни одного, если не считать всякие бредовые звонки с вакансиями на специалиста техподдержки. Также самостоятельно мониторил вакансии на IT-портале своего города, но там почти в 100% случаев требовались люди с опытом. А еще было очень много вакансий на 1С. После более глубокого изучения вопроса поиска работы, прочтения статей и просмотра видео на ютубе — начал откликаться сам, писать сопроводительные письма, и, в целом, стал искать активно, откликаясь на большое количество вакансий.\n\nЧерез неделю мне дали мое первое тестовое задание — надо было по одной переворачивать карточки c картинками на экране с определенным интервалом, да так, чтобы одна начинала переворачиваться в тот момент, когда еще не закончила предыдущая, т.е «внахлест». Конечно, надо было применить JS, который я знал очень посредственно, даже несмотря на то, что уроки по JS в тренажерах HTML Academy были. Но этого было мало — на тот момент там не давали основ, и предлагали сразу работу с DOM. Я легко и быстро сделал симпатичную верстку, но со скриптом были проблемы. Вторая противоречивая вещь в моей истории — я попросил друга помочь мне с этим тестовым заданием, а на тот момент он уже год как работал веб-разработчиком. Сразу скажу: сейчас меня не мучает совесть за тот случай, и я отношусь к такой помощи нормально. Если это поможет вам найти работу — то ничего плохого в этом нет. Собеседование всё равно проходить вам, и работать тоже, и если вы понимаете код, который вам помогли написать, если вы сможете воспроизвести его самостоятельно, сможете его отредактировать и внести правки, ответить на вопросы по этому коду — всё в порядке.\n\nСидя за столиком в McDonald и попивая колу со льдом, друг помог мне закончить начатое. В итоге тестовое задание приняли, выдав скромный фидбек с недочетами, что уже неплохо — ведь фидбека зачастую можно и вовсе не дождаться. Позвали на собеседование, моему волнению не было предела, и я выдохнул, только когда мне сказали выходить на работу с понедельника. Само собеседование было очень простым: обсудили то, что мои проекты по верстке на GitHub никуда не годятся, поговорили про учебу в университете и жизнь в целом, немного поговорили на английском с одним из разработчиков. Я был приятно удивлен, поняв, что мой английский — гораздо лучше, чем я о нем думаю. \n\nТак началась моя первая работа верстальщиком. Компания занималась разработкой своего [конструктора сайтов](https://mobirise.com/), а я делал шаблоны-блоки — затем они выливались в темы для этого конструктора, подобные тем, что лежат на [Themeforest](https://themeforest.net/). Блоки были кастомизируемыми, в них можно было много чего менять. То есть, захотели вы сделать сайт для своей медицинской клиники — скачали конструктор, выбрали тему Medicine, накидали блоков, сделали текст и картинки под себя, подогнали всё как вам надо, и ваш сайт готов. \n\nПоначалу было сложно: каждый день поход в офис, трекер рабочего времени, новый софт, всё новое. Если бы это была просто вёрстка — было бы проще, но надо было сделать так, чтобы моя верстка работала внутри конструктора, чтобы всё менялось и кастомизировалось, было адаптивным, и выглядело отлично. Но человеческое отношение, комфортный офис, кофе-машина и сладости конечно оказывали приятное впечатление, особенно первое время.\n\nМою первую тему просто уничтожили — в ней всё было плохо. К счастью, я узнал, что абсолютно все новички в компании через это проходят, и первую тему уничтожают в пух и прах. Но закончилось всё хорошо: я всё поправил, и после этого дело пошло — одна тема за другой, и так без конца на протяжении года. Примерно через год, когда рутина и этот конвейер встали в горле комом, я попросил задачу посложнее. Я сделал плагин для feedback-чата на сайте, тестировал новый продукт компании — и это было довольно интересно. Я благодарен этой компании за опыт: может я и не стал магистром верстки, но уж точно стал верстать гораздо увереннее.\n\n## Учеба на Хекслете\n\nНеизвестно, что бы было дальше, если бы в один прекрасный день я не наткнулся на [Вику](https://twitter.com/gitpush__force) в твиттере, где она писала про учебу на Хекслете. Мне стало интересно — я ей написал с вопросом, что это за Хекслет вообще такой, и она мне продала идею учиться на этой площадке буквально за 5-6 сообщений. Это было почти сразу, после того, как я устроился на первую работу, поэтому началось самое тяжелое время: работа в офисе, а затем учеба на Хеслете после работы до ночи. Но вводный курс так зацепил качеством материала, что сомнений не было — надо продолжать. Хекслет — первая площадка, где я встретил глубину, подробные основы, последовательность и надежду на светлое будущее (не ирония). И комьюнити, конечно, чаты в слаке, обсуждения в каждом уроке, возможность всегда задать вопрос — это бесценно. \n\nУчеба шла очень медленно и тяжело, потому что после работы времени не очень много, сил очень мало, и поначалу такой низкий темп напрягал и деморализовывал. Со временем я смирился и отпустил свое желание как можно быстрее выучить всё и сразу. Решал все задачки сам, не подглядывал в решение учителя, проходил испытания, даже те, которые были направлены скорее на алгоритмическое мышление, чем непосредственно на фронтенд. Некоторые задачи и испытания не мог решить 2 дня, 3 дня, неделю и больше — бывало всякое, даже руки опускались, но неизбежно накатывающее чувство эйфории от в конце концов решенной задачи, стремление развиваться _и получать заветную Козулю_ помогало не опускать руки. В течение года, я практически полностью прошел профессию «[Фронтенд-разработчик](https://ru.hexlet.io/programs/frontend)» и даже осилил 2 проекта. \n\nПроекты — это вообще лучшее, что вы можете сделать на Хекслете, особенно с проверкой ментора. Особенно учитывая, что сейчас есть автоматизированные тесты. Именно после проектов я почувствовал силу, способность написать что-то большое самостоятельно.\n\n## Вторая работа\n\nСо всеми этими новыми знаниями пришло понимание, что пора двигаться дальше и искать новую работу. Я написал заявление об увольнении, отработал положенные две недели, начал искать и готовиться. Было несколько неудачных собеседований — то не мог нормально рассказать про [Event Loop](https://ru.hexlet.io/courses/js-asynchronous-programming/lessons/event-loop/theory_unit), то не мог нормально объяснить, как работает под капотом та или иная асинхронная функция, то не хватало каких-то знаний — про базы данных, например. \n\nВажная мысль, которую я хочу донести до всех ребят, кто учится на тут: Хекслет — не волшебная пилюля. Да, Хекслет очень крутой, на мой вкус — лучшая площадка для обучения на русском языке, но ответственность за ваше образование несете только вы. Порой пройти даже всю профессию целиком — недостаточно, порой даже решенные задачи и пройденный материал не означают, что вы сможете четко ответить на поставленные вопросы на собеседовании. Вы сами должны узнать свои слабые места и подтянуть их до нужного уровня. И есть только один способ эти слабые места узнать — писать код, делать свои проекты, и ходить на собеседования.\n\nПосле нескольких неудачных попыток я случайно наткнулся на несколько лонгридов про Anki и long-term memory. В целом, мне всегда была интересна тема запоминания информации, различные техники, которые позволяют делать это быстро и эффективно, как запоминать большие объемы информации надолго, а не выбрасывать из головы сразу же после применения (экзамена, например). **На эту тему рекомендую книгу Джошуа Фоера «Эйнштейн гуляет по Луне: Наука и искусство запоминания»**. В целом, это тоже отдельная огромная тема, и я не буду подробно на этом останавливаться. Оставлю лишь [две](http://augmentingcognition.com/ltm.html) ссылки на [интересные статьи](https://www.gwern.net/Spaced-repetition) на эту тему.\n\n**Опишу процесс коротко:** открывал материал на Хекслете или из какого-нибудь сборника вопросов и ответов для подготовки к собеседованию на позицию фронтенд-разработчика, читал материал, самостоятельно составлял на его основе много кратких(!) вопросов и ответов — и заносил в Anki, а затем учил. Что мне это дало? После того, как я начал этим заниматься — я тут же прошел следующее собеседование, где меня гоняли по основам JS довольно сильно. Конечно, я ответил не на все вопросы: например, я не знал, как убить сетевой процесс из терминала, так и не выучил ничего про базы данных. Но тем не менее — это был совершенно иной уровень, и его оказалось достаточно. А уж live Coding был вовсе простой, тем более после задач и испытаний на Хекслете — банальный [FizzBuzz](https://ru.wikipedia.org/wiki/Fizz_buzz). Правда, когда меня попросили переписать его рекурсивно — я слегка струхнул, но в итоге справился. \n\nТеперь у меня совершенно другая работа, интересные и сложные задачи, удаленка, зарплата, выросшая в 3 раза. Сейчас пишу на Vue, при том что Vue я и вовсе не учил никогда, и на собеседовании о нем не было ни слова — я смог довольно быстро разобраться, что к чему, и учил «по дороге». Вся подготовка по Vue, что у меня была — пара просмотренных уроков в бесплатном [курсе](https://www.youtube.com/playlist?list=PLvTBThJr861yMBhpKafII3HZLAYujuNWw) Ильи Климова, на тот момент их вышло совсем немного. \nКто бы что ни говорил, а Vue — самый дружелюбный фреймворк для старта. \n\nВ планах — выучить Nuxt, TypeScript, а также вернуться к экосистеме React и подтянуть основы ([привет, СИКП!](https://sicp.hexlet.io/ru/chapters)), потому что я совсем не хочу быть разработчиком одного фреймворка — я хочу быть инженером по разработке программного обеспечения (aka Software engineer), а не просто Vue-developer'ом.\n\n## Послесловие и советы\n\nВ конце попробую дать несколько советов новичкам. Начну с самого противоречивого и неоднозначного, но это — мой опыт. \n\n1. Не бойтесь первого выгорания. Обязательно почитайте о нем статьи, посмотрите видео, что это такое, как с ним бороться, как его предотвратить, и что делать, если оно уже наступило. Выгорание — не миф, а реально серьезная штука. И чтобы научиться его эффективно предотвращать и бороть — его надо пережить, это точно такой же опыт, как и любой другой. Со мной оно случалось, и даже несколько раз, я выпадал из учебы на месяц и больше. Зато теперь я четко знаю, и даже чувствую — когда стоит выдохнуть и сделать паузу. А советы о том, что нужно много спать, отдыхать, плотно кушать, и пить много воды — вам и так дадут, из каждого утюга трубят. Тем не менее, если вам удастся избежать выгорания на протяжении всей карьеры — это будет замечательно. \n\n2. Учите материал, когда готовитесь к собеседованиям, особенно если вы не понимаете его глубоко. Вы и не подозреваете, насколько сильно могут повлиять запомненные кусочки информации на понимание общей картины. Конечно, вы не раз слышали о том, что собеседование — не экзамен, и это действительно так. Но также верно и то, что надо держать в голове большие объемы информации и уметь качественно её преподнести. В целом, уделяйте внимание не только тому, где вы учитесь, и что вы сейчас изучаете, но и тому, как именно вы это делаете — это может сыграть решающую роль. Здесь же посоветую курс [Learning how to learn](https://www.coursera.org/learn/learning-how-to-learn) на Coursera, где об этом рассказано подробно.\n\n3. Возьмите ответственность за свое образование на себя. Только вы выбираете площадку, на которой будете учиться, только вы выбираете наставника. Только ваша задача — запомнить то, что нужно запомнить. Научиться писать код — тоже ваша задача, вся ваша карьера — это ваш личный большой проект, над которым работать только вам, и в конце концов спросить будет не с кого, кроме как с самого себя.\n\n4. Ходите на собеседования — и как можно раньше. Это сложно, это волнительно, это выматывает физически и эмоционально, но это — необходимо, это тоже опыт и важный скилл, не говоря о том, что это отличный способ выявить свои слабые места и пробелы в знаниях.\n\n5. Будьте в сообществе, будьте «на волне». Заведите твиттер, и пишите туда всё что вам захочется, не боясь осуждения со стороны бородатых дядек-сеньоров, заведите LinkedIn и приведите его в порядок, сделайте красивую страницу на GitHub, вступите в профильные чаты в телеграме и залетайте туда время от времени поболтать, ходите на митапы и конференции, на сходки, везде — если есть такая возможность. Я нашел свою текущую работу, потому что мне написала HR из твиттера на почту. Коммуникация и нетворкинг — наше всё. Не умеете общаться — учитесь сейчас, без этого будет тяжело. Однажды я попал на собеседование в одну очень привлекательную компанию, в которой действительно хотел работать, только потому что не постеснялся и сам написал на почту HR, и даже прошел первый этап, но у меня на руках уже был другой привлекательный оффер, и я его принял.\n\n::posts\n\n6. Любите себя. Не делайте паршивые тестовые задания, выполнение которых занимает несколько недель. Не работайте бесплатно, не работайте за гроши, ищите код-ревью, менторинг, хорошие [инженерные практики](https://guides.hexlet.io/check-list-of-engineering-practices/) — это то, чего мне не хватало на старте, и сильно замедлило мою карьеру тогда, когда мне хотелось максимально быстрого роста. \n\nНа этом всё! Спасибо всем, кто сумел дочитать до этого момента.\n\nПодписывайтесь на меня: \n- в [Twitter](https://twitter.com/ay_pavlov)\n- добавляйтесь в [Linkedin](https://www.linkedin.com/in/alexey--pavlov/)\n- также вы можете написать мне в [Telegram](https://t.me/ay_pvl)\n\nДавайте дружить =) \n","reading_time":11,"url":"https://ru.hexlet.io/blog/posts/Kak-otchislitsya-iz-universiteta-no-stat-frontend-razrabotchikom","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":1398,"title":"Из вахтовика в программирование. Как Хекслет перевернул мою жизнь","slug":"iz-vahtovika-v-programmirovanie","summary":"Как поменять профессию и стать разработчиком из вахтовика, просто правильно выбрав обучающий сайт и загоревшись изучением программирования.","created_at":"2021-05-25T02:10:52.202Z","published_at":"2021-10-11T16:23:33.127Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1507,"title":"Как я стал программистом после разработки на «Битриксе» и работы в госкорпорации. История успеха","slug":"kak-ya-stal-programmistom","summary":"Всем привет. Меня зовут Федор и я разработчик. В этом году мне исполняется 35. Это моя история успеха — как мне удалось стать программистом после 10 лет работы в госкорпорации, и почему поддержка семьи — это очень важно.","created_at":"2021-08-16T08:06:43.797Z","published_at":"2021-09-07T14:25:55.064Z","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":23,"slug":"js-react-development","title":"React","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":350,"duration_in_months":2},"id":34,"slug":"js-react-developer","title":"React","subtitle":"Навык разрабатывать быстрые и удобные интерфейсы, открывающий доступ к интересным вакансиям в крупных компаниях","subtitle_for_lists":"Освоите React и создание быстрых интерфейсов","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"js-react-development","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0OSwicHVyIjoiYmxvYl9pZCJ9fQ==--a6531362dd1f3afb65f5b269e1a23113df7171b1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Devices-amico.png"},{"stack":{"id":19,"slug":"layout-designer","title":"Профессиональная верстка","audience":"for_beginners","start_type":"anytime","pricing_model":"purchase","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1700,"duration_in_months":5},"id":26,"slug":"professional-layout","title":"Профессиональная верстка","subtitle":"Навык адаптивной вёрстки с современными подходами для корректного отображения сайтов на любых устройствах и разрешениях","subtitle_for_lists":"Адаптивная вёрстка для отображения на любых устройствах ","locale":"ru","current":true,"duration_in_months_text":"5 месяцев","stack_slug":"layout-designer","price_text":"от 3 900 ₽","duration_text":"5 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzNCwicHVyIjoiYmxvYl9pZCJ9fQ==--ba516ea9573bdfcd1d21e2aa0fff8818561828f2/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Typing-bro.png"},{"stack":{"id":29,"slug":"js-oop","title":"ООП на Javascript","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4250,"duration_in_months":2},"id":46,"slug":"js-oop","title":"ООП на Javascript","subtitle":"Навык глубокого понимания архитектуры и написания чистого кода, позволяющий решать сложные задачи","subtitle_for_lists":"Изучите архитектуру и принципы чистого кода на JS","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"js-oop","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png"},{"stack":{"id":52,"slug":"typescript","title":"Typescript","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":200,"duration_in_months":2},"id":92,"slug":"typescript","title":"Typescript","subtitle":"Навык снижать ошибки, упрощать отладку, повышать качество кода и ускорять разработку с автодополнением и типизацией","subtitle_for_lists":"Изучите Typescript и получите навык снижать ошибки, упрощать отладку","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"typescript","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcwOSwicHVyIjoiYmxvYl9pZCJ9fQ==--03e50bbd408fef672ad099f7b2a258d80f54ad96/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Hand%20coding-bro.png"}]},"url":"/blog/posts/Kak-otchislitsya-iz-universiteta-no-stat-frontend-razrabotchikom","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":"Alexey Pavlov","name":"История успеха, или как отчислиться из университета, но всё равно стать фронтенд-разработчиком","datePublished":"2021-08-27T10:06:26.104Z","headline":"Всем привет! Я очень давно пытался собраться и написать свою историю успеха, и кажется, время пришло! Меня зовут Леша, и я уже почти два года как фронтенд-разработчик. Это моя история о том, как я сумел преодолеть все трудности и вкатиться в эту профессию.","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":40}]}</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-otchislitsya-iz-universiteta-no-stat-frontend-razrabotchikom","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="Фронтенд"><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">27 августа 2021 г.</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>40</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>
<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>
</ul>
<h2 id="heading-2-2">Жизнь «до» и учеба в университете</h2>
<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://twitter.com/ay_pavlov/status/1415017239871381508" rel="noopener noreferrer" target="_blank">в твиттере</a>), инструктором и помощником администратора в боулинг-клубе, аниматором на точке с шлемом виртуальной реальности Oculus Rift, рабочим у ландшафтного дизайнера, рабочим на стройке.</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/js-react-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">React</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите 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/eyJfcmFpbHMiOnsiZGF0YSI6NDA0OSwicHVyIjoiYmxvYl9pZCJ9fQ==--a6531362dd1f3afb65f5b269e1a23113df7171b1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Devices-amico.png" alt="React" 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/professional-layout?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">5 месяцев</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">Адаптивная вёрстка для отображения на любых устройствах </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/eyJfcmFpbHMiOnsiZGF0YSI6NDAzNCwicHVyIjoiYmxvYl9pZCJ9fQ==--ba516ea9573bdfcd1d21e2aa0fff8818561828f2/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Typing-bro.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">от 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/js-oop?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">ООП на Javascript</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите архитектуру и принципы чистого кода на JS</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/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png" alt="ООП на Javascript" 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/typescript?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">Typescript</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите Typescript и получите навык снижать ошибки, упрощать отладку</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/eyJfcmFpbHMiOnsiZGF0YSI6MzcwOSwicHVyIjoiYmxvYl9pZCJ9fQ==--03e50bbd408fef672ad099f7b2a258d80f54ad96/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Hand%20coding-bro.png" alt="Typescript" 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>
<p>Вообще, куда я только не хотел поступать после школы. Сначала — в академию МЧС, начал заниматься своей физической подготовкой, и даже нашел знакомого, который эту академию уже заканчивал, он давал советы о том, как проще поступить. Потом эту идею я отбросил и захотел стать врачом — ходил на подготовительные курсы в медицинскую академию, но с химией у меня сложились тяжелые отношения, поэтому от идеи стать врачом тоже пришлось отказаться. Хотел стать и журналистом — благо вовремя понял, что <em>журналистики в России нет</em> и жизнь журналиста тяжела и неказиста (почти как программиста, но платят намного меньше).</p>
<p>Когда пришла пора принимать окончательное решение, остановился на направлении «Информатика и вычислительная техника» в Вятском Государственном Университете. Там же учился мой отец, и вообще — компьютер был у меня с самого детства, даже тогда, когда ни у кого еще не было. Отец работал на заводе в отделе автоматизации систем управления, поэтому мог позволить себе собрать домашний компьютер по запчастям. Другой вопрос, что я не был из числа тех вундеркиндов, которые программируют с пеленок. Я играл в игры (а делать их — не хотел), смотрел фильмы и сериалы, развлекался, но не писал код до учебы в ВУЗе, не считая информатики в школе. А еще был долгий период, когда я ходил помогать отцу обслуживать компьютеры в техникум около дома: мы чинили компьютеры, настраивали сеть, устанавливали нужные программы, и вообще — старались сделать жизнь студентов и преподавателей проще.</p>
<p>Я буквально кое-как поступил на это направление, потому что туда поступали самые умные ребята из области, и конкуренция была приличная: я был в самом низу списка по баллам ЕГЭ, при том, что баллы были хорошие, ведь я даже закончил школу на серебряную медальку. Это очень тяжелое и сложное направление, с большим количеством основ и низкоуровневых знаний — от ассемблера, до того, как сделать свой процессор в гараже: теория автоматов, архитектура ЭВМ, вычислительная и дискретная математика, мат анализ, теорвер, математическая логика, компьютерная графика, электротехника, схемотехника ЭВМ, — вот лишь неполный список того, что нам преподавали.</p>
<p>В итоге я не потянул эту учебу, с головой утонув в огромном разнообразии внеучебной деятельности: студенческий клуб, выступления на сцене, профком, организация мероприятий, волонтерство, поездки по всей России от университета, написание статей про гаджеты и технологии в молодежное издание. Но это отдельная большая история. В любом случае, университет дал мне какие-то самые базовые основы, и подарил возможность не бояться программирования как такового, дал понимание, что именно этим я и хочу заниматься в будущем.</p>
<p>После лабораторных в университете на Pascal, С++ и Java — Javascript был мне совсем не страшен. По-прежнему сложен, но совсем не страшен. Но лабораторные в университете и реальная разработка — совершенно разные вещи. Оглядываясь назад — радуюсь, что такая хардкорная учеба не убила во мне любовь к программированию, и это не сказки, такое действительно происходило с многими ребятами. Из тех 65 человек, с кем я поступил — диплом получило 7. Ну и софт-скиллы, конечно. Университет мощно прокачал мои навыки коммуникации, организации людей и мероприятий, публичных выступлений, поиска и анализа даже самой тяжелой для понимания информации.</p>
<p>После были попытки вкатиться в iOS-разработку (недавно <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://twitter.com/ay_pavlov/status/1425038849428934688" rel="noopener noreferrer" target="_blank">писал об этом в твиттере</a>), а потом — армия, по возвращению из которой возник вопрос — чем же мне заниматься. Понятно, что писать код, но в какой области? К тому момент хайп вокруг фронтенда достиг своего пика, и я решил — стоит попробовать, несмотря на то, что многие друзья всё-таки ушли в мобильную разработку. В моем небольшом городе даже проводили митапы для iOS-разработчиков (<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://peerlab.community/" rel="noopener noreferrer" target="_blank">Peer Lab</a>) — это были единственные встречи айтишников в городе. А до этого я уже проходил пару уроков на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://htmlacademy.ru/" rel="noopener noreferrer" target="_blank">HTML Academy</a>, поэтому туда и направился.</p>
<h2 id="heading-2-3">Первая ступень обучения и первая работа</h2>
<p>Я не покупал никакие курсы у HTML Academy, а проходил только их тренажеры. В целом было несложно, но очень интересно. Параллельно заглядывал в раздел верстки на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.freecodecamp.org/" rel="noopener noreferrer" target="_blank">Free Code Camp</a>, там бесплатно, качественно, но на английском. На тот момент я еще довольно плохо читал по-английски, и из-за этого FCC шел тяжело. Были и некоторые откровенно спираченные курсы — <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.udemy.com/course/webdeveloper/" rel="noopener noreferrer" target="_blank">«Профессия веб-разработчик"</a> от Ивана Петриченко на Udemy, и два курса <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://tpverstak.ru/" rel="noopener noreferrer" target="_blank">«Типичный верстальщик"</a> от Анны Блок. Можно меня за это критиковать, но тогда в кармане было шаром покати — и покупать их варианта не было, ничего не подпишешь, все мы не без греха.</p>
<p>Так прошло примерно 3-4 месяца учебы. В один прекрасный день с деньгами стало совсем плохо, и откладывать поиск работы больше было нельзя. Меня пугала идея удаленки, это было до пандемии, и идея о том, что джуну лучше работать в офисе — крепко сидела в моей голове. Отправился на HH, сделал резюме как смог и как умел, и стал ждать откликов. Конечно, их не было, ровным счетом ни одного, если не считать всякие бредовые звонки с вакансиями на специалиста техподдержки. Также самостоятельно мониторил вакансии на IT-портале своего города, но там почти в 100% случаев требовались люди с опытом. А еще было очень много вакансий на 1С. После более глубокого изучения вопроса поиска работы, прочтения статей и просмотра видео на ютубе — начал откликаться сам, писать сопроводительные письма, и, в целом, стал искать активно, откликаясь на большое количество вакансий.</p>
<p>Через неделю мне дали мое первое тестовое задание — надо было по одной переворачивать карточки c картинками на экране с определенным интервалом, да так, чтобы одна начинала переворачиваться в тот момент, когда еще не закончила предыдущая, т.е «внахлест». Конечно, надо было применить JS, который я знал очень посредственно, даже несмотря на то, что уроки по JS в тренажерах HTML Academy были. Но этого было мало — на тот момент там не давали основ, и предлагали сразу работу с DOM. Я легко и быстро сделал симпатичную верстку, но со скриптом были проблемы. Вторая противоречивая вещь в моей истории — я попросил друга помочь мне с этим тестовым заданием, а на тот момент он уже год как работал веб-разработчиком. Сразу скажу: сейчас меня не мучает совесть за тот случай, и я отношусь к такой помощи нормально. Если это поможет вам найти работу — то ничего плохого в этом нет. Собеседование всё равно проходить вам, и работать тоже, и если вы понимаете код, который вам помогли написать, если вы сможете воспроизвести его самостоятельно, сможете его отредактировать и внести правки, ответить на вопросы по этому коду — всё в порядке.</p>
<p>Сидя за столиком в McDonald и попивая колу со льдом, друг помог мне закончить начатое. В итоге тестовое задание приняли, выдав скромный фидбек с недочетами, что уже неплохо — ведь фидбека зачастую можно и вовсе не дождаться. Позвали на собеседование, моему волнению не было предела, и я выдохнул, только когда мне сказали выходить на работу с понедельника. Само собеседование было очень простым: обсудили то, что мои проекты по верстке на GitHub никуда не годятся, поговорили про учебу в университете и жизнь в целом, немного поговорили на английском с одним из разработчиков. Я был приятно удивлен, поняв, что мой английский — гораздо лучше, чем я о нем думаю.</p>
<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://mobirise.com/" rel="noopener noreferrer" target="_blank">конструктора сайтов</a>, а я делал шаблоны-блоки — затем они выливались в темы для этого конструктора, подобные тем, что лежат на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://themeforest.net/" rel="noopener noreferrer" target="_blank">Themeforest</a>. Блоки были кастомизируемыми, в них можно было много чего менять. То есть, захотели вы сделать сайт для своей медицинской клиники — скачали конструктор, выбрали тему Medicine, накидали блоков, сделали текст и картинки под себя, подогнали всё как вам надо, и ваш сайт готов.</p>
<p>Поначалу было сложно: каждый день поход в офис, трекер рабочего времени, новый софт, всё новое. Если бы это была просто вёрстка — было бы проще, но надо было сделать так, чтобы моя верстка работала внутри конструктора, чтобы всё менялось и кастомизировалось, было адаптивным, и выглядело отлично. Но человеческое отношение, комфортный офис, кофе-машина и сладости конечно оказывали приятное впечатление, особенно первое время.</p>
<p>Мою первую тему просто уничтожили — в ней всё было плохо. К счастью, я узнал, что абсолютно все новички в компании через это проходят, и первую тему уничтожают в пух и прах. Но закончилось всё хорошо: я всё поправил, и после этого дело пошло — одна тема за другой, и так без конца на протяжении года. Примерно через год, когда рутина и этот конвейер встали в горле комом, я попросил задачу посложнее. Я сделал плагин для feedback-чата на сайте, тестировал новый продукт компании — и это было довольно интересно. Я благодарен этой компании за опыт: может я и не стал магистром верстки, но уж точно стал верстать гораздо увереннее.</p>
<h2 id="heading-2-4">Учеба на Хекслете</h2>
<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://twitter.com/gitpush__force" rel="noopener noreferrer" target="_blank">Вику</a> в твиттере, где она писала про учебу на Хекслете. Мне стало интересно — я ей написал с вопросом, что это за Хекслет вообще такой, и она мне продала идею учиться на этой площадке буквально за 5-6 сообщений. Это было почти сразу, после того, как я устроился на первую работу, поэтому началось самое тяжелое время: работа в офисе, а затем учеба на Хеслете после работы до ночи. Но вводный курс так зацепил качеством материала, что сомнений не было — надо продолжать. Хекслет — первая площадка, где я встретил глубину, подробные основы, последовательность и надежду на светлое будущее (не ирония). И комьюнити, конечно, чаты в слаке, обсуждения в каждом уроке, возможность всегда задать вопрос — это бесценно.</p>
<p>Учеба шла очень медленно и тяжело, потому что после работы времени не очень много, сил очень мало, и поначалу такой низкий темп напрягал и деморализовывал. Со временем я смирился и отпустил свое желание как можно быстрее выучить всё и сразу. Решал все задачки сам, не подглядывал в решение учителя, проходил испытания, даже те, которые были направлены скорее на алгоритмическое мышление, чем непосредственно на фронтенд. Некоторые задачи и испытания не мог решить 2 дня, 3 дня, неделю и больше — бывало всякое, даже руки опускались, но неизбежно накатывающее чувство эйфории от в конце концов решенной задачи, стремление развиваться <em>и получать заветную Козулю</em> помогало не опускать руки. В течение года, я практически полностью прошел профессию «<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/programs/frontend" rel="noopener noreferrer" target="_blank">Фронтенд-разработчик</a>» и даже осилил 2 проекта.</p>
<p>Проекты — это вообще лучшее, что вы можете сделать на Хекслете, особенно с проверкой ментора. Особенно учитывая, что сейчас есть автоматизированные тесты. Именно после проектов я почувствовал силу, способность написать что-то большое самостоятельно.</p>
<h2 id="heading-2-5">Вторая работа</h2>
<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/courses/js-asynchronous-programming/lessons/event-loop/theory_unit" rel="noopener noreferrer" target="_blank">Event Loop</a>, то не мог нормально объяснить, как работает под капотом та или иная асинхронная функция, то не хватало каких-то знаний — про базы данных, например.</p>
<p>Важная мысль, которую я хочу донести до всех ребят, кто учится на тут: Хекслет — не волшебная пилюля. Да, Хекслет очень крутой, на мой вкус — лучшая площадка для обучения на русском языке, но ответственность за ваше образование несете только вы. Порой пройти даже всю профессию целиком — недостаточно, порой даже решенные задачи и пройденный материал не означают, что вы сможете четко ответить на поставленные вопросы на собеседовании. Вы сами должны узнать свои слабые места и подтянуть их до нужного уровня. И есть только один способ эти слабые места узнать — писать код, делать свои проекты, и ходить на собеседования.</p>
<p>После нескольких неудачных попыток я случайно наткнулся на несколько лонгридов про Anki и long-term memory. В целом, мне всегда была интересна тема запоминания информации, различные техники, которые позволяют делать это быстро и эффективно, как запоминать большие объемы информации надолго, а не выбрасывать из головы сразу же после применения (экзамена, например). <strong>На эту тему рекомендую книгу Джошуа Фоера «Эйнштейн гуляет по Луне: Наука и искусство запоминания»</strong>. В целом, это тоже отдельная огромная тема, и я не буду подробно на этом останавливаться. Оставлю лишь <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="http://augmentingcognition.com/ltm.html" rel="noopener noreferrer" target="_blank">две</a> ссылки на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.gwern.net/Spaced-repetition" rel="noopener noreferrer" target="_blank">интересные статьи</a> на эту тему.</p>
<p><strong>Опишу процесс коротко:</strong> открывал материал на Хекслете или из какого-нибудь сборника вопросов и ответов для подготовки к собеседованию на позицию фронтенд-разработчика, читал материал, самостоятельно составлял на его основе много кратких(!) вопросов и ответов — и заносил в Anki, а затем учил. Что мне это дало? После того, как я начал этим заниматься — я тут же прошел следующее собеседование, где меня гоняли по основам JS довольно сильно. Конечно, я ответил не на все вопросы: например, я не знал, как убить сетевой процесс из терминала, так и не выучил ничего про базы данных. Но тем не менее — это был совершенно иной уровень, и его оказалось достаточно. А уж live Coding был вовсе простой, тем более после задач и испытаний на Хекслете — банальный <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.wikipedia.org/wiki/Fizz_buzz" rel="noopener noreferrer" target="_blank">FizzBuzz</a>. Правда, когда меня попросили переписать его рекурсивно — я слегка струхнул, но в итоге справился.</p>
<p>Теперь у меня совершенно другая работа, интересные и сложные задачи, удаленка, зарплата, выросшая в 3 раза. Сейчас пишу на Vue, при том что Vue я и вовсе не учил никогда, и на собеседовании о нем не было ни слова — я смог довольно быстро разобраться, что к чему, и учил «по дороге». Вся подготовка по Vue, что у меня была — пара просмотренных уроков в бесплатном <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.youtube.com/playlist?list=PLvTBThJr861yMBhpKafII3HZLAYujuNWw" rel="noopener noreferrer" target="_blank">курсе</a> Ильи Климова, на тот момент их вышло совсем немного.
Кто бы что ни говорил, а Vue — самый дружелюбный фреймворк для старта.</p>
<p>В планах — выучить Nuxt, TypeScript, а также вернуться к экосистеме React и подтянуть основы (<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://sicp.hexlet.io/ru/chapters" rel="noopener noreferrer" target="_blank">привет, СИКП!</a>), потому что я совсем не хочу быть разработчиком одного фреймворка — я хочу быть инженером по разработке программного обеспечения (aka Software engineer), а не просто Vue-developer'ом.</p>
<h2 id="heading-2-6">Послесловие и советы</h2>
<p>В конце попробую дать несколько советов новичкам. Начну с самого противоречивого и неоднозначного, но это — мой опыт.</p>
<ol>
<li>
<p>Не бойтесь первого выгорания. Обязательно почитайте о нем статьи, посмотрите видео, что это такое, как с ним бороться, как его предотвратить, и что делать, если оно уже наступило. Выгорание — не миф, а реально серьезная штука. И чтобы научиться его эффективно предотвращать и бороть — его надо пережить, это точно такой же опыт, как и любой другой. Со мной оно случалось, и даже несколько раз, я выпадал из учебы на месяц и больше. Зато теперь я четко знаю, и даже чувствую — когда стоит выдохнуть и сделать паузу. А советы о том, что нужно много спать, отдыхать, плотно кушать, и пить много воды — вам и так дадут, из каждого утюга трубят. Тем не менее, если вам удастся избежать выгорания на протяжении всей карьеры — это будет замечательно.</p>
</li>
<li>
<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://www.coursera.org/learn/learning-how-to-learn" rel="noopener noreferrer" target="_blank">Learning how to learn</a> на Coursera, где об этом рассказано подробно.</p>
</li>
<li>
<p>Возьмите ответственность за свое образование на себя. Только вы выбираете площадку, на которой будете учиться, только вы выбираете наставника. Только ваша задача — запомнить то, что нужно запомнить. Научиться писать код — тоже ваша задача, вся ваша карьера — это ваш личный большой проект, над которым работать только вам, и в конце концов спросить будет не с кого, кроме как с самого себя.</p>
</li>
<li>
<p>Ходите на собеседования — и как можно раньше. Это сложно, это волнительно, это выматывает физически и эмоционально, но это — необходимо, это тоже опыт и важный скилл, не говоря о том, что это отличный способ выявить свои слабые места и пробелы в знаниях.</p>
</li>
<li>
<p>Будьте в сообществе, будьте «на волне». Заведите твиттер, и пишите туда всё что вам захочется, не боясь осуждения со стороны бородатых дядек-сеньоров, заведите LinkedIn и приведите его в порядок, сделайте красивую страницу на GitHub, вступите в профильные чаты в телеграме и залетайте туда время от времени поболтать, ходите на митапы и конференции, на сходки, везде — если есть такая возможность. Я нашел свою текущую работу, потому что мне написала HR из твиттера на почту. Коммуникация и нетворкинг — наше всё. Не умеете общаться — учитесь сейчас, без этого будет тяжело. Однажды я попал на собеседование в одну очень привлекательную компанию, в которой действительно хотел работать, только потому что не постеснялся и сам написал на почту HR, и даже прошел первый этап, но у меня на руках уже был другой привлекательный оффер, и я его принял.</p>
</li>
</ol>
<style data-mantine-styles="inline">.__m__-_R_25derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_25derddmiub_{--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_25derddmiub_" 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/iz-vahtovika-v-programmirovanie"><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">11 октября 2021 г.<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-ya-stal-programmistom"><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">Всем привет. Меня зовут Федор и я разработчик. В этом году мне исполняется 35. Это моя история ус...</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">7 сентября 2021 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<ol start="6">
<li>Любите себя. Не делайте паршивые тестовые задания, выполнение которых занимает несколько недель. Не работайте бесплатно, не работайте за гроши, ищите код-ревью, менторинг, хорошие <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://guides.hexlet.io/check-list-of-engineering-practices/" rel="noopener noreferrer" target="_blank">инженерные практики</a> — это то, чего мне не хватало на старте, и сильно замедлило мою карьеру тогда, когда мне хотелось максимально быстрого роста.</li>
</ol>
<p>На этом всё! Спасибо всем, кто сумел дочитать до этого момента.</p>
<p>Подписывайтесь на меня:</p>
<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="https://twitter.com/ay_pavlov" rel="noopener noreferrer" target="_blank">Twitter</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="https://www.linkedin.com/in/alexey--pavlov/" rel="noopener noreferrer" target="_blank">Linkedin</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="https://t.me/ay_pvl" rel="noopener noreferrer" target="_blank">Telegram</a></li>
</ul>
<p>Давайте дружить =)</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">Alexey Pavlov</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">5 лет назад</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-otchislitsya-iz-universiteta-no-stat-frontend-razrabotchikom/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">40</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/iz-vahtovika-v-programmirovanie">Из вахтовика в программирование. Как Хекслет перевернул мою жизнь</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-ya-stal-programmistom">Как я стал программистом после разработки на «Битриксе» и работы в госкорпорации. История успеха</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>