Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом.
Содержание
У меня лапки: откуда у гуманитария интерес к программированию
С программированием никогда связан не был. У меня гуманитарное образование. Работал в разных сферах: от ресоциализации наркозависимых до организации продаж.
С 2009 года был фрилансером, занимался копирайтингом. В 2010 году познакомился с агентством «Текстерра» и стал автором лучшего в рунете блога об интернет-маркетинге.
Сначала у меня не было специализации. Писал обо всём — от SEO до продвижения в соцсетях, от контент-маркетинга до работы с конструкторами сайтов. Потом увлёкся блоггингом и стал запускать какие-то блоги на WordPress: про книги, про бритвы, про финансы, про экономику стран CIVETS и про что-то ещё.
Начинайте бесплатное обучение:
На Хекслете есть несколько десятков бесплатных курсов — от основ программирования, до английского языка, логики, Git и операционных систем.
Тут меня догнала вордпрессомания — болезнь начинающих и продолжающих блогеров. Днями и ночами ковырялся в WordPress и что-то «улучшал», прикручивал какие-то плагины. Это занятие оказалось полезным: у меня появилась специализация в блоге «Текстерры». Стал писать в основном о веб-разработке.
В какой-то момент случайно провалился на уровень ниже плагинов WordPress. Не помню, как это произошло. Скорее всего, не нашлось подходящего плагина, мне пришлось открыть файл какого-то шаблона и что-то туда скопипастить. Внутри файла увидел код на PHP. Когда впервые увидел этот код — посмотрел на него и пошёл гуглить курсы программирования.
Год и тысяча долларов: как я изучал рынок обучения программированию
Да, прежде чем попасть на Хекслет, я потратил больше тысячи долларов и около года жизни. Учился в GeekBrains, «Нетологии», freeCodeCamp и HTML Academy. Рассказывал о впечатлениях в обзоре школ программирования, поэтому повторяться не буду.
Хорошо помню состояние отчаяния после завершения курса по React в «Нетологии». Я потратил год, прилежно занимался, но смог только с горем пополам сделать кривой Pomodoro timer, который стыдно кому-то показать.
Почти смирился с тем, что я тупой, хотел бросить попытки понять программирование. Случайно наткнулся на перевод статьи про грязные секреты курсов по программированию на Хабре. Она меня чем-то зацепила. Так я узнал о существовании «Хекслета».
На «Хекслете» почему-то начал с курса «Введение в программирование». Знакомство с Тотой буквально потрясло меня. Впервые с момента начала обучения почувствовал, что двигаюсь в правильном направлении. И ещё почувствовал себя пещерным человеком. Но это было приятное чувство, потому что я собирался стать самым умным в своей пещере.
Рекомендация новичкам: обязательно пройдите «Введение в программирование», даже если этот курс не входит в вашу профессию.
Разбудить жену и заставить записать код: как я стартовал на Хекслете
Первый модуль в профессии «Фронтенд-программист» меня буквально проглотил. Очень нравилось всё: и организация обучения, и манера подачи, и даже трудные практические задачи. Когда решал практику, чувствовал, как мозг кипит и создаёт новые нейронные связи. Это кайфовое чувство.
Ещё до первого проекта со мной случилась смешная история. Я посчитал количество уроков во всех курсах профессии. Увидел, что если проходить по уроку в день, то профессию можно пройти примерно за 7 месяцев. Не помню, учитывал ли время на проекты.
Сделал график на листе бумаги, повесил его на стену и стал вычёркивать по уроку в день. Иногда по два или даже по три. На первом модуле это не вызывало проблем. Надо ли говорить, с каким чувством я смотрел на этот листок на стене, когда проходил «Деревья» и другие хардкорные курсы? Кстати, сейчас они перекочевали из профессии в трек «СИКП на JS». Очень мощные курсы, рекомендую.
В общем, где-то перед вторым проектом я выбросил свой листок с графиком прохождения профессии.
Первый проект — отдельная история. Кроме отработки знаний и умений, он дал мне ещё и океан позитивных эмоций. Впервые писал что-то с пониманием того, что я делаю.
Да, были трудности, куда же без них. Один из шагов предполагал выделение движка игры. Я несколько дней не понимал, что от меня требуется. Мучал ментора Александра Овчара и мучался сам. В конце концов решение мне приснилось. Кроме шуток, ночью увидел во сне, что нужно сделать. Разбудил жену и заставил записать код в телефон. Сам я телефон возле кровати не держу. Утром проверил, всё работало.
Остальные шаги в проекте я прошёл быстро. Прорвался через много итераций проверки проекта ментором и получил в профиле на GitHub первый настоящий проект.
А потом произошло событие, которое сильно повлияло на дальнейшее обучение. Я пришёл работать на Хекслет.
Читайте другие истории успеха:
Как я бросил все и стал фронтенд-разработчиком
Dream team: как я работал на Хекслете и как это повлияло на обучение программированию
Через несколько дней после завершения первого проекта увидел в слак-сообществе сообщение Кирилла Мокевнина, что Хекслет ищет редактора. Загорелся, быстро составил и отправил резюме.
Со мной связался ментор, который проверял первый проект. Договорились созвониться и познакомиться. Созвон продлился часа полтора — мне показалось, что это был неформальный разговор о жизни. Оказалось, что это было собеседование — максимально неформальное и комфортное.
Через полчаса после разговора с ментором мне позвонил Кирилл Мокевнин и предложил работать в Хекслете. Конечно, я согласился.
Хекслет изнутри мне очень понравился. Включился в работу и стал фигачить. Было очень круто ощущать себя частью команды, которая помогает людям идти к мечте и достигать целей. В общем, я кайфовал. А вот с обучением получилось всё не так хорошо. Дело в том, что на фрилансе я мог позволить себе отказаться от работы с некоторыми клиентами, чтобы уделять больше времени программированию. Когда делал первый проект, работал примерно 4 часа в сутки, и ещё часов 6 учился.
Теперь я был фултаймером. В Хекслете максимально гибкий график, а результат измеряется завершёнными задачами, а не временем. Но в первые месяцы работы это мне не помогало — не мог найти баланс между обучением и работой. Пытался учиться по вечерам, но темп снизился.
В конце концов нашёл выход из ситуации: стал вставать на час раньше. Большая чашка кофе, тишина в доме и открытый редактор — есть в раннем подъёме особое удовольствие.
Баланс я нашёл где-то после второго проекта. Этот проект стал каким-то переломным в обучении. Делал я его несколько месяцев. Как и на первом проекте, мучал ментора Александра Овчара. В конце концов с горем пополам отправил проект на проверку.
Проверял проект Кирилл, всё прошло довольно гладко. Но был момент, из-за которого мне до сих пор стыдно. Точно не помню, в чём там дело, но в каком-то месте в проекте у нас есть строки — расширения файлов типа .json, .yaml и так далее. А нам надо использовать их без точки — json. И я, прошу прощения за мой французский, нахерачил на if-else функцию на 12 строк, которая превращает .json в json. 12 строк, Карл!
Кирилл прислал скромный комментарий: «Вся эта функция меняется на path.extname().slice(1)». Мне было стыдно и смешно одновременно. Но больше стыдно. Фейспалм.
В общем, второй проект я сдал. Дальше дело пошло гораздо веселее. Началась прикладная часть профессии. После хардкорных курсов типа «Деревья» и второго проекта она давалась довольно легко. Незаметно для себя без особых проблем сделал третий проект.
«Ты не настоящий программист, пока не получаешь за код деньги»: как общение с наставником изменило мою мотивацию
Надо сказать, что всерьёз о работе программистом я не задумывался. Изучал программирование, потому что мне это нравилось. Да, я редактировал и читал истории успеха других ребят, примерял успех на себя. Но у меня не было мотивации быстрее стать программистом, поменять работу. В «Хекслете» чувствовал себя отлично. Контент-маркетинг и редактуру очень люблю. Зачем что-то менять?
Правда, заметил одну вещь. Программирование мне нравится сильнее, чем контент-маркетинг. Когда работаю с кодом, как будто исчезаю: полностью фокусируюсь на задаче, включаюсь на полную, эмоционально реагирую, если что-то получается или не получается. Когда занят контентом, такого нет.
Тем не менее решил, что пройду четвёртый проект, буду работать редактором на «Хекслете» и впишусь в Codebattle, чтобы найти точку приложения для новых знаний.
Четвёртый проект я проходил с наставником. Мне очень сильно повезло — моим наставником была Алла Якушева. Совместная работа началась со знакомства. Алла спросила меня о планах. Я сказал, что хочу и дальше работать редактором, а заодно контрибьютить в опенсорс. В этот момент возникла небольшая пауза, которой я сразу не придал значения.
На следующем созвоне Алла сказала, что у меня очень странная мотивация. И что я могу контрибьютить в опенсорс, но не стану настоящим программистом, пока не буду получать за код деньги. Я крепко задумался. Думал долго. Успел пройти проект, но так ничего и не решил.
После проекта оставалось время для работы с наставником. Алла предложила провести тренировочное собеседование. После собеседования опять поговорили про мотивацию. Алла сказала что-то типа: «Решай сам, но ты готов».
Я опять крепко задумался. С одной стороны, мне очень нравилось работать в «Хекслете». Я получал удовольствие и был эмоционально привязан к проекту, кайфовал от общения с людьми. «Хекслет» — это космос в плане организации процессов, отношений между членами команды. В общем, ты делаешь то, что тебе нравится, а тебе за это ещё и деньги платят. С другой стороны, я хотел погрузиться в программирование с головой. Чувствовал, что моё внимание уже там — в новой сфере. И понимал, что там тоже будут платить деньги за то, чем мне нравится заниматься.
Решил, что подумаю пару месяцев, а пока попробую присоединиться к Codebattle.
Codebattle: просто крутой проект
Я знал, что в Codebattle круто, но не знал, что настолько круто. Внутри проекта всё время что-то происходит, ребята созваниваются, кодят вместе, просто общаются. Каждый готов тебе помочь и подсказать. Отдельное спасибо Виталию и Дмитрию — главным энерджайзерам проекта.
В Codebattle я стал находить задачи и делать их. Если что-то было непонятно, спрашивал. Потом что-то читал, что-то делал. Было круто увидеть фичу, которую ты сделал, на живом проекте, которым пользуются реальные люди. Это особенный кайф.
Про Codebattle сложно рассказывать, им надо заниматься. Я делал задачи по утрам или по вечерам, и немного по выходным. Однажды понял, что этого мало. Мне всё время приходилось красть время на программирование — у семьи, отдыха, досуга, сна. Поговорил с женой и решил найти работу программистом.
И снова про Codebattle: как я искал работу
Работу я нашёл быстро. Заглянул на сайт вакансий. Как ни странно, вакансий для людей без опыта там не было, если не считать пару предложений бесплатной стажировки. Тогда я сделал финт ушами. Настроил на сайте вакансий фильтр: фронтенд, удалёнка, опыт работы от года. Из полученных результатов выбрал примерно 15 вакансий, которые показались мне подходящими. Откликнулся сразу на все вакансии. Потратил вечер, чтобы написать для каждого отклика индивидуальное сопроводительное письмо.
Составьте свое первое резюме:
Вы можете бесплатно опубликовать свое резюме в нашем сервисе «Хекслет-CV» и получить советы по его улучшению от разработчиков и HR-менеджеров
Среди 15 выбранных вакансий одна привлекла моё внимание. В ней была фраза, которая меня воодушевила. Что-то вроде: «Мы делаем коммерческие проекты, а ещё у нас есть несколько опенсорс-проектов, которые мы развиваем». Слово «опенсорс» стало для меня маркером.
Два или три рекрутёра из 15 мне сразу отказали, так как у меня не было года опыта. Большая часть откликов остались без ответа. Но два человека ответили. Оба сразу пригласили меня на собеседование.
Первым человеком был представитель небольшой студии. В ней трудилось 5 или 6 разработчиков. Предложили пройти собеседование. Мне показалось, что оно было формальностью: очень простые вопросы, на которые ответит кто угодно. Через сутки мне прислали оффер. Я взял день на размышление, потом поблагодарил ребят и отказался. До конца не понимаю, почему. Наверное, смутил небольшой размер компании.
Вторым был тимлид из компании, у которой есть опенсорс-проекты. Он спросил, есть ли у меня код, который можно посмотреть. Я показал код четвёртого проекта и репозиторий Codebattle. Собеседник сказал, что посмотрит код и свяжется со мной.
Спустя какое-то время он написал и предложил встретиться на техническом собеседовании. Сказал, что обычно просит кандидатов выполнить тестовое задание, но в моём случае в качестве тестового засчитывается четвёртый проект.
А вот техническое собеседование оказалось тяжёлым. Я сильно перепугался и отвечал на вопросы в автоматическом режиме. В основном отвечал нормально, но с парой вопросов облажался. Например, с перепугу забыл, зачем нужен Context в React. В общем, мне казалось, что это провал.
В финале собеседования предложили немного покодить. Я увидел задачу и чуть не упал со стула: нужно было написать свою функцию filter. «А можно я сбегаю на Хекслет и повторю одно упражнение?» — подумал я. А сам трясущимися руками стал что-то набирать на клавиатуре.
Мозг к этому моменту был в полной отключке из-за стресса. Но я старался улыбаться и делать вид, что контролирую ситуацию. Тем временем пальцы что-то набрали на клавиатуре и запустили код. Не работает! Обложился консоль-логами, что-то поменял, запустил. Увидел, в чём проблема, ещё раз поменял — заработало!
После этого меня поблагодарили и сказали, что скоро со мной свяжутся и сообщат результаты собеседования. Через несколько часов позвонил тимлид и предложил работу. Я согласился.
Было эмоционально тяжело расставаться с «Хекслетом». Но к этому времени я уже понимал, что так должно быть.
Пустырник и валериана: как я боролся с синдромом самозванца
До выхода на новую работу мне нужно было завершить дела на Хекслете, чем я и занимался во внешнем мире. А внутри меня кипели нешуточные страсти: поймал жесточайший приступ синдрома самозванца.
Вдруг стало казаться, что я ничего не умею и не знаю. Чтобы как-то с этим бороться, стал судорожно что-то читать, что-то решать, что-то верстать. Не мог нормально спать, поэтому накупил в аптеке успокоительных трав и пил их вместо чая.
Эти мучения продолжались до момента, когда я увидел первую задачу на новой работе. «Хм, кажется, я это могу», — подумал я. И смог. И успокоился. А потом ещё раз смог. А потом что-то спросил, мне подсказали, и я снова смог. И совсем успокоился. И понеслось.
С новой командой мне очень повезло. У нас весело, все друг другу помогают. Раз в неделю проводим tech talk. Я уже успел отметиться с докладом. Ещё раз в неделю у нас неформальный обед. Собираемся онлайн и болтаем на отвлечённые темы. У каждого разработчика есть индивидуальные цели развития. В качестве цели я попросил поставить мне углубленное изучение тестирования. И пошёл на интенсив «Тестирование фронтенда». Очень доволен.
Недавно рассказал ребятам о Codebattle. Собрались, поиграли, понравилось. Решили продолжить. В рабочем слаке сделали отдельный канал и назвали его codebattle.
Вместо заключения: благодарности и рекомендации новичкам
Сначала хочу поблагодарить всех людей, которые участвуют в создании «Хекслета». Ребята, вы делаете большое дело — помогаете людям менять жизни и осуществлять мечты. Это круто. Спасибо вам.
Отдельная и огромная благодарность Кириллу Мокевнину. Спасибо и за невероятно крутой образовательный ресурс, и за космический опыт работы внутри этого ресурса. «Хекслет» изменил мою жизнь.
Спасибо Рахиму Давлеткалиеву. Моё знакомство с «Хекслетом» началось с «Введения в программирование», это была любовь с первого взгляда.
Спасибо Александру Овчару. Если бы не продолжительные разговоры с Сашей, я бы не сделал второй проект.
Спасибо Никите Науменко и Андрею Мошкову за Git. У меня на компьютере есть файл git-nikita.txt, в котором я законспектировал инструкцию по ребейзу по итогам разговора с Никитой.
Спасибо Алле Якушевой за науку и внимание. Благодаря работе с Аллой я почувствовал уверенность. И ещё спасибо за разговор о мотивации и «настоящем программисте за деньги».
Никите Михайлову спасибо за вёрстку, а Саше Вагину за безалкогольное пиво «Клаустхаллер», ха-ха! Спасибо ребятам из Codebattle, вы крутые. Спасибо всем, с кем я работал в «Хекслете» — вы лучшие, я вас люблю.
Огромное спасибо моей жене за поддержку всех моих начинаний.
Теперь рекомендации новичкам:
Первая: ведите здоровый образ жизни. Достаточно спите, будьте физически активными, не злоупотребляйте алкоголем, про сигареты молчу. Обучение — это тоже работа, а чтобы делать её хорошо, нужно быть в хорошей физической форме.
Вторая: занимайтесь тем, что вам нравится, от чего вы кайфуете. Если вы кайфуете от программирования, вам повезло. У вас всё получится и без рекомендаций.
И третья: ешьте слона по кусочку за присест. Регулярность и настойчивость — ваши лучшие друзья.
Всем успехов! И да, как говорит Вика, ave, Hexlet!
Стать программистом можно на Хекслете:
Меняйте профессию в группе, самостоятельно или с личным наставником
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 23:23:56 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="hNMfKHiiFCcevP5RqFsR1uIpHn86HVd0FG0XcbYo07RrAtQfity5R6j_2smkVOGhIiAz1TIqqdapjY0l5C802g";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока</title>
<meta name="description" content="Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом.">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/reshit-pervyy-proekt-vo-sne-i-stat-programmistom">
<meta property="og:title" content="Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока">
<meta property="og:description" content="Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом. ">
<meta property="og:image" content="https://ru.hexlet.io/vite/assets/blog_post-7eTyeLLt.webp">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="PnqCBd4KT7ktX5NDyq1uz0MCts9SMfrL4QdyZqwNSHTRq0kyLHTi2Zsct9vGop64gwubZVoGBGlc5-gy_gqvGg" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T23:23:56.396Z","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":"2L_pVY0TzB-Rmxr2Ua5bTxBTHwBQ_oLmq3_MfnxpNic3biJif21hfyfYPm5doas40FoyqljJfEQWn1YqLm7RSQ","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Дмитрий Дементий","id":174372,"is_tutor":false},"tags":[{"id":1119,"slug":"bez-steka","name":"Без стека"}],"id":1413,"title":"Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока","slug":"reshit-pervyy-proekt-vo-sne-i-stat-programmistom","state":"published","summary":"Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом. ","votes_count":92,"created_at":"2021-06-04T05:11:25.862Z","published_at":"2021-06-15T06:51:46.503Z","body":"**Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом.** \r\n\r\n## Содержание\n\n## У меня лапки: откуда у гуманитария интерес к программированию\r\n\r\nС программированием никогда связан не был. У меня гуманитарное образование. Работал в разных сферах: от ресоциализации наркозависимых до организации продаж. \r\n\r\nС 2009 года был фрилансером, занимался копирайтингом. В 2010 году познакомился с агентством «Текстерра» и стал автором лучшего в рунете блога об интернет-маркетинге. \r\n\r\nСначала у меня не было специализации. Писал обо всём — от SEO до продвижения в соцсетях, от контент-маркетинга до работы с конструкторами сайтов. Потом увлёкся блоггингом и стал запускать какие-то блоги на WordPress: про книги, про бритвы, про финансы, про экономику стран CIVETS и про что-то ещё. \r\n\r\n\r\n> ### Начинайте бесплатное обучение:\r\n> На Хекслете есть несколько десятков [бесплатных курсов](https://ru.hexlet.io/courses/free?from=blog) — от основ программирования, до английского языка, логики, Git и операционных систем. \r\n\r\nТут меня догнала вордпрессомания — болезнь начинающих и продолжающих блогеров. Днями и ночами ковырялся в WordPress и что-то «улучшал», прикручивал какие-то плагины. Это занятие оказалось полезным: у меня появилась специализация в блоге «Текстерры». Стал писать в основном о веб-разработке. \r\n\r\nВ какой-то момент случайно провалился на уровень ниже плагинов WordPress. Не помню, как это произошло. Скорее всего, не нашлось подходящего плагина, мне пришлось открыть файл какого-то шаблона и что-то туда скопипастить. Внутри файла увидел код на PHP. Когда впервые увидел этот код — посмотрел на него и пошёл гуглить курсы программирования.\r\n\r\n## Год и тысяча долларов: как я изучал рынок обучения программированию\r\n\r\nДа, прежде чем попасть на Хекслет, я потратил больше тысячи долларов и около года жизни. Учился в GeekBrains, «Нетологии», freeCodeCamp и HTML Academy. Рассказывал о впечатлениях [в обзоре школ программирования](https://ru.hexlet.io/blog/posts/obzor-populyarnyh-shkol-programmirovaniya-lichnyy-opyt-plyusy-minusy-i-feyly), поэтому повторяться не буду.\r\n\r\nХорошо помню состояние отчаяния после завершения курса по React в «Нетологии». Я потратил год, прилежно занимался, но смог только с горем пополам сделать кривой Pomodoro timer, который [стыдно кому-то показать](https://pomidorchik.surge.sh/).\r\n\r\nПочти смирился с тем, что я тупой, хотел бросить попытки понять программирование. Случайно наткнулся на перевод статьи про [грязные секреты курсов по программированию на Хабре](https://habr.com/en/company/hexlet/blog/263407/). Она меня чем-то зацепила. Так я узнал о существовании «Хекслета». \r\n\r\nНа «Хекслете» почему-то начал с курса [«Введение в программирование»](https://ru.hexlet.io/courses/introduction_to_programming). Знакомство с Тотой буквально потрясло меня. Впервые с момента начала обучения почувствовал, что двигаюсь в правильном направлении. И ещё почувствовал себя пещерным человеком. Но это было приятное чувство, потому что я собирался стать самым умным в своей пещере. \r\n\r\nРекомендация новичкам: обязательно пройдите «Введение в программирование», даже если этот курс не входит в вашу профессию. \r\n\r\n## Разбудить жену и заставить записать код: как я стартовал на Хекслете\r\n\r\nПервый модуль в профессии «Фронтенд-программист» меня буквально проглотил. Очень нравилось всё: и организация обучения, и манера подачи, и даже трудные практические задачи. Когда решал практику, чувствовал, как мозг кипит и создаёт новые нейронные связи. Это кайфовое чувство. \r\n\r\nЕщё до первого проекта со мной случилась смешная история. Я посчитал количество уроков во всех курсах профессии. Увидел, что если проходить по уроку в день, то профессию можно пройти примерно за 7 месяцев. Не помню, учитывал ли время на проекты. \r\n\r\nСделал график на листе бумаги, повесил его на стену и стал вычёркивать по уроку в день. Иногда по два или даже по три. На первом модуле это не вызывало проблем. Надо ли говорить, с каким чувством я смотрел на этот листок на стене, когда проходил «Деревья» и другие хардкорные курсы? Кстати, сейчас они перекочевали из профессии в трек [«СИКП на JS»](https://ru.hexlet.io/programs/js-sicp). Очень мощные курсы, рекомендую.\r\n\r\nВ общем, где-то перед вторым проектом я выбросил свой листок с графиком прохождения профессии. \r\n\r\nПервый проект — отдельная история. Кроме отработки знаний и умений, он дал мне ещё и океан позитивных эмоций. Впервые писал что-то с пониманием того, что я делаю. \r\n\r\nДа, были трудности, куда же без них. Один из шагов предполагал выделение движка игры. Я несколько дней не понимал, что от меня требуется. Мучал ментора Александра Овчара и мучался сам. В конце концов решение мне приснилось. Кроме шуток, ночью увидел во сне, что нужно сделать. Разбудил жену и заставил записать код в телефон. Сам я телефон возле кровати не держу. Утром проверил, всё работало. \r\n\r\nОстальные шаги в проекте я прошёл быстро. Прорвался через много итераций проверки проекта ментором и получил в профиле на GitHub первый настоящий проект.\r\n\r\nА потом произошло событие, которое сильно повлияло на дальнейшее обучение. Я пришёл работать на Хекслет. \r\n\r\n\r\n> ### Читайте другие истории успеха:\r\n> Как я бросил все и [стал фронтенд-разработчиком](https://ru.hexlet.io/blog/posts/kak-ya-brosil-vse-i-stal-frontend-razrabotchikom)\r\n\r\n## Dream team: как я работал на Хекслете и как это повлияло на обучение программированию\r\n\r\nЧерез несколько дней после завершения первого проекта увидел в слак-сообществе сообщение Кирилла Мокевнина, что Хекслет ищет редактора. Загорелся, быстро составил и отправил резюме. \r\n\r\nСо мной связался ментор, который проверял первый проект. Договорились созвониться и познакомиться. Созвон продлился часа полтора — мне показалось, что это был неформальный разговор о жизни. Оказалось, что это было собеседование — максимально неформальное и комфортное.\r\n\r\nЧерез полчаса после разговора с ментором мне позвонил Кирилл Мокевнин и предложил работать в Хекслете. Конечно, я согласился. \r\n\r\nХекслет изнутри мне очень понравился. Включился в работу и стал фигачить. Было очень круто ощущать себя частью команды, которая помогает людям идти к мечте и достигать целей. В общем, я кайфовал. А вот с обучением получилось всё не так хорошо. Дело в том, что на фрилансе я мог позволить себе отказаться от работы с некоторыми клиентами, чтобы уделять больше времени программированию. Когда делал первый проект, работал примерно 4 часа в сутки, и ещё часов 6 учился. \r\n\r\nТеперь я был фултаймером. В Хекслете максимально гибкий график, а результат измеряется завершёнными задачами, а не временем. Но в первые месяцы работы это мне не помогало — не мог найти баланс между обучением и работой. Пытался учиться по вечерам, но темп снизился. \r\n\r\nВ конце концов нашёл выход из ситуации: стал вставать на час раньше. Большая чашка кофе, тишина в доме и открытый редактор — есть в раннем подъёме особое удовольствие. \r\n\r\nБаланс я нашёл где-то после второго проекта. Этот проект стал каким-то переломным в обучении. Делал я его несколько месяцев. Как и на первом проекте, мучал ментора Александра Овчара. В конце концов с горем пополам отправил проект на проверку. \r\n\r\nПроверял проект Кирилл, всё прошло довольно гладко. Но был момент, из-за которого мне до сих пор стыдно. Точно не помню, в чём там дело, но в каком-то месте в проекте у нас есть строки — расширения файлов типа `.json`, `.yaml` и так далее. А нам надо использовать их без точки — `json`. И я, прошу прощения за мой французский, нахерачил на `if-else` функцию на 12 строк, которая превращает `.json` в `json`. 12 строк, Карл! \r\n\r\nКирилл прислал скромный комментарий: «Вся эта функция меняется на `path.extname().slice(1)`». Мне было стыдно и смешно одновременно. Но больше стыдно. Фейспалм. \r\n\r\nВ общем, второй проект я сдал. Дальше дело пошло гораздо веселее. Началась прикладная часть профессии. После хардкорных курсов типа «Деревья» и второго проекта она давалась довольно легко. Незаметно для себя без особых проблем сделал третий проект. \r\n\r\n## «Ты не настоящий программист, пока не получаешь за код деньги»: как общение с наставником изменило мою мотивацию\r\n\r\nНадо сказать, что всерьёз о работе программистом я не задумывался. Изучал программирование, потому что мне это нравилось. Да, я редактировал и читал истории успеха других ребят, примерял успех на себя. Но у меня не было мотивации быстрее стать программистом, поменять работу. В «Хекслете» чувствовал себя отлично. Контент-маркетинг и редактуру очень люблю. Зачем что-то менять?\r\n\r\nПравда, заметил одну вещь. Программирование мне нравится сильнее, чем контент-маркетинг. Когда работаю с кодом, как будто исчезаю: полностью фокусируюсь на задаче, включаюсь на полную, эмоционально реагирую, если что-то получается или не получается. Когда занят контентом, такого нет. \r\n\r\nТем не менее решил, что пройду четвёртый проект, буду работать редактором на «Хекслете» и впишусь в Codebattle, чтобы найти точку приложения для новых знаний. \r\n\r\nЧетвёртый проект я проходил с наставником. Мне очень сильно повезло — моим наставником была Алла Якушева. Совместная работа началась со знакомства. Алла спросила меня о планах. Я сказал, что хочу и дальше работать редактором, а заодно контрибьютить в опенсорс. В этот момент возникла небольшая пауза, которой я сразу не придал значения. \r\n\r\nНа следующем созвоне Алла сказала, что у меня очень странная мотивация. И что я могу контрибьютить в опенсорс, но не стану настоящим программистом, пока не буду получать за код деньги. Я крепко задумался. Думал долго. Успел пройти проект, но так ничего и не решил. \r\n\r\nПосле проекта оставалось время для работы с наставником. Алла предложила провести тренировочное собеседование. После собеседования опять поговорили про мотивацию. Алла сказала что-то типа: «Решай сам, но ты готов». \r\n\r\nЯ опять крепко задумался. С одной стороны, мне очень нравилось работать в «Хекслете». Я получал удовольствие и был эмоционально привязан к проекту, кайфовал от общения с людьми. «Хекслет» — это космос в плане организации процессов, отношений между членами команды. В общем, ты делаешь то, что тебе нравится, а тебе за это ещё и деньги платят. С другой стороны, я хотел погрузиться в программирование с головой. Чувствовал, что моё внимание уже там — в новой сфере. И понимал, что там тоже будут платить деньги за то, чем мне нравится заниматься.\r\n\r\nРешил, что подумаю пару месяцев, а пока попробую присоединиться к Codebattle.\r\n\r\n## Codebattle: просто крутой проект\r\n\r\nЯ знал, что в [Codebattle](https://codebattle.hexlet.io/) круто, но не знал, что настолько круто. Внутри проекта всё время что-то происходит, ребята созваниваются, кодят вместе, просто общаются. Каждый готов тебе помочь и подсказать. Отдельное спасибо Виталию и Дмитрию — главным энерджайзерам проекта. \r\n\r\nВ Codebattle я стал находить задачи и делать их. Если что-то было непонятно, спрашивал. Потом что-то читал, что-то делал. Было круто увидеть фичу, которую ты сделал, на живом проекте, которым пользуются реальные люди. Это особенный кайф. \r\n\r\nПро Codebattle сложно рассказывать, им надо заниматься. Я делал задачи по утрам или по вечерам, и немного по выходным. Однажды понял, что этого мало. Мне всё время приходилось красть время на программирование — у семьи, отдыха, досуга, сна. Поговорил с женой и решил найти работу программистом. \r\n\r\n## И снова про Codebattle: как я искал работу\r\n\r\nРаботу я нашёл быстро. Заглянул на сайт вакансий. Как ни странно, вакансий для людей без опыта там не было, если не считать пару предложений бесплатной стажировки. Тогда я сделал финт ушами. Настроил на сайте вакансий фильтр: фронтенд, удалёнка, опыт работы от года. Из полученных результатов выбрал примерно 15 вакансий, которые показались мне подходящими. Откликнулся сразу на все вакансии. Потратил вечер, чтобы написать для каждого отклика индивидуальное сопроводительное письмо. \r\n\r\n\r\n> ### Составьте свое первое резюме:\r\n> Вы можете бесплатно опубликовать свое резюме в нашем сервисе [«Хекслет-CV»](https://cv.hexlet.io/) и получить советы по его улучшению от разработчиков и HR-менеджеров\r\n\r\nСреди 15 выбранных вакансий одна привлекла моё внимание. В ней была фраза, которая меня воодушевила. Что-то вроде: «Мы делаем коммерческие проекты, а ещё у нас есть несколько опенсорс-проектов, которые мы развиваем». Слово «опенсорс» стало для меня маркером. \r\n\r\nДва или три рекрутёра из 15 мне сразу отказали, так как у меня не было года опыта. Большая часть откликов остались без ответа. Но два человека ответили. Оба сразу пригласили меня на собеседование. \r\n\r\nПервым человеком был представитель небольшой студии. В ней трудилось 5 или 6 разработчиков. Предложили пройти собеседование. Мне показалось, что оно было формальностью: очень простые вопросы, на которые ответит кто угодно. Через сутки мне прислали оффер. Я взял день на размышление, потом поблагодарил ребят и отказался. До конца не понимаю, почему. Наверное, смутил небольшой размер компании. \r\n\r\nВторым был тимлид из компании, у которой есть опенсорс-проекты. Он спросил, есть ли у меня код, который можно посмотреть. Я показал код четвёртого проекта и репозиторий Codebattle. Собеседник сказал, что посмотрит код и свяжется со мной.\r\n\r\nСпустя какое-то время он написал и предложил встретиться на техническом собеседовании. Сказал, что обычно просит кандидатов выполнить тестовое задание, но в моём случае в качестве тестового засчитывается четвёртый проект. \r\n\r\nА вот техническое собеседование оказалось тяжёлым. Я сильно перепугался и отвечал на вопросы в автоматическом режиме. В основном отвечал нормально, но с парой вопросов облажался. Например, с перепугу забыл, зачем нужен Context в React. В общем, мне казалось, что это провал.\r\n\r\nВ финале собеседования предложили немного покодить. Я увидел задачу и чуть не упал со стула: нужно было написать свою функцию `filter`. «А можно я сбегаю на Хекслет и повторю одно упражнение?» — подумал я. А сам трясущимися руками стал что-то набирать на клавиатуре. \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Эти мучения продолжались до момента, когда я увидел первую задачу на новой работе. «Хм, кажется, я это могу», — подумал я. И смог. И успокоился. А потом ещё раз смог. А потом что-то спросил, мне подсказали, и я снова смог. И совсем успокоился. И понеслось.\r\n\r\nС новой командой мне очень повезло. У нас весело, все друг другу помогают. Раз в неделю проводим tech talk. Я уже успел отметиться с докладом. Ещё раз в неделю у нас неформальный обед. Собираемся онлайн и болтаем на отвлечённые темы. У каждого разработчика есть индивидуальные цели развития. В качестве цели я попросил поставить мне углубленное изучение тестирования. И пошёл на интенсив [«Тестирование фронтенда»](https://ru.hexlet.io/programs/frontend-testing-react). Очень доволен. \r\n\r\nНедавно рассказал ребятам о Codebattle. Собрались, поиграли, понравилось. Решили продолжить. В рабочем слаке сделали отдельный канал и назвали его codebattle. \r\n\r\n## Вместо заключения: благодарности и рекомендации новичкам\r\n\r\nСначала хочу поблагодарить всех людей, которые участвуют в создании «Хекслета». Ребята, вы делаете большое дело — помогаете людям менять жизни и осуществлять мечты. Это круто. Спасибо вам.\r\n\r\nОтдельная и огромная благодарность Кириллу Мокевнину. Спасибо и за невероятно крутой образовательный ресурс, и за космический опыт работы внутри этого ресурса. «Хекслет» изменил мою жизнь. \r\n\r\nСпасибо Рахиму Давлеткалиеву. Моё знакомство с «Хекслетом» началось с «Введения в программирование», это была любовь с первого взгляда. \r\n\r\nСпасибо Александру Овчару. Если бы не продолжительные разговоры с Сашей, я бы не сделал второй проект. \r\n\r\nСпасибо Никите Науменко и Андрею Мошкову за Git. У меня на компьютере есть файл `git-nikita.txt`, в котором я законспектировал инструкцию по ребейзу по итогам разговора с Никитой. \r\n\r\nСпасибо Алле Якушевой за науку и внимание. Благодаря работе с Аллой я почувствовал уверенность. И ещё спасибо за разговор о мотивации и «настоящем программисте за деньги». \r\n\r\nНиките Михайлову спасибо за вёрстку, а Саше Вагину за безалкогольное пиво «Клаустхаллер», ха-ха! Спасибо ребятам из Codebattle, вы крутые. Спасибо всем, с кем я работал в «Хекслете» — вы лучшие, я вас люблю.\r\n\r\nОгромное спасибо моей жене за поддержку всех моих начинаний.\r\n\r\n**Теперь рекомендации новичкам:**\r\n\r\nПервая: ведите здоровый образ жизни. Достаточно спите, будьте физически активными, не злоупотребляйте алкоголем, про сигареты молчу. Обучение — это тоже работа, а чтобы делать её хорошо, нужно быть в хорошей физической форме. \r\n\r\nВторая: занимайтесь тем, что вам нравится, от чего вы кайфуете. Если вы кайфуете от программирования, вам повезло. У вас всё получится и без рекомендаций. \r\n\r\nИ третья: ешьте слона по кусочку за присест. Регулярность и настойчивость — ваши лучшие друзья. \r\n\r\nВсем успехов! И да, как говорит Вика, ave, Hexlet!\r\n\r\n\r\n> ### Стать программистом можно на Хекслете:\r\n> [Меняйте профессию](https://ru.hexlet.io/programs?from=blog) в группе, самостоятельно или с личным наставником \r\n","reading_time":9,"url":"https://ru.hexlet.io/blog/posts/reshit-pervyy-proekt-vo-sne-i-stat-programmistom","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":554,"title":"Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой","slug":"kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy","summary":"Привет! Меня зовут Юрий Бачевский, и это моя история успеха — как после 30 лет уйти в IT, имея ипотеку и маленького ребенка.","created_at":"2019-11-15T10:26:36.618Z","published_at":"2022-01-24T09:53:03.554Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1398,"title":"Из вахтовика в программирование. Как Хекслет перевернул мою жизнь","slug":"iz-vahtovika-v-programmirovanie","summary":"Как поменять профессию и стать разработчиком из вахтовика, просто правильно выбрав обучающий сайт и загоревшись изучением программирования.","created_at":"2021-05-25T02:10:52.202Z","published_at":"2021-10-11T16:23:33.127Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1362,"title":"Из бариста в программисты","slug":"iz-barista-v-programmisty","summary":"Краткая история о том, как бариста сменил сферу деятельности и осуществил свою мечту.","created_at":"2021-04-28T04:31:38.092Z","published_at":"2021-07-08T13:13:01.290Z","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":2,"slug":"php","title":"PHP-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":60,"duration_in_months":10},"id":1,"slug":"php","title":"РНР-разработчик","subtitle":"Изучите PHP и Laravel для разработки и проектирования REST API","subtitle_for_lists":"Изучите PHP и Laravel для разработки и проектирования REST API","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"php","price_text":"от 5 650 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png"},{"stack":{"id":179,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":null,"duration_in_months":16},"id":279,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-php","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"},{"stack":{"id":25,"slug":"php-oop","title":"ООП В PHP","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4300,"duration_in_months":2},"id":38,"slug":"php-oop","title":"ООП В PHP","subtitle":"Навык глубокого понимания архитектуры и написания чистого кода, позволяющий решать сложные задачи","subtitle_for_lists":"Изучите архитектуру и чистый код на PHP","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"php-oop","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1MSwicHVyIjoiYmxvYl9pZCJ9fQ==--e5793a1818ff43d73135cc7ed88c1998d7650470/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-bro.png"},{"stack":{"id":22,"slug":"php-laravel-development","title":"Laravel","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":250,"duration_in_months":1},"id":32,"slug":"php-laravel-developer","title":"Laravel","subtitle":"Laravel — Навык создания веб-приложений с помощью Laravel, необходимый для старта карьеры PHP-разработчика","subtitle_for_lists":"Изучите фреймворк Laravel для создания веб-приложений","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"php-laravel-development","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyMSwicHVyIjoiYmxvYl9pZCJ9fQ==--b4d9b4d245e88f43c7f861ac11e675846937c317/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-bro.png"},{"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"}]},"url":"/blog/posts/reshit-pervyy-proekt-vo-sne-i-stat-programmistom","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":"2021-06-15T06:51:46.503Z","headline":"Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом. ","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":92}]}</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/reshit-pervyy-proekt-vo-sne-i-stat-programmistom","name":"Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/success">Истории успеха</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="Без стека"><span class="m_5add502a mantine-Badge-label">Без стека</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">15 июня 2021 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>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>92</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p><strong>Привет, меня зовут Митя. «Хекслет» изменил мою жизнь и подарил мне состояние потока. Надеюсь, рассказ об этом поможет кому-то пройти по похожему пути и стать программистом.</strong></p>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">У меня лапки: откуда у гуманитария интерес к программированию</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Год и тысяча долларов: как я изучал рынок обучения программированию</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Разбудить жену и заставить записать код: как я стартовал на Хекслете</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Dream team: как я работал на Хекслете и как это повлияло на обучение программированию</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>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-9">Codebattle: просто крутой проект</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-10">И снова про Codebattle: как я искал работу</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-12">Пустырник и валериана: как я боролся с синдромом самозванца</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-13">Вместо заключения: благодарности и рекомендации новичкам</a></li>
</ul>
<h2 id="heading-2-2">У меня лапки: откуда у гуманитария интерес к программированию</h2>
<p>С программированием никогда связан не был. У меня гуманитарное образование. Работал в разных сферах: от ресоциализации наркозависимых до организации продаж.</p>
<p>С 2009 года был фрилансером, занимался копирайтингом. В 2010 году познакомился с агентством «Текстерра» и стал автором лучшего в рунете блога об интернет-маркетинге.</p>
<p>Сначала у меня не было специализации. Писал обо всём — от SEO до продвижения в соцсетях, от контент-маркетинга до работы с конструкторами сайтов. Потом увлёкся блоггингом и стал запускать какие-то блоги на WordPress: про книги, про бритвы, про финансы, про экономику стран CIVETS и про что-то ещё.</p>
<blockquote>
<h3 id="heading-3-3">Начинайте бесплатное обучение:</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/courses/free?from=blog" rel="noopener noreferrer" target="_blank">бесплатных курсов</a> — от основ программирования, до английского языка, логики, Git и операционных систем.</p>
</blockquote>
<p>Тут меня догнала вордпрессомания — болезнь начинающих и продолжающих блогеров. Днями и ночами ковырялся в WordPress и что-то «улучшал», прикручивал какие-то плагины. Это занятие оказалось полезным: у меня появилась специализация в блоге «Текстерры». Стал писать в основном о веб-разработке.</p>
<p>В какой-то момент случайно провалился на уровень ниже плагинов WordPress. Не помню, как это произошло. Скорее всего, не нашлось подходящего плагина, мне пришлось открыть файл какого-то шаблона и что-то туда скопипастить. Внутри файла увидел код на PHP. Когда впервые увидел этот код — посмотрел на него и пошёл гуглить курсы программирования.</p>
<h2 id="heading-2-4">Год и тысяча долларов: как я изучал рынок обучения программированию</h2>
<p>Да, прежде чем попасть на Хекслет, я потратил больше тысячи долларов и около года жизни. Учился в GeekBrains, «Нетологии», freeCodeCamp и HTML Academy. Рассказывал о впечатлениях <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/obzor-populyarnyh-shkol-programmirovaniya-lichnyy-opyt-plyusy-minusy-i-feyly" rel="noopener noreferrer" target="_blank">в обзоре школ программирования</a>, поэтому повторяться не буду.</p>
<p>Хорошо помню состояние отчаяния после завершения курса по React в «Нетологии». Я потратил год, прилежно занимался, но смог только с горем пополам сделать кривой Pomodoro timer, который <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://pomidorchik.surge.sh/" 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://habr.com/en/company/hexlet/blog/263407/" 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/courses/introduction_to_programming" rel="noopener noreferrer" target="_blank">«Введение в программирование»</a>. Знакомство с Тотой буквально потрясло меня. Впервые с момента начала обучения почувствовал, что двигаюсь в правильном направлении. И ещё почувствовал себя пещерным человеком. Но это было приятное чувство, потому что я собирался стать самым умным в своей пещере.</p>
<p>Рекомендация новичкам: обязательно пройдите «Введение в программирование», даже если этот курс не входит в вашу профессию.</p>
<h2 id="heading-2-5">Разбудить жену и заставить записать код: как я стартовал на Хекслете</h2>
<p>Первый модуль в профессии «Фронтенд-программист» меня буквально проглотил. Очень нравилось всё: и организация обучения, и манера подачи, и даже трудные практические задачи. Когда решал практику, чувствовал, как мозг кипит и создаёт новые нейронные связи. Это кайфовое чувство.</p>
<p>Ещё до первого проекта со мной случилась смешная история. Я посчитал количество уроков во всех курсах профессии. Увидел, что если проходить по уроку в день, то профессию можно пройти примерно за 7 месяцев. Не помню, учитывал ли время на проекты.</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/js-sicp" rel="noopener noreferrer" target="_blank">«СИКП на JS»</a>. Очень мощные курсы, рекомендую.</p>
<p>В общем, где-то перед вторым проектом я выбросил свой листок с графиком прохождения профессии.</p>
<p>Первый проект — отдельная история. Кроме отработки знаний и умений, он дал мне ещё и океан позитивных эмоций. Впервые писал что-то с пониманием того, что я делаю.</p>
<p>Да, были трудности, куда же без них. Один из шагов предполагал выделение движка игры. Я несколько дней не понимал, что от меня требуется. Мучал ментора Александра Овчара и мучался сам. В конце концов решение мне приснилось. Кроме шуток, ночью увидел во сне, что нужно сделать. Разбудил жену и заставил записать код в телефон. Сам я телефон возле кровати не держу. Утром проверил, всё работало.</p>
<p>Остальные шаги в проекте я прошёл быстро. Прорвался через много итераций проверки проекта ментором и получил в профиле на GitHub первый настоящий проект.</p>
<p>А потом произошло событие, которое сильно повлияло на дальнейшее обучение. Я пришёл работать на Хекслет.</p>
<blockquote>
<h3 id="heading-3-6">Читайте другие истории успеха:</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/kak-ya-brosil-vse-i-stal-frontend-razrabotchikom" rel="noopener noreferrer" target="_blank">стал фронтенд-разработчиком</a></p>
</blockquote>
<h2 id="heading-2-7">Dream team: как я работал на Хекслете и как это повлияло на обучение программированию</h2>
<p>Через несколько дней после завершения первого проекта увидел в слак-сообществе сообщение Кирилла Мокевнина, что Хекслет ищет редактора. Загорелся, быстро составил и отправил резюме.</p>
<p>Со мной связался ментор, который проверял первый проект. Договорились созвониться и познакомиться. Созвон продлился часа полтора — мне показалось, что это был неформальный разговор о жизни. Оказалось, что это было собеседование — максимально неформальное и комфортное.</p>
<p>Через полчаса после разговора с ментором мне позвонил Кирилл Мокевнин и предложил работать в Хекслете. Конечно, я согласился.</p>
<p>Хекслет изнутри мне очень понравился. Включился в работу и стал фигачить. Было очень круто ощущать себя частью команды, которая помогает людям идти к мечте и достигать целей. В общем, я кайфовал. А вот с обучением получилось всё не так хорошо. Дело в том, что на фрилансе я мог позволить себе отказаться от работы с некоторыми клиентами, чтобы уделять больше времени программированию. Когда делал первый проект, работал примерно 4 часа в сутки, и ещё часов 6 учился.</p>
<p>Теперь я был фултаймером. В Хекслете максимально гибкий график, а результат измеряется завершёнными задачами, а не временем. Но в первые месяцы работы это мне не помогало — не мог найти баланс между обучением и работой. Пытался учиться по вечерам, но темп снизился.</p>
<p>В конце концов нашёл выход из ситуации: стал вставать на час раньше. Большая чашка кофе, тишина в доме и открытый редактор — есть в раннем подъёме особое удовольствие.</p>
<p>Баланс я нашёл где-то после второго проекта. Этот проект стал каким-то переломным в обучении. Делал я его несколько месяцев. Как и на первом проекте, мучал ментора Александра Овчара. В конце концов с горем пополам отправил проект на проверку.</p>
<p>Проверял проект Кирилл, всё прошло довольно гладко. Но был момент, из-за которого мне до сих пор стыдно. Точно не помню, в чём там дело, но в каком-то месте в проекте у нас есть строки — расширения файлов типа <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">.json</code>, <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">.yaml</code> и так далее. А нам надо использовать их без точки — <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">json</code>. И я, прошу прощения за мой французский, нахерачил на <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">if-else</code> функцию на 12 строк, которая превращает <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">.json</code> в <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">json</code>. 12 строк, Карл!</p>
<p>Кирилл прислал скромный комментарий: «Вся эта функция меняется на <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">path.extname().slice(1)</code>». Мне было стыдно и смешно одновременно. Но больше стыдно. Фейспалм.</p>
<p>В общем, второй проект я сдал. Дальше дело пошло гораздо веселее. Началась прикладная часть профессии. После хардкорных курсов типа «Деревья» и второго проекта она давалась довольно легко. Незаметно для себя без особых проблем сделал третий проект.</p>
<h2 id="heading-2-8">«Ты не настоящий программист, пока не получаешь за код деньги»: как общение с наставником изменило мою мотивацию</h2>
<p>Надо сказать, что всерьёз о работе программистом я не задумывался. Изучал программирование, потому что мне это нравилось. Да, я редактировал и читал истории успеха других ребят, примерял успех на себя. Но у меня не было мотивации быстрее стать программистом, поменять работу. В «Хекслете» чувствовал себя отлично. Контент-маркетинг и редактуру очень люблю. Зачем что-то менять?</p>
<p>Правда, заметил одну вещь. Программирование мне нравится сильнее, чем контент-маркетинг. Когда работаю с кодом, как будто исчезаю: полностью фокусируюсь на задаче, включаюсь на полную, эмоционально реагирую, если что-то получается или не получается. Когда занят контентом, такого нет.</p>
<p>Тем не менее решил, что пройду четвёртый проект, буду работать редактором на «Хекслете» и впишусь в Codebattle, чтобы найти точку приложения для новых знаний.</p>
<p>Четвёртый проект я проходил с наставником. Мне очень сильно повезло — моим наставником была Алла Якушева. Совместная работа началась со знакомства. Алла спросила меня о планах. Я сказал, что хочу и дальше работать редактором, а заодно контрибьютить в опенсорс. В этот момент возникла небольшая пауза, которой я сразу не придал значения.</p>
<p>На следующем созвоне Алла сказала, что у меня очень странная мотивация. И что я могу контрибьютить в опенсорс, но не стану настоящим программистом, пока не буду получать за код деньги. Я крепко задумался. Думал долго. Успел пройти проект, но так ничего и не решил.</p>
<p>После проекта оставалось время для работы с наставником. Алла предложила провести тренировочное собеседование. После собеседования опять поговорили про мотивацию. Алла сказала что-то типа: «Решай сам, но ты готов».</p>
<p>Я опять крепко задумался. С одной стороны, мне очень нравилось работать в «Хекслете». Я получал удовольствие и был эмоционально привязан к проекту, кайфовал от общения с людьми. «Хекслет» — это космос в плане организации процессов, отношений между членами команды. В общем, ты делаешь то, что тебе нравится, а тебе за это ещё и деньги платят. С другой стороны, я хотел погрузиться в программирование с головой. Чувствовал, что моё внимание уже там — в новой сфере. И понимал, что там тоже будут платить деньги за то, чем мне нравится заниматься.</p>
<p>Решил, что подумаю пару месяцев, а пока попробую присоединиться к Codebattle.</p>
<h2 id="heading-2-9">Codebattle: просто крутой проект</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://codebattle.hexlet.io/" rel="noopener noreferrer" target="_blank">Codebattle</a> круто, но не знал, что настолько круто. Внутри проекта всё время что-то происходит, ребята созваниваются, кодят вместе, просто общаются. Каждый готов тебе помочь и подсказать. Отдельное спасибо Виталию и Дмитрию — главным энерджайзерам проекта.</p>
<p>В Codebattle я стал находить задачи и делать их. Если что-то было непонятно, спрашивал. Потом что-то читал, что-то делал. Было круто увидеть фичу, которую ты сделал, на живом проекте, которым пользуются реальные люди. Это особенный кайф.</p>
<p>Про Codebattle сложно рассказывать, им надо заниматься. Я делал задачи по утрам или по вечерам, и немного по выходным. Однажды понял, что этого мало. Мне всё время приходилось красть время на программирование — у семьи, отдыха, досуга, сна. Поговорил с женой и решил найти работу программистом.</p>
<h2 id="heading-2-10">И снова про Codebattle: как я искал работу</h2>
<p>Работу я нашёл быстро. Заглянул на сайт вакансий. Как ни странно, вакансий для людей без опыта там не было, если не считать пару предложений бесплатной стажировки. Тогда я сделал финт ушами. Настроил на сайте вакансий фильтр: фронтенд, удалёнка, опыт работы от года. Из полученных результатов выбрал примерно 15 вакансий, которые показались мне подходящими. Откликнулся сразу на все вакансии. Потратил вечер, чтобы написать для каждого отклика индивидуальное сопроводительное письмо.</p>
<blockquote>
<h3 id="heading-3-11">Составьте свое первое резюме:</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://cv.hexlet.io/" rel="noopener noreferrer" target="_blank">«Хекслет-CV»</a> и получить советы по его улучшению от разработчиков и HR-менеджеров</p>
</blockquote>
<p>Среди 15 выбранных вакансий одна привлекла моё внимание. В ней была фраза, которая меня воодушевила. Что-то вроде: «Мы делаем коммерческие проекты, а ещё у нас есть несколько опенсорс-проектов, которые мы развиваем». Слово «опенсорс» стало для меня маркером.</p>
<p>Два или три рекрутёра из 15 мне сразу отказали, так как у меня не было года опыта. Большая часть откликов остались без ответа. Но два человека ответили. Оба сразу пригласили меня на собеседование.</p>
<p>Первым человеком был представитель небольшой студии. В ней трудилось 5 или 6 разработчиков. Предложили пройти собеседование. Мне показалось, что оно было формальностью: очень простые вопросы, на которые ответит кто угодно. Через сутки мне прислали оффер. Я взял день на размышление, потом поблагодарил ребят и отказался. До конца не понимаю, почему. Наверное, смутил небольшой размер компании.</p>
<p>Вторым был тимлид из компании, у которой есть опенсорс-проекты. Он спросил, есть ли у меня код, который можно посмотреть. Я показал код четвёртого проекта и репозиторий Codebattle. Собеседник сказал, что посмотрит код и свяжется со мной.</p>
<p>Спустя какое-то время он написал и предложил встретиться на техническом собеседовании. Сказал, что обычно просит кандидатов выполнить тестовое задание, но в моём случае в качестве тестового засчитывается четвёртый проект.</p>
<p>А вот техническое собеседование оказалось тяжёлым. Я сильно перепугался и отвечал на вопросы в автоматическом режиме. В основном отвечал нормально, но с парой вопросов облажался. Например, с перепугу забыл, зачем нужен Context в React. В общем, мне казалось, что это провал.</p>
<p>В финале собеседования предложили немного покодить. Я увидел задачу и чуть не упал со стула: нужно было написать свою функцию <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">filter</code>. «А можно я сбегаю на Хекслет и повторю одно упражнение?» — подумал я. А сам трясущимися руками стал что-то набирать на клавиатуре.</p>
<p>Мозг к этому моменту был в полной отключке из-за стресса. Но я старался улыбаться и делать вид, что контролирую ситуацию. Тем временем пальцы что-то набрали на клавиатуре и запустили код. Не работает! Обложился консоль-логами, что-то поменял, запустил. Увидел, в чём проблема, ещё раз поменял — заработало!</p>
<p>После этого меня поблагодарили и сказали, что скоро со мной свяжутся и сообщат результаты собеседования. Через несколько часов позвонил тимлид и предложил работу. Я согласился.</p>
<p>Было эмоционально тяжело расставаться с «Хекслетом». Но к этому времени я уже понимал, что так должно быть.</p>
<h2 id="heading-2-12">Пустырник и валериана: как я боролся с синдромом самозванца</h2>
<p>До выхода на новую работу мне нужно было завершить дела на Хекслете, чем я и занимался во внешнем мире. А внутри меня кипели нешуточные страсти: поймал жесточайший приступ синдрома самозванца.</p>
<p>Вдруг стало казаться, что я ничего не умею и не знаю. Чтобы как-то с этим бороться, стал судорожно что-то читать, что-то решать, что-то верстать. Не мог нормально спать, поэтому накупил в аптеке успокоительных трав и пил их вместо чая.</p>
<p>Эти мучения продолжались до момента, когда я увидел первую задачу на новой работе. «Хм, кажется, я это могу», — подумал я. И смог. И успокоился. А потом ещё раз смог. А потом что-то спросил, мне подсказали, и я снова смог. И совсем успокоился. И понеслось.</p>
<p>С новой командой мне очень повезло. У нас весело, все друг другу помогают. Раз в неделю проводим tech talk. Я уже успел отметиться с докладом. Ещё раз в неделю у нас неформальный обед. Собираемся онлайн и болтаем на отвлечённые темы. У каждого разработчика есть индивидуальные цели развития. В качестве цели я попросил поставить мне углубленное изучение тестирования. И пошёл на интенсив <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-testing-react" rel="noopener noreferrer" target="_blank">«Тестирование фронтенда»</a>. Очень доволен.</p>
<p>Недавно рассказал ребятам о Codebattle. Собрались, поиграли, понравилось. Решили продолжить. В рабочем слаке сделали отдельный канал и назвали его codebattle.</p>
<h2 id="heading-2-13">Вместо заключения: благодарности и рекомендации новичкам</h2>
<p>Сначала хочу поблагодарить всех людей, которые участвуют в создании «Хекслета». Ребята, вы делаете большое дело — помогаете людям менять жизни и осуществлять мечты. Это круто. Спасибо вам.</p>
<p>Отдельная и огромная благодарность Кириллу Мокевнину. Спасибо и за невероятно крутой образовательный ресурс, и за космический опыт работы внутри этого ресурса. «Хекслет» изменил мою жизнь.</p>
<p>Спасибо Рахиму Давлеткалиеву. Моё знакомство с «Хекслетом» началось с «Введения в программирование», это была любовь с первого взгляда.</p>
<p>Спасибо Александру Овчару. Если бы не продолжительные разговоры с Сашей, я бы не сделал второй проект.</p>
<p>Спасибо Никите Науменко и Андрею Мошкову за Git. У меня на компьютере есть файл <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">git-nikita.txt</code>, в котором я законспектировал инструкцию по ребейзу по итогам разговора с Никитой.</p>
<p>Спасибо Алле Якушевой за науку и внимание. Благодаря работе с Аллой я почувствовал уверенность. И ещё спасибо за разговор о мотивации и «настоящем программисте за деньги».</p>
<p>Никите Михайлову спасибо за вёрстку, а Саше Вагину за безалкогольное пиво «Клаустхаллер», ха-ха! Спасибо ребятам из Codebattle, вы крутые. Спасибо всем, с кем я работал в «Хекслете» — вы лучшие, я вас люблю.</p>
<p>Огромное спасибо моей жене за поддержку всех моих начинаний.</p>
<p><strong>Теперь рекомендации новичкам:</strong></p>
<p>Первая: ведите здоровый образ жизни. Достаточно спите, будьте физически активными, не злоупотребляйте алкоголем, про сигареты молчу. Обучение — это тоже работа, а чтобы делать её хорошо, нужно быть в хорошей физической форме.</p>
<p>Вторая: занимайтесь тем, что вам нравится, от чего вы кайфуете. Если вы кайфуете от программирования, вам повезло. У вас всё получится и без рекомендаций.</p>
<p>И третья: ешьте слона по кусочку за присест. Регулярность и настойчивость — ваши лучшие друзья.</p>
<p>Всем успехов! И да, как говорит Вика, ave, Hexlet!</p>
<blockquote>
<h3 id="heading-3-14">Стать программистом можно на Хекслете:</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/programs?from=blog" rel="noopener noreferrer" target="_blank">Меняйте профессию</a> в группе, самостоятельно или с личным наставником</p>
</blockquote></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">5 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/reshit-pervyy-proekt-vo-sne-i-stat-programmistom/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">92</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy">Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-vahtovika-v-programmirovanie">Из вахтовика в программирование. Как Хекслет перевернул мою жизнь</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-barista-v-programmisty">Из бариста в программисты</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>