Всем привет! Меня зовут Кирилл, мне 37 лет. Я родился в Казахстане, в Алма-Ате, а после школы переехал в Москву. Когда я только начинал учиться на Хекслете, я с большим интересом и надеждой читал истории успеха других ребят — мечтал, что когда-нибудь обязательно напишу свою. И вот, кажется, это время настало!
Профиль Кирилла на Хекслете со всеми пройденными курсами можно посмотреть здесь, код выполненных проектов — на GitHub
В IT я пришел в достаточно зрелом возрасте, но компьютеры мне нравились с раннего детства. Эта любовь началась еще до школы, лет в шесть, с книжки «А я был в компьютерном городе», которую я перечитал не один десяток раз.
В первом классе я ходил на кружок информатики — там я вживую познакомился с компьютерами и программированием. Помню черно-белые мониторы (цветной был только у преподавателей), программу для рисования наподобие Paint и игры, которые тогда мне казались сложными. Еще нас учили писать небольшие программки на Basic. Ощущения от информатики были такие: «Это все дико круто и интересно, но уж очень непонятно». В целом, с тех пор мало что поменялось.
Содержание
Страх перед программированием и сомнительные решения
В школе я учился хорошо. Любимыми предметами были физика, информатика и астрономия. Я участвовал в олимпиадах и конкурсах научных проектов по физике, чем сильно удивлял другие школы — наша школа была гуманитарной, с углубленным изучением английского языка.
На информатике мы проходили Паскаль — именно тогда, несмотря на любовь к компьютерам и технике, мне стало казаться, что программирование для меня слишком сложно. Однако с подачи друга и одноклассника я освоил HTML и CSS. В начале двухтысячных не было социальных сетей: чтобы показать всем свою айтишную продвинутость, было модно иметь домашнюю страничку на каком-нибудь бесплатном хостинге вроде narod.ru. Верстка в основном делалась на таблицах, а внешний вид часто прописывали не в CSS, а прямо в атрибутах тегов. JavaScript для меня тогда был чем-то просто запредельным.
В выпускном классе я осознал, что хочу поступать в технический вуз на что-то связанное с компьютерами, электроникой или телекоммуникациями (программирования я побаивался). Мы с другом поставили себе амбициозную цель — поступить в Москву. Для меня принципиально было поступить на бюджет, но с гражданством Казахстана это было сложно — лишь несколько вузов предоставляли квоты для граждан СНГ, позволяя им поступать на общих основаниях с гражданами России. В итоге я оказался в числе студентов Московского государственного строительного университета.
Сначала я испытал эйфорию от того, что смог осуществить свою цель: поступил в московский вуз на прикладную математику. Однако скоро пришло понимание, что это совсем не то, о чем я мечтал. У нас было много сопромата, теоретической механики и других строительных дисциплин, но совсем мало интересных мне предметов. Например, на программировании мы проходили Фортран — чуть ли не первый язык высокого уровня, который появился задолго до С и до сих пор используется для математических и инженерных вычислений. Но все сводилось к переписыванию кода из методички, подстановке своих аргументов, запуске в IDE и демонстрации результата преподавателю. Любой бесплатный курс на Code Basics дает несравнимо больше!
Через некоторое время учеба отошла для меня на последний план: из школьного отличника-ботаника я превратился в типичного студента-раздолбая, руководствующегося принципом «от сессии до сессии живут студенты весело». К пятому курсу стало очевидно, что работать по специальности я не хочу, а чем заниматься дальше, было совершенно непонятно. Что касается IT и программирования, до появления Хекслета и других онлайн-школ оставалось еще несколько лет, существовали лишь офлайн-курсы вроде «Специалиста» при МГТУ имени Баумана, которые стоили как крыло Боинга.
В итоге я принял, наверное, самое спорное решение в своей жизни: решил попробовать себя в новой и нехарактерной для себя деятельности — юриспруденции. Эх, знал бы я тогда, что этот эксперимент растянется на долгие 13 лет.
Внутренний диалог и решение все же пойти в IT
Первые годы работы юристом все складывалось хорошо, моя новая деятельность мне нравилась, было интересно разбираться, как функционирует государство и бизнес. Про IT я тогда не думал.
Через несколько лет ситуация стала меняться не в лучшую сторону. Работа становилась все менее интересной и все больше рутинной. Я занимался одним и тем же, но не пытался что-то изменить, например, перейти в другую компанию, так как понимал, что там будет то же самое. Пришло понимание, что я трачу драгоценные годы жизни на дело, которое мне неинтересно, не приносит никакой радости и удовлетворения.
Летом 2021 года окончательно стало ясно, что пора что-то менять. Незадолго до планируемого увольнения я взял отпуск и мы с женой поехали на море. Там она произнесла фразу: «К концу отпуска ты поймешь, что делать дальше». Далее в моей голове раз за разом происходил примерно следующий диалог:
— Так, я уволюсь и найду работу в другой компании. Но ведь глобально ничего не поменяется, я буду заниматься тем же самым.
— Вот бы перейти вообще в другую профессию, чтобы делать что-то интересное и нужное, чтобы у меня снова горели глаза.
— Но я ведь ничего больше не умею делать…
— А что если попробовать изучить что-то новое?
— Но что? Чтобы это было интересным и востребованным, приносило нормальный доход, нравилось мне и у меня была склонность к этому?
Скоро мне на глаза попалась реклама курсов по разработке компьютерных игр. В голове что-то переключилось и мне стало ясно, в каком направлении двигаться.
Я воодушевился и стал изучать информацию. Понял, что геймдев — не лучший выбор для входа в IT по причине меньшей востребованности и большей сложности. Чаще всего для старта советовали фронтенд или программирование на Python. Я стал самостоятельно пробовать и то, и другое. Проходил курсы на Sololearn, какие-то уроки в интернете, бесплатные тренажеры на HTML Academy, читал статьи, смотрел видео на YouTube.
Это происходило бессистемно — было очевидно, что таким путем я своей цели не достигну. Нужно было определяться со школой программирования. Курсы от школ, названия которых у всех на слуху, меня отталкивали своим откровенно инфоцыганским маркетингом из серии: «Программирование это легко! Программистом может стать каждый! Через 3-6 месяцев у вас будет высокооплачиваемая работа!». Весь мой жизненный опыт подсказывал, что это обман.
Через некоторое время я увидел положительный отзыв о Хекслете — мне понравился честный подход, что путь предстоит долгий и сложный, и до конца дойдут не все. Я решил попробовать.
Учеба на Хекслете и проекты
В октябре 2021 года я начал проходить бесплатный курс «Введение в программирование», всем рекомендую его пройти. Благодаря ему я окончательно понял, что хочу учиться только на Хекслете. Во-первых, на курсе очень хорошо объясняют основы программирования: переменные, функции, условные операторы, циклы, рекурсия. Во-вторых, там очень крутые практические задания — сложные для тех, кто только начинает, но не настолько сложные, чтобы их вообще невозможно было сделать. Навсегда запомню свои ощущения от решения заданий по развороту строки (без использования встроенных методов, естественно) или по определению, является ли число простым. Сейчас такие задачки вызывают ностальгическую улыбку, но в то время это был для меня настоящий вызов.
После завершения вводного курса я остановил свой выбор на профессии «Фронтенд-разработчик». Выбрал ее, так как еще со школы немного знал HTML и CSS — решил, что это мне немного поможет, так как не придется начинать с самого нуля.
Я учился в формате группового обучения, моим наставником был Геннадий Зинченко — огромнейшее ему спасибо! Могу отметить следующие плюсы Хекслета:
-
Четкая, структурированная программа обучения. В начале пути не знаешь, что именно изучать и в какой последовательности. В интернете много роликов, книг и курсов, но крайне важно остановиться на чем-то одном и планомерно двигаться по выбранному маршруту, иначе будешь перескакивать с одного курса на другой, а КПД будет стремиться к нулю.
-
Практика после каждого урока. Программирование — это практический навык. Невозможно стать программистом, просто читая книги или смотря ролики на YouTube. Это как учиться езде на велосипеде по видео или книгам. Пока своей головой и руками несколько раз не сделаешь, материал не усвоится.
-
Возможность учиться в группе с наставником: он делает код-ревью всех проектов, после которых код меняется до неузнаваемости. А еще благодаря еженедельным вебинарам происходит дополнительное погружение в профессию. Ты не варишься в собственному соку, а видишь перед собой живого настоящего разработчика — он когда-то уже прошел путь, который ты проходишь прямо сейчас, это дополнительно мотивирует.
Я с самого начала обучения настраивался на прохождение всей профессии, чтобы получить заветный сертификат и участвовать в карьерном треке, поэтому выполнил все четыре проекта в профессии.
Проекты, кроме непосредственно программирования, затрагивают и другие крайне важные аспекты, такие как работа в терминале, работа с Git, настройка локального окружения и локальный запуск проекта, запуск тестов и линтера, CI/CD, деплой и т. д.
Больше всего понравился и запомнился финальный, четвертый проект. Если на написание самого первого, «Игры разума», ушло шесть дней неспешной работы и примерно столько же на устранение замечаний, то выпускной проект занял почти четыре недели ежедневного труда и около двух недель на доработку и внесение всех правок.
Читайте также:
Стоит ли учить JavaScript: перспективы, ситуация на рынке труда, мнения экспертов
Дополнительные источники знаний и опенсорс
Чаще всего мне хватало материалов Хекслета. Если же их все-таки оказывалось недостаточно, то обычно я обращался к официальной документации и к сайту learn.javascript. Если и там не находил ответ, то начинал гуглить все подряд. Большой плюс чтения документации в том, что это позволяет подтянуть английский язык.
Я смотрел много роликов на YouTube. Могу выделить свой любимый канал — Ulbi TV. Тут есть и отличные обучающие видео, и записи реальных собеседований, и разбор вопросов и задач, встречающихся на собеседованиях. Еще могу выделить канал Сергея Немчинского: очень нравится его подход к обучению.
Также я участвовал в опенсорс-проектах Хекслета. Когда я начинал учиться, существовала гарантированная оплачиваемая стажировка в Ростелекоме для выпускников, а одним из их требований было три пулл-реквеста в опенсорсe. К моменту завершения мною четвертого проекта в сентябре 2022 года они приостановили набор стажеров, но несколько пулл-реквестов я все же сделал. Считаю, что это отличная практика по реальной работе с гитом: ее сложно получить, когда работаешь над собственным проектом и пушишь только в свой репозиторий, поэтому ее ни в коем случае не надо игнорировать.
Поиск работы и первый оффер в крупной компании
Я много раз слышал мнение, что самое сложное в IT — это найти первую работу. К сожалению, это действительно так.
Я попытался найти работу после завершения второго проекта, но получил отказ — для джуна у меня было слишком мало знаний. После этого я решил сосредоточиться на учебе — завершил профессию, получил сертификаты, прошел опенсорс и сделал три пулл-реквеста. Дальше тянуть было нельзя — я создал резюме на hh.ru и Хабре, обновил на Hexlet CV и стал готовиться к собеседованиям.
Я отправил около ста откликов. Это немного, но к каждому я писал уникальное сопроводительное письмо. Результат: ни одного приглашения на собеседования, три тестовых задания, все остальное или шаблонные отказы, или просто игнор. Это был непростой период в жизни. Я не собирался сдаваться и опускать руки, но чувство тревоги и неопределенности преследовало меня 24 часа в сутки.
И тут случилось событие, после которого все круто изменилось в лучшую сторону — сработал Карьерный трек Хекслета! Хочу еще раз поблагодарить Алису и моего тимлида Антона, который нашел меня на Хекслете.
Сначала был короткий созвон-знакомство, я рассказал о себе и своей учебе на Хекслете. Далее наступил черед собеседований. Технических собеседований было два: первое проводил сам Антон, оно длилось 30-40 минут. Помню его смутно, вопросы были вроде: что такое DOM и BOM, зачем вообще нужен DOM, чем отличаются теги и , чем отличается git merge от git rebase.
На следующий день состоялся основной этап технического собеседования — его проводили тимлид и сеньор фронтенд-разработчик из других команд, работающих над проектом. Длилось оно полтора часа, которые показались мне вечностью. Вопросы были разделены на блоки: HTML, CSS, JS, Git, React. Хотели еще спрашивать по TypeScript, но я честно признался, что пока его не изучал. В конце был лайв-кодинг: нужно было решить задачу с двумя асинхронным функциями. От усталости и стресса я совсем забыл про async/await и решал через цепочку промисов, как в третьем проекте. В итоге, не сразу и не самым оптимальным образом, но я решил задачу, и на этом собеседование завершилось.
Я понимал, что не на все вопросы ответил хорошо, и поэтому думал, что никакого продолжения не последует. Каково же было мое удивление, когда на следующий день мне позвонила HR и сказала, что я понравился команде и компания готова сделать оффер! Я даже переспросил ее, не разыгрывает ли она меня :) Оффер я, конечно же, принял!
Это крупная российская компания с большим количеством продуктов. Я работаю в департаменте, который занимается развитием цифровых образовательных проектов, мы разрабатываем платформу для собственной школы программирования. В нашей команде, кроме меня, есть фуллстек-разработчик (он же и тимлид), еще один фронтенд-разработчик, два бэкендера и два тестировщика.
Стек: фронт — React и TypeScript, менеджер пакетов yarn, сборщик vite, собственная библиотека компонентов; бэк написан полностью на Java; взаимодействие фронтенда и бэкендом — GraphQL и Apollo. В качестве инструмента CI/CD — Jenkins.
Когда я только пришел в компанию, то занимался небольшими доработками уже готового функционала: например, нужно было изменить кнопки всех модальных окон на проекте, а также исправлял баги, не имеющие высокий приоритет. Сейчас начинаю заниматься разработкой нового функционала. Еще немного освоил написание UI-автотестов, они пишутся на Java-фреймворке, который является собственной разработкой компании. Этот фреймворк позволяет описывать тестовые сценарии на русском языке.
В первую очередь дополнительно начал изучать TypeScript — прошел курс на Code Basics. Также участвую в проекте «Хекслет Q&A», куда меня пригласили осенью. Готовлю ответы на часто задаваемые вопросы по своему стеку, вношу посильный вклад в развитие Хекслета.
Что нужно знать начинающим программистам
Если говорить о хард-скиллах, то помимо базы в виде JavaScript, React или другой библиотеки/фреймворка, желательно знать TypeScript, верстку и иметь готовность разбираться в чужом коде. Знаю, что многие студенты-фронтендеры не любят верстку, но, скорее всего, даже на крупных проектах не будет отдельно верстальщика и все придется делать фронтенд-разработчику. На собеседованиях всегда спрашивают про HTML и CSS.
То же самое и с умением разбираться в уже написанном коде. В первые месяцы именно он будет для вас источником истины и легальной шпаргалкой.
В отношении софт-скиллов, я бы выделил какую-то общую адекватность и умение обращаться за помощью, когда сам зашел в тупик.
Во время учебы может быть непросто. Если возникает проблема, что-то не получается или не работает, то надо понять для себя, что так и должно быть. Программирование — это и есть поиск решений и выходов из сложных ситуаций. Надо просто продолжать делать до тех пор, пока не начнет работать.
Если же прям опускаются руки, то можно попробовать переключиться на что-то другое. Например, порешать задачки на Codewars, сделать не очень сложное испытание, пройти другой урок в текущем курсе или даже начать другой курс. Смысл в том, чтобы сделать что-то, что получится. Организм получит свои порцию дофамина от достигнутой цели, и текущая проблема будет выглядеть уже не столь критичной.
Всем желаю успехов!
Читайте также:
8 самых востребованных языков программирования в 2023 году
<!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 18:46:27 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="-ezob0JEAKH4SJ3Yc7AZc67na3kr6ewxOdKkQdoR9e0WPSNYsDqtwU4LuUB_v-kEbu5G0yPeEpOEMj4ViBYSgw";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="Информационный материал в блоге Хекслета: Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете (категория: Истории успеха). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/moy-dolgiy-put-vo-frontend-razrabotku">
<meta property="og:title" content="Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете (Истории успеха) | Блог Хекслета">
<meta property="og:description" content="Информационный материал в блоге Хекслета: Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете (категория: Истории успеха). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе Хекслет.">
<meta property="og:image" content="https://ru.hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="LVTK_ubzsRBa-p_AHOArtFsOFnCyWkL3DyW6bs3gokzChQHJFI0ccOy5u1gQ79vDmwc72rptvFWyxSA6n-dFIg" />
<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="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg"/><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/eyJfcmFpbHMiOnsiZGF0YSI6NDAzNCwicHVyIjoiYmxvYl9pZCJ9fQ==--ba516ea9573bdfcd1d21e2aa0fff8818561828f2/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Typing-bro.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/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.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="/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-26T18:46:27.272Z","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":"wbz1oaYzXUNN2eIEnpVp0LAm_sogFTHt9AXMTGeKP-oubT6WVE3wI_uaxpySmpmncC_TYCgiz09J5VYYNY3YhA","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Кирилл Маркеев","id":394076,"is_tutor":false},"tags":[{"id":633,"slug":"javascript","name":"JavaScript"}],"id":2318,"title":"Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете","slug":"moy-dolgiy-put-vo-frontend-razrabotku","state":"published","summary":"Меня зовут Кирилл, мне 37 лет. Я родился в Казахстане, в Алма-Ате, а после школы переехал в Москву. Когда я только начинал учиться на Хекслете, я с большим интересом и надеждой читал истории успеха других ребят — мечтал, что когда-нибудь обязательно напишу свою. И вот, кажется, это время настало!","votes_count":38,"created_at":"2023-03-15T08:32:09.836Z","published_at":"2023-03-15T09:58:16.538Z","body":"**Всем привет! Меня зовут Кирилл, мне 37 лет. Я родился в Казахстане, в Алма-Ате, а после школы переехал в Москву. Когда я только начинал учиться на Хекслете, я с большим интересом и надеждой читал истории успеха других ребят — мечтал, что когда-нибудь обязательно напишу свою. И вот, кажется, это время настало!**\r\n\r\n\r\n> Профиль Кирилла на Хекслете со всеми пройденными курсами можно посмотреть [здесь](https://ru.hexlet.io/u/kirillmarkeyev), код выполненных проектов — на [GitHub](https://github.com/kirillmarkeyev)\r\n\r\nВ IT я пришел в достаточно зрелом возрасте, но компьютеры мне нравились с раннего детства. Эта любовь началась еще до школы, лет в шесть, с книжки «А я был в компьютерном городе», которую я перечитал не один десяток раз.\r\n\r\nВ первом классе я ходил на кружок информатики — там я вживую познакомился с компьютерами и программированием. Помню черно-белые мониторы (цветной был только у преподавателей), программу для рисования наподобие Paint и игры, которые тогда мне казались сложными. Еще нас учили писать небольшие программки на Basic. Ощущения от информатики были такие: «Это все дико круто и интересно, но уж очень непонятно». В целом, с тех пор мало что поменялось.\r\n\r\n## Содержание\n\n## Страх перед программированием и сомнительные решения\r\n\r\nВ школе я учился хорошо. Любимыми предметами были физика, информатика и астрономия. Я участвовал в олимпиадах и конкурсах научных проектов по физике, чем сильно удивлял другие школы — наша школа была гуманитарной, с углубленным изучением английского языка.\r\n\r\nНа информатике мы проходили Паскаль — именно тогда, несмотря на любовь к компьютерам и технике, мне стало казаться, что программирование для меня слишком сложно. Однако с подачи друга и одноклассника я освоил HTML и CSS. В начале двухтысячных не было социальных сетей: чтобы показать всем свою айтишную продвинутость, было модно иметь домашнюю страничку на каком-нибудь бесплатном хостинге вроде narod.ru. Верстка в основном делалась на таблицах, а внешний вид часто прописывали не в CSS, а прямо в атрибутах тегов. JavaScript для меня тогда был чем-то просто запредельным.\r\n\r\n::programs\r\n\r\nВ выпускном классе я осознал, что хочу поступать в технический вуз на что-то связанное с компьютерами, электроникой или телекоммуникациями (программирования я побаивался). Мы с другом поставили себе амбициозную цель — поступить в Москву. Для меня принципиально было поступить на бюджет, но с гражданством Казахстана это было сложно — лишь несколько вузов предоставляли квоты для граждан СНГ, позволяя им поступать на общих основаниях с гражданами России. В итоге я оказался в числе студентов Московского государственного строительного университета.\r\n\r\nСначала я испытал эйфорию от того, что смог осуществить свою цель: поступил в московский вуз на прикладную математику. Однако скоро пришло понимание, что это совсем не то, о чем я мечтал. У нас было много сопромата, теоретической механики и других строительных дисциплин, но совсем мало интересных мне предметов. Например, на программировании мы проходили Фортран — чуть ли не первый язык высокого уровня, который появился задолго до С и до сих пор используется для математических и инженерных вычислений. Но все сводилось к переписыванию кода из методички, подстановке своих аргументов, запуске в IDE и демонстрации результата преподавателю. Любой бесплатный курс на [Code Basics](https://code-basics.com/ru) дает несравнимо больше!\r\n\r\nЧерез некоторое время учеба отошла для меня на последний план: из школьного отличника-ботаника я превратился в типичного студента-раздолбая, руководствующегося принципом «от сессии до сессии живут студенты весело». К пятому курсу стало очевидно, что работать по специальности я не хочу, а чем заниматься дальше, было совершенно непонятно. Что касается IT и программирования, до появления Хекслета и других онлайн-школ оставалось еще несколько лет, существовали лишь офлайн-курсы вроде «Специалиста» при МГТУ имени Баумана, которые стоили как крыло Боинга.\r\n\r\nВ итоге я принял, наверное, самое спорное решение в своей жизни: решил попробовать себя в новой и нехарактерной для себя деятельности — юриспруденции. Эх, знал бы я тогда, что этот эксперимент растянется на долгие 13 лет.\r\n\r\n::posts\r\n\r\n## Внутренний диалог и решение все же пойти в IT\r\n\r\nПервые годы работы юристом все складывалось хорошо, моя новая деятельность мне нравилась, было интересно разбираться, как функционирует государство и бизнес. Про IT я тогда не думал.\r\n\r\nЧерез несколько лет ситуация стала меняться не в лучшую сторону. Работа становилась все менее интересной и все больше рутинной. Я занимался одним и тем же, но не пытался что-то изменить, например, перейти в другую компанию, так как понимал, что там будет то же самое. Пришло понимание, что я трачу драгоценные годы жизни на дело, которое мне неинтересно, не приносит никакой радости и удовлетворения.\r\n\r\nЛетом 2021 года окончательно стало ясно, что пора что-то менять. Незадолго до планируемого увольнения я взял отпуск и мы с женой поехали на море. Там она произнесла фразу: «К концу отпуска ты поймешь, что делать дальше». Далее в моей голове раз за разом происходил примерно следующий диалог:\r\n\r\n*— Так, я уволюсь и найду работу в другой компании. Но ведь глобально ничего не поменяется, я буду заниматься тем же самым.*\r\n\r\n*— Вот бы перейти вообще в другую профессию, чтобы делать что-то интересное и нужное, чтобы у меня снова горели глаза.*\r\n\r\n*— Но я ведь ничего больше не умею делать…*\r\n\r\n*— А что если попробовать изучить что-то новое?*\r\n\r\n*— Но что? Чтобы это было интересным и востребованным, приносило нормальный доход, нравилось мне и у меня была склонность к этому?*\r\n\r\nСкоро мне на глаза попалась реклама курсов по разработке компьютерных игр. В голове что-то переключилось и мне стало ясно, в каком направлении двигаться.\r\n\r\nЯ воодушевился и стал изучать информацию. Понял, что геймдев — не лучший выбор для входа в IT по причине меньшей востребованности и большей сложности. Чаще всего для старта советовали фронтенд или программирование на Python. Я стал самостоятельно пробовать и то, и другое. Проходил курсы на Sololearn, какие-то уроки в интернете, бесплатные тренажеры на HTML Academy, читал статьи, смотрел видео на YouTube.\r\n\r\nЭто происходило бессистемно — было очевидно, что таким путем я своей цели не достигну. Нужно было определяться со школой программирования. Курсы от школ, названия которых у всех на слуху, меня отталкивали своим откровенно инфоцыганским маркетингом из серии: «Программирование это легко! Программистом может стать каждый! Через 3-6 месяцев у вас будет высокооплачиваемая работа!». Весь мой жизненный опыт подсказывал, что это обман.\r\n\r\nЧерез некоторое время я увидел положительный отзыв о Хекслете — мне понравился честный подход, что путь предстоит долгий и сложный, и до конца дойдут не все. Я решил попробовать.\r\n\r\n## Учеба на Хекслете и проекты\r\n\r\nВ октябре 2021 года я начал проходить бесплатный курс «[Введение в программирование](https://ru.hexlet.io/courses/introduction_to_programming?promo_name=courses&promo_position=article-body&promo_type=link)», всем рекомендую его пройти. Благодаря ему я окончательно понял, что хочу учиться только на Хекслете. Во-первых, на курсе очень хорошо объясняют основы программирования: переменные, функции, условные операторы, циклы, рекурсия. Во-вторых, там очень крутые практические задания — сложные для тех, кто только начинает, но не настолько сложные, чтобы их вообще невозможно было сделать. Навсегда запомню свои ощущения от решения заданий по развороту строки (без использования встроенных методов, естественно) или по определению, является ли число простым. Сейчас такие задачки вызывают ностальгическую улыбку, но в то время это был для меня настоящий вызов.\r\n\r\nПосле завершения вводного курса я остановил свой выбор на профессии «[Фронтенд-разработчик](https://ru.hexlet.io/programs/frontend?promo_name=prof-frontend&promo_position=article-body&promo_type=link)». Выбрал ее, так как еще со школы немного знал HTML и CSS — решил, что это мне немного поможет, так как не придется начинать с самого нуля.\r\n\r\nЯ учился в формате группового обучения, моим наставником был Геннадий Зинченко — огромнейшее ему спасибо! Могу отметить следующие плюсы Хекслета:\r\n\r\n1. **Четкая, структурированная программа обучения.** В начале пути не знаешь, что именно изучать и в какой последовательности. В интернете много роликов, книг и курсов, но крайне важно остановиться на чем-то одном и планомерно двигаться по выбранному маршруту, иначе будешь перескакивать с одного курса на другой, а КПД будет стремиться к нулю.\r\n2. **Практика после каждого урока.** Программирование — это практический навык. Невозможно стать программистом, просто читая книги или смотря ролики на YouTube. Это как учиться езде на велосипеде по видео или книгам. Пока своей головой и руками несколько раз не сделаешь, материал не усвоится.\r\n3. **Возможность учиться в группе с наставником:** он делает код-ревью всех проектов, после которых код меняется до неузнаваемости. А еще благодаря еженедельным вебинарам происходит дополнительное погружение в профессию. Ты не варишься в собственному соку, а видишь перед собой живого настоящего разработчика — он когда-то уже прошел путь, который ты проходишь прямо сейчас, это дополнительно мотивирует.\r\n\r\nЯ с самого начала обучения настраивался на прохождение всей профессии, чтобы получить заветный сертификат и участвовать в карьерном треке, поэтому выполнил все четыре проекта в профессии.\r\n\r\nПроекты, кроме непосредственно программирования, затрагивают и другие крайне важные аспекты, такие как работа в терминале, работа с Git, настройка локального окружения и локальный запуск проекта, запуск тестов и линтера, CI/CD, деплой и т. д.\r\n\r\nБольше всего понравился и запомнился финальный, четвертый проект. Если на написание самого первого, «[Игры разума](https://ru.hexlet.io/programs/frontend/projects/44)», ушло шесть дней неспешной работы и примерно столько же на устранение замечаний, то выпускной проект занял почти четыре недели ежедневного труда и около двух недель на доработку и внесение всех правок.\r\n\r\n\r\n> ### Читайте также: \r\n> Стоит ли учить [JavaScript: перспективы, ситуация на рынке труда, мнения экспертов](https://ru.hexlet.io/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov?promo_name=blog&promo_position=article-body&promo_type=link)\r\n\r\n## Дополнительные источники знаний и опенсорс\r\n\r\nЧаще всего мне хватало материалов Хекслета. Если же их все-таки оказывалось недостаточно, то обычно я обращался к официальной документации и к сайту [learn.javascript](https://learn.javascript.ru/). Если и там не находил ответ, то начинал гуглить все подряд. Большой плюс чтения документации в том, что это позволяет подтянуть английский язык.\r\n\r\nЯ смотрел много роликов на YouTube. Могу выделить свой любимый канал — [Ulbi TV](https://www.youtube.com/@UlbiTV). Тут есть и отличные обучающие видео, и записи реальных собеседований, и разбор вопросов и задач, встречающихся на собеседованиях. Еще могу выделить канал [Сергея Немчинского](https://www.youtube.com/@SergeyNemchinskiy): очень нравится его подход к обучению.\r\n\r\nТакже я участвовал в опенсорс-проектах Хекслета. Когда я начинал учиться, существовала гарантированная оплачиваемая стажировка в Ростелекоме для выпускников, а одним из их требований было три пулл-реквеста в опенсорсe. К моменту завершения мною четвертого проекта в сентябре 2022 года они приостановили набор стажеров, но несколько пулл-реквестов я все же сделал. Считаю, что это отличная практика по реальной работе с гитом: ее сложно получить, когда работаешь над собственным проектом и пушишь только в свой репозиторий, поэтому ее ни в коем случае не надо игнорировать.\r\n\r\n\r\n\r\n## Поиск работы и первый оффер в крупной компании\r\n\r\nЯ много раз слышал мнение, что самое сложное в IT — это найти первую работу. К сожалению, это действительно так.\r\n\r\nЯ попытался найти работу после завершения второго проекта, но получил отказ — для джуна у меня было слишком мало знаний. После этого я решил сосредоточиться на учебе — завершил профессию, получил сертификаты, прошел опенсорс и сделал три пулл-реквеста. Дальше тянуть было нельзя — я создал резюме на hh.ru и Хабре, обновил на Hexlet CV и стал готовиться к собеседованиям.\r\n\r\nЯ отправил около ста откликов. Это немного, но к каждому я писал уникальное сопроводительное письмо. Результат: ни одного приглашения на собеседования, три тестовых задания, все остальное или шаблонные отказы, или просто игнор. Это был непростой период в жизни. Я не собирался сдаваться и опускать руки, но чувство тревоги и неопределенности преследовало меня 24 часа в сутки.\r\n\r\nИ тут случилось событие, после которого все круто изменилось в лучшую сторону — сработал [Карьерный трек](https://career.hexlet.io/) Хекслета! Хочу еще раз поблагодарить Алису и моего тимлида Антона, который нашел меня на Хекслете.\r\n\r\nСначала был короткий созвон-знакомство, я рассказал о себе и своей учебе на Хекслете. Далее наступил черед собеседований. Технических собеседований было два: первое проводил сам Антон, оно длилось 30-40 минут. Помню его смутно, вопросы были вроде: что такое DOM и BOM, зачем вообще нужен DOM, чем отличаются теги <em> и <i>, чем отличается git merge от git rebase.\r\n\r\nНа следующий день состоялся основной этап технического собеседования — его проводили тимлид и сеньор фронтенд-разработчик из других команд, работающих над проектом. Длилось оно полтора часа, которые показались мне вечностью. Вопросы были разделены на блоки: HTML, CSS, JS, Git, React. Хотели еще спрашивать по TypeScript, но я честно признался, что пока его не изучал. В конце был лайв-кодинг: нужно было решить задачу с двумя асинхронным функциями. От усталости и стресса я совсем забыл про async/await и решал через цепочку промисов, как в третьем проекте. В итоге, не сразу и не самым оптимальным образом, но я решил задачу, и на этом собеседование завершилось.\r\n\r\nЯ понимал, что не на все вопросы ответил хорошо, и поэтому думал, что никакого продолжения не последует. Каково же было мое удивление, когда на следующий день мне позвонила HR и сказала, что я понравился команде и компания готова сделать оффер! Я даже переспросил ее, не разыгрывает ли она меня :) Оффер я, конечно же, принял!\r\n\r\nЭто крупная российская компания с большим количеством продуктов. Я работаю в департаменте, который занимается развитием цифровых образовательных проектов, мы разрабатываем платформу для собственной школы программирования. В нашей команде, кроме меня, есть фуллстек-разработчик (он же и тимлид), еще один фронтенд-разработчик, два бэкендера и два тестировщика.\r\n\r\nСтек: фронт — React и TypeScript, менеджер пакетов yarn, сборщик vite, собственная библиотека компонентов; бэк написан полностью на Java; взаимодействие фронтенда и бэкендом — GraphQL и Apollo. В качестве инструмента CI/CD — Jenkins.\r\n\r\nКогда я только пришел в компанию, то занимался небольшими доработками уже готового функционала: например, нужно было изменить кнопки всех модальных окон на проекте, а также исправлял баги, не имеющие высокий приоритет. Сейчас начинаю заниматься разработкой нового функционала. Еще немного освоил написание UI-автотестов, они пишутся на Java-фреймворке, который является собственной разработкой компании. Этот фреймворк позволяет описывать тестовые сценарии на русском языке.\r\n\r\nВ первую очередь дополнительно начал изучать TypeScript — прошел курс на Code Basics. Также участвую в проекте «[Хекслет Q&A](https://ru.hexlet.io/qna)», куда меня пригласили осенью. Готовлю ответы на часто задаваемые вопросы по своему стеку, вношу посильный вклад в развитие Хекслета.\r\n\r\n\r\n\r\n## Что нужно знать начинающим программистам\r\n\r\nЕсли говорить о хард-скиллах, то помимо базы в виде JavaScript, React или другой библиотеки/фреймворка, желательно знать TypeScript, верстку и иметь готовность разбираться в чужом коде. Знаю, что многие студенты-фронтендеры не любят верстку, но, скорее всего, даже на крупных проектах не будет отдельно верстальщика и все придется делать фронтенд-разработчику. На собеседованиях всегда спрашивают про HTML и CSS.\r\n\r\nТо же самое и с умением разбираться в уже написанном коде. В первые месяцы именно он будет для вас источником истины и легальной шпаргалкой.\r\n\r\nВ отношении софт-скиллов, я бы выделил какую-то общую адекватность и умение обращаться за помощью, когда сам зашел в тупик.\r\n\r\nВо время учебы может быть непросто. Если возникает проблема, что-то не получается или не работает, то надо понять для себя, что так и должно быть. Программирование — это и есть поиск решений и выходов из сложных ситуаций. Надо просто продолжать делать до тех пор, пока не начнет работать.\r\n\r\nЕсли же прям опускаются руки, то можно попробовать переключиться на что-то другое. Например, порешать задачки на Codewars, сделать не очень сложное испытание, пройти другой урок в текущем курсе или даже начать другой курс. Смысл в том, чтобы сделать что-то, что получится. Организм получит свои порцию дофамина от достигнутой цели, и текущая проблема будет выглядеть уже не столь критичной.\r\n\r\nВсем желаю успехов!\r\n\r\n\r\n> ### Читайте также: \r\n> [8 самых востребованных языков программирования в 2023 году](https://ru.hexlet.io/blog/posts/8-samyh-vostrebovannyh-yazykov-programmirovaniya-v-2023-godu?promo_name=blog&promo_position=article-body&promo_type=link)","reading_time":9,"url":"https://ru.hexlet.io/blog/posts/moy-dolgiy-put-vo-frontend-razrabotku","cover_thumb_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbMTAwLDUwXSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--f0d4342fcdbdffa15c37fb02bfb423ac88d5c0c9/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg","cover_main_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":2196,"title":"Как Хекслет подарил мне билет в разработку","slug":"kak-hexlet-podaril-mne-bilet-v-razrabotku","summary":"Меня зовут Денис, мне 30 лет. Расскажу, как я освежил свою карьеру, сменив строительство на IT, переехал благодаря этому в другой город, выиграл грант на обучение в Хекслете, а также как меня взяли на работу без тестового дня. ","created_at":"2022-12-27T10:36:40.843Z","published_at":"2023-08-16T13:38:41.552Z","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ3NSwicHVyIjoiYmxvYl9pZCJ9fQ==--51ba81ae35471efa635237d4074d016fdc6af056/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/_%D0%94%D0%B5%D0%BD%D0%B8%D1%81%20%D0%90%D0%BC%D0%B8%D0%BD%D0%BE%D0%B2.png"},{"model_name":"BlogPost","id":2307,"title":"Как я стал фронтенд-разработчиком в крупной американской компании","slug":"success-story-stepan-frontend","summary":"Всем привет! Меня зовут Степан, мне 33 года. Родился я в Хабаровске, но большую часть своей жизни прожил в Санкт-Петербурге, последний год нахожусь в Турции. Сегодня я решил рассказать о своем путешествии в мир программирования и о том, как Хекслет помог мне стать фронтенд-разработчиком.","created_at":"2023-03-11T08:24:59.155Z","published_at":"2023-05-17T13:46:55.530Z","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1OSwicHVyIjoiYmxvYl9pZCJ9fQ==--72902aeee7513019f7705e33fdcd728956ed617e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0_%D1%81%D1%82%D0%B5%D0%BF%D0%B0%D0%BD_%D0%BA%D0%BE%D1%80%D1%88%D1%83%D0%BD%D0%BE%D0%B2_.png"},{"model_name":"BlogPost","id":2288,"title":"Решился — и стал бэкенд-разработчиком. Как Хекслет помог мне сменить профессию и справиться с трудностями","slug":"reshilsya-i-stal-backend-razrabotchikom","summary":"Меня зовут Сергей, и я хочу поделиться своей историей. Мне 33 года, живу в городе Фетхие в Турции и работаю бэкенд-разработчиком на Ruby. Буквально год назад я практически ничего не знал о программировании и веб-разработке, но желание сменить профессию и попробовать себя в чем-то новом привело меня в эту точку. Как говорится, «You only live once!».","created_at":"2023-03-03T09:56:14.987Z","published_at":"2023-03-03T10:30:45.533Z","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":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":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":43,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":140,"duration_in_months":12},"id":74,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","subtitle":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","subtitle_for_lists":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","locale":"ru","current":true,"duration_in_months_text":"12 месяцев","stack_slug":"fullstack-javascript","price_text":"от 7 934 ₽","duration_text":"12 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.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"}]},"url":"/blog/posts/moy-dolgiy-put-vo-frontend-razrabotku","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":"Кирилл Маркеев","name":"Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете","datePublished":"2023-03-15T09:58:16.538Z","headline":"Меня зовут Кирилл, мне 37 лет. Я родился в Казахстане, в Алма-Ате, а после школы переехал в Москву. Когда я только начинал учиться на Хекслете, я с большим интересом и надеждой читал истории успеха других ребят — мечтал, что когда-нибудь обязательно напишу свою. И вот, кажется, это время настало!","image":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":38}]}</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/moy-dolgiy-put-vo-frontend-razrabotku","name":"Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/success">Истории успеха</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Мой долгий путь во фронтенд-разработку: через строительный вуз, юриспруденцию и усердную учебу на Хекслете</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="JavaScript"><span class="m_5add502a mantine-Badge-label">JavaScript</span></button></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">15 марта 2023 г.</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>9 минут</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>38</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="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--71f890be67661288c0d847271b6514a13de31a2e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D0%B8%D1%81%D1%82%20%D1%83%D1%81%20%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%20%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%B5%D0%B2-1%20-01.jpg" 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>Всем привет! Меня зовут Кирилл, мне 37 лет. Я родился в Казахстане, в Алма-Ате, а после школы переехал в Москву. Когда я только начинал учиться на Хекслете, я с большим интересом и надеждой читал истории успеха других ребят — мечтал, что когда-нибудь обязательно напишу свою. И вот, кажется, это время настало!</strong></p>
<blockquote>
<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/u/kirillmarkeyev" 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://github.com/kirillmarkeyev" rel="noopener noreferrer" target="_blank">GitHub</a></p>
</blockquote>
<p>В IT я пришел в достаточно зрелом возрасте, но компьютеры мне нравились с раннего детства. Эта любовь началась еще до школы, лет в шесть, с книжки «А я был в компьютерном городе», которую я перечитал не один десяток раз.</p>
<p>В первом классе я ходил на кружок информатики — там я вживую познакомился с компьютерами и программированием. Помню черно-белые мониторы (цветной был только у преподавателей), программу для рисования наподобие Paint и игры, которые тогда мне казались сложными. Еще нас учили писать небольшие программки на Basic. Ощущения от информатики были такие: «Это все дико круто и интересно, но уж очень непонятно». В целом, с тех пор мало что поменялось.</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">Внутренний диалог и решение все же пойти в IT</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-6">Дополнительные источники знаний и опенсорс</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Поиск работы и первый оффер в крупной компании</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">Что нужно знать начинающим программистам</a></li>
</ul>
<h2 id="heading-2-2">Страх перед программированием и сомнительные решения</h2>
<p>В школе я учился хорошо. Любимыми предметами были физика, информатика и астрономия. Я участвовал в олимпиадах и конкурсах научных проектов по физике, чем сильно удивлял другие школы — наша школа была гуманитарной, с углубленным изучением английского языка.</p>
<p>На информатике мы проходили Паскаль — именно тогда, несмотря на любовь к компьютерам и технике, мне стало казаться, что программирование для меня слишком сложно. Однако с подачи друга и одноклассника я освоил HTML и CSS. В начале двухтысячных не было социальных сетей: чтобы показать всем свою айтишную продвинутость, было модно иметь домашнюю страничку на каком-нибудь бесплатном хостинге вроде narod.ru. Верстка в основном делалась на таблицах, а внешний вид часто прописывали не в CSS, а прямо в атрибутах тегов. JavaScript для меня тогда был чем-то просто запредельным.</p>
<style data-mantine-styles="inline">.__m__-_R_jderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_jderddmiub_{--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_jderddmiub_" 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/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-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/fullstack-javascript?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">12 месяцев</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">Fullstack-разработчик на Node.js</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите JavaScript, Node.js, Fastify и 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/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Fullstack-разработчик на Node.js" 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">от 7 934 ₽</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="/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>В выпускном классе я осознал, что хочу поступать в технический вуз на что-то связанное с компьютерами, электроникой или телекоммуникациями (программирования я побаивался). Мы с другом поставили себе амбициозную цель — поступить в Москву. Для меня принципиально было поступить на бюджет, но с гражданством Казахстана это было сложно — лишь несколько вузов предоставляли квоты для граждан СНГ, позволяя им поступать на общих основаниях с гражданами России. В итоге я оказался в числе студентов Московского государственного строительного университета.</p>
<p>Сначала я испытал эйфорию от того, что смог осуществить свою цель: поступил в московский вуз на прикладную математику. Однако скоро пришло понимание, что это совсем не то, о чем я мечтал. У нас было много сопромата, теоретической механики и других строительных дисциплин, но совсем мало интересных мне предметов. Например, на программировании мы проходили Фортран — чуть ли не первый язык высокого уровня, который появился задолго до С и до сих пор используется для математических и инженерных вычислений. Но все сводилось к переписыванию кода из методички, подстановке своих аргументов, запуске в IDE и демонстрации результата преподавателю. Любой бесплатный курс на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://code-basics.com/ru" rel="noopener noreferrer" target="_blank">Code Basics</a> дает несравнимо больше!</p>
<p>Через некоторое время учеба отошла для меня на последний план: из школьного отличника-ботаника я превратился в типичного студента-раздолбая, руководствующегося принципом «от сессии до сессии живут студенты весело». К пятому курсу стало очевидно, что работать по специальности я не хочу, а чем заниматься дальше, было совершенно непонятно. Что касается IT и программирования, до появления Хекслета и других онлайн-школ оставалось еще несколько лет, существовали лишь офлайн-курсы вроде «Специалиста» при МГТУ имени Баумана, которые стоили как крыло Боинга.</p>
<p>В итоге я принял, наверное, самое спорное решение в своей жизни: решил попробовать себя в новой и нехарактерной для себя деятельности — юриспруденции. Эх, знал бы я тогда, что этот эксперимент растянется на долгие 13 лет.</p>
<style data-mantine-styles="inline">.__m__-_R_tderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_tderddmiub_{--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_tderddmiub_" 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-hexlet-podaril-mne-bilet-v-razrabotku"><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="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ3NSwicHVyIjoiYmxvYl9pZCJ9fQ==--51ba81ae35471efa635237d4074d016fdc6af056/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/_%D0%94%D0%B5%D0%BD%D0%B8%D1%81%20%D0%90%D0%BC%D0%B8%D0%BD%D0%BE%D0%B2.png" loading="lazy" alt="Как Хекслет подарил мне билет в разработку"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как Хекслет подарил мне билет в разработку</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Меня зовут Денис, мне 30 лет. Расскажу, как я освежил свою карьеру, сменив строительство на 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">16 августа 2023 г.<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/success-story-stepan-frontend"><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="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTQ1OSwicHVyIjoiYmxvYl9pZCJ9fQ==--72902aeee7513019f7705e33fdcd728956ed617e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0_%D1%81%D1%82%D0%B5%D0%BF%D0%B0%D0%BD_%D0%BA%D0%BE%D1%80%D1%88%D1%83%D0%BD%D0%BE%D0%B2_.png" 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">Всем привет! Меня зовут Степан, мне 33 года. Родился я в Хабаровске, но большую часть своей жизни...</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">17 мая 2023 г.<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/reshilsya-i-stal-backend-razrabotchikom"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Решился — и стал бэкенд-разработчиком. Как Хекслет помог мне сменить профессию и справиться с трудностями"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Решился — и стал бэкенд-разработчиком. Как Хекслет помог мне сменить профессию и справиться с трудностями</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Меня зовут Сергей, и я хочу поделиться своей историей. Мне 33 года, живу в городе Фетхие в Турции...</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">3 марта 2023 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-3">Внутренний диалог и решение все же пойти в IT</h2>
<p>Первые годы работы юристом все складывалось хорошо, моя новая деятельность мне нравилась, было интересно разбираться, как функционирует государство и бизнес. Про IT я тогда не думал.</p>
<p>Через несколько лет ситуация стала меняться не в лучшую сторону. Работа становилась все менее интересной и все больше рутинной. Я занимался одним и тем же, но не пытался что-то изменить, например, перейти в другую компанию, так как понимал, что там будет то же самое. Пришло понимание, что я трачу драгоценные годы жизни на дело, которое мне неинтересно, не приносит никакой радости и удовлетворения.</p>
<p>Летом 2021 года окончательно стало ясно, что пора что-то менять. Незадолго до планируемого увольнения я взял отпуск и мы с женой поехали на море. Там она произнесла фразу: «К концу отпуска ты поймешь, что делать дальше». Далее в моей голове раз за разом происходил примерно следующий диалог:</p>
<p><em>— Так, я уволюсь и найду работу в другой компании. Но ведь глобально ничего не поменяется, я буду заниматься тем же самым.</em></p>
<p><em>— Вот бы перейти вообще в другую профессию, чтобы делать что-то интересное и нужное, чтобы у меня снова горели глаза.</em></p>
<p><em>— Но я ведь ничего больше не умею делать…</em></p>
<p><em>— А что если попробовать изучить что-то новое?</em></p>
<p><em>— Но что? Чтобы это было интересным и востребованным, приносило нормальный доход, нравилось мне и у меня была склонность к этому?</em></p>
<p>Скоро мне на глаза попалась реклама курсов по разработке компьютерных игр. В голове что-то переключилось и мне стало ясно, в каком направлении двигаться.</p>
<p>Я воодушевился и стал изучать информацию. Понял, что геймдев — не лучший выбор для входа в IT по причине меньшей востребованности и большей сложности. Чаще всего для старта советовали фронтенд или программирование на Python. Я стал самостоятельно пробовать и то, и другое. Проходил курсы на Sololearn, какие-то уроки в интернете, бесплатные тренажеры на HTML Academy, читал статьи, смотрел видео на YouTube.</p>
<p>Это происходило бессистемно — было очевидно, что таким путем я своей цели не достигну. Нужно было определяться со школой программирования. Курсы от школ, названия которых у всех на слуху, меня отталкивали своим откровенно инфоцыганским маркетингом из серии: «Программирование это легко! Программистом может стать каждый! Через 3-6 месяцев у вас будет высокооплачиваемая работа!». Весь мой жизненный опыт подсказывал, что это обман.</p>
<p>Через некоторое время я увидел положительный отзыв о Хекслете — мне понравился честный подход, что путь предстоит долгий и сложный, и до конца дойдут не все. Я решил попробовать.</p>
<h2 id="heading-2-4">Учеба на Хекслете и проекты</h2>
<p>В октябре 2021 года я начал проходить бесплатный курс «<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/introduction_to_programming?promo_name=courses&promo_position=article-body&promo_type=link" rel="noopener noreferrer" target="_blank">Введение в программирование</a>», всем рекомендую его пройти. Благодаря ему я окончательно понял, что хочу учиться только на Хекслете. Во-первых, на курсе очень хорошо объясняют основы программирования: переменные, функции, условные операторы, циклы, рекурсия. Во-вторых, там очень крутые практические задания — сложные для тех, кто только начинает, но не настолько сложные, чтобы их вообще невозможно было сделать. Навсегда запомню свои ощущения от решения заданий по развороту строки (без использования встроенных методов, естественно) или по определению, является ли число простым. Сейчас такие задачки вызывают ностальгическую улыбку, но в то время это был для меня настоящий вызов.</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://ru.hexlet.io/programs/frontend?promo_name=prof-frontend&promo_position=article-body&promo_type=link" rel="noopener noreferrer" target="_blank">Фронтенд-разработчик</a>». Выбрал ее, так как еще со школы немного знал HTML и CSS — решил, что это мне немного поможет, так как не придется начинать с самого нуля.</p>
<p>Я учился в формате группового обучения, моим наставником был Геннадий Зинченко — огромнейшее ему спасибо! Могу отметить следующие плюсы Хекслета:</p>
<ol>
<li><strong>Четкая, структурированная программа обучения.</strong> В начале пути не знаешь, что именно изучать и в какой последовательности. В интернете много роликов, книг и курсов, но крайне важно остановиться на чем-то одном и планомерно двигаться по выбранному маршруту, иначе будешь перескакивать с одного курса на другой, а КПД будет стремиться к нулю.</li>
<li><strong>Практика после каждого урока.</strong> Программирование — это практический навык. Невозможно стать программистом, просто читая книги или смотря ролики на YouTube. Это как учиться езде на велосипеде по видео или книгам. Пока своей головой и руками несколько раз не сделаешь, материал не усвоится.</li>
<li><strong>Возможность учиться в группе с наставником:</strong> он делает код-ревью всех проектов, после которых код меняется до неузнаваемости. А еще благодаря еженедельным вебинарам происходит дополнительное погружение в профессию. Ты не варишься в собственному соку, а видишь перед собой живого настоящего разработчика — он когда-то уже прошел путь, который ты проходишь прямо сейчас, это дополнительно мотивирует.</li>
</ol>
<p>Я с самого начала обучения настраивался на прохождение всей профессии, чтобы получить заветный сертификат и участвовать в карьерном треке, поэтому выполнил все четыре проекта в профессии.</p>
<p>Проекты, кроме непосредственно программирования, затрагивают и другие крайне важные аспекты, такие как работа в терминале, работа с Git, настройка локального окружения и локальный запуск проекта, запуск тестов и линтера, CI/CD, деплой и т. д.</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://ru.hexlet.io/programs/frontend/projects/44" rel="noopener noreferrer" target="_blank">Игры разума</a>», ушло шесть дней неспешной работы и примерно столько же на устранение замечаний, то выпускной проект занял почти четыре недели ежедневного труда и около двух недель на доработку и внесение всех правок.</p>
<blockquote>
<h3 id="heading-3-5">Читайте также:</h3>
<p>Стоит ли учить <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov?promo_name=blog&promo_position=article-body&promo_type=link" rel="noopener noreferrer" target="_blank">JavaScript: перспективы, ситуация на рынке труда, мнения экспертов</a></p>
</blockquote>
<h2 id="heading-2-6">Дополнительные источники знаний и опенсорс</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://learn.javascript.ru/" rel="noopener noreferrer" target="_blank">learn.javascript</a>. Если и там не находил ответ, то начинал гуглить все подряд. Большой плюс чтения документации в том, что это позволяет подтянуть английский язык.</p>
<p>Я смотрел много роликов на YouTube. Могу выделить свой любимый канал — <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/@UlbiTV" rel="noopener noreferrer" target="_blank">Ulbi TV</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.youtube.com/@SergeyNemchinskiy" rel="noopener noreferrer" target="_blank">Сергея Немчинского</a>: очень нравится его подход к обучению.</p>
<p>Также я участвовал в опенсорс-проектах Хекслета. Когда я начинал учиться, существовала гарантированная оплачиваемая стажировка в Ростелекоме для выпускников, а одним из их требований было три пулл-реквеста в опенсорсe. К моменту завершения мною четвертого проекта в сентябре 2022 года они приостановили набор стажеров, но несколько пулл-реквестов я все же сделал. Считаю, что это отличная практика по реальной работе с гитом: ее сложно получить, когда работаешь над собственным проектом и пушишь только в свой репозиторий, поэтому ее ни в коем случае не надо игнорировать.</p>
<h2 id="heading-2-7">Поиск работы и первый оффер в крупной компании</h2>
<p>Я много раз слышал мнение, что самое сложное в IT — это найти первую работу. К сожалению, это действительно так.</p>
<p>Я попытался найти работу после завершения второго проекта, но получил отказ — для джуна у меня было слишком мало знаний. После этого я решил сосредоточиться на учебе — завершил профессию, получил сертификаты, прошел опенсорс и сделал три пулл-реквеста. Дальше тянуть было нельзя — я создал резюме на hh.ru и Хабре, обновил на Hexlet CV и стал готовиться к собеседованиям.</p>
<p>Я отправил около ста откликов. Это немного, но к каждому я писал уникальное сопроводительное письмо. Результат: ни одного приглашения на собеседования, три тестовых задания, все остальное или шаблонные отказы, или просто игнор. Это был непростой период в жизни. Я не собирался сдаваться и опускать руки, но чувство тревоги и неопределенности преследовало меня 24 часа в сутки.</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://career.hexlet.io/" rel="noopener noreferrer" target="_blank">Карьерный трек</a> Хекслета! Хочу еще раз поблагодарить Алису и моего тимлида Антона, который нашел меня на Хекслете.</p>
<p>Сначала был короткий созвон-знакомство, я рассказал о себе и своей учебе на Хекслете. Далее наступил черед собеседований. Технических собеседований было два: первое проводил сам Антон, оно длилось 30-40 минут. Помню его смутно, вопросы были вроде: что такое DOM и BOM, зачем вообще нужен DOM, чем отличаются теги <em> и <i>, чем отличается git merge от git rebase.</i></em></p><em><i>
<p>На следующий день состоялся основной этап технического собеседования — его проводили тимлид и сеньор фронтенд-разработчик из других команд, работающих над проектом. Длилось оно полтора часа, которые показались мне вечностью. Вопросы были разделены на блоки: HTML, CSS, JS, Git, React. Хотели еще спрашивать по TypeScript, но я честно признался, что пока его не изучал. В конце был лайв-кодинг: нужно было решить задачу с двумя асинхронным функциями. От усталости и стресса я совсем забыл про async/await и решал через цепочку промисов, как в третьем проекте. В итоге, не сразу и не самым оптимальным образом, но я решил задачу, и на этом собеседование завершилось.</p>
<p>Я понимал, что не на все вопросы ответил хорошо, и поэтому думал, что никакого продолжения не последует. Каково же было мое удивление, когда на следующий день мне позвонила HR и сказала, что я понравился команде и компания готова сделать оффер! Я даже переспросил ее, не разыгрывает ли она меня :) Оффер я, конечно же, принял!</p>
<p>Это крупная российская компания с большим количеством продуктов. Я работаю в департаменте, который занимается развитием цифровых образовательных проектов, мы разрабатываем платформу для собственной школы программирования. В нашей команде, кроме меня, есть фуллстек-разработчик (он же и тимлид), еще один фронтенд-разработчик, два бэкендера и два тестировщика.</p>
<p>Стек: фронт — React и TypeScript, менеджер пакетов yarn, сборщик vite, собственная библиотека компонентов; бэк написан полностью на Java; взаимодействие фронтенда и бэкендом — GraphQL и Apollo. В качестве инструмента CI/CD — Jenkins.</p>
<p>Когда я только пришел в компанию, то занимался небольшими доработками уже готового функционала: например, нужно было изменить кнопки всех модальных окон на проекте, а также исправлял баги, не имеющие высокий приоритет. Сейчас начинаю заниматься разработкой нового функционала. Еще немного освоил написание UI-автотестов, они пишутся на Java-фреймворке, который является собственной разработкой компании. Этот фреймворк позволяет описывать тестовые сценарии на русском языке.</p>
<p>В первую очередь дополнительно начал изучать TypeScript — прошел курс на Code Basics. Также участвую в проекте «<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/qna" rel="noopener noreferrer" target="_blank">Хекслет Q&A</a>», куда меня пригласили осенью. Готовлю ответы на часто задаваемые вопросы по своему стеку, вношу посильный вклад в развитие Хекслета.</p>
<h2 id="heading-2-8">Что нужно знать начинающим программистам</h2>
<p>Если говорить о хард-скиллах, то помимо базы в виде JavaScript, React или другой библиотеки/фреймворка, желательно знать TypeScript, верстку и иметь готовность разбираться в чужом коде. Знаю, что многие студенты-фронтендеры не любят верстку, но, скорее всего, даже на крупных проектах не будет отдельно верстальщика и все придется делать фронтенд-разработчику. На собеседованиях всегда спрашивают про HTML и CSS.</p>
<p>То же самое и с умением разбираться в уже написанном коде. В первые месяцы именно он будет для вас источником истины и легальной шпаргалкой.</p>
<p>В отношении софт-скиллов, я бы выделил какую-то общую адекватность и умение обращаться за помощью, когда сам зашел в тупик.</p>
<p>Во время учебы может быть непросто. Если возникает проблема, что-то не получается или не работает, то надо понять для себя, что так и должно быть. Программирование — это и есть поиск решений и выходов из сложных ситуаций. Надо просто продолжать делать до тех пор, пока не начнет работать.</p>
<p>Если же прям опускаются руки, то можно попробовать переключиться на что-то другое. Например, порешать задачки на Codewars, сделать не очень сложное испытание, пройти другой урок в текущем курсе или даже начать другой курс. Смысл в том, чтобы сделать что-то, что получится. Организм получит свои порцию дофамина от достигнутой цели, и текущая проблема будет выглядеть уже не столь критичной.</p>
<p>Всем желаю успехов!</p>
<blockquote>
<h3 id="heading-3-9">Читайте также:</h3>
<p><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/8-samyh-vostrebovannyh-yazykov-programmirovaniya-v-2023-godu?promo_name=blog&promo_position=article-body&promo_type=link" rel="noopener noreferrer" target="_blank">8 самых востребованных языков программирования в 2023 году</a></p>
</blockquote></i></em></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">Кирилл Маркеев</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">3 года назад</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/moy-dolgiy-put-vo-frontend-razrabotku/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">38</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-hexlet-podaril-mne-bilet-v-razrabotku">Как Хекслет подарил мне билет в разработку</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/success-story-stepan-frontend">Как я стал фронтенд-разработчиком в крупной американской компании</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/reshilsya-i-stal-backend-razrabotchikom">Решился — и стал бэкенд-разработчиком. Как Хекслет помог мне сменить профессию и справиться с трудностями</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_web_development?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по веб-разработке</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>