TL;DR
Простите, я честно пыталась сократить рассказ, но что-то не очень получилось) Надеюсь не заснете по пути. В конце истории несколько советов от Капитана Очевидности и парочка полезных ссылок.
Содержание
Предыстория
Всем привет, меня зовут Аня, я латентный гуманитарий *хлоп хлоп хлоп*. Все школьные годы относительно легко справлялась с точными науками, но тяготела именно к гуманитарным, которые давались мне с трудом. И если бы в том возрасте мне сказали, что свою жизнь я свяжу с программированием, и что это занятие будет мне по душе — я бы сильно удивилась.
С компьютером в это время я не дружила от слова совсем. Уроки информатики в нашей школе проходили так: учитель находила в интернете код какой-то программы, распечатывала нам и заставляла посимвольно его перепечатывать. После чего мы «нажимали на зеленый треугольничек» и происходила магия! Перед нами появлялась какая-то анимация. Или не появлялась, в зависимости от того, насколько внимательно ты все перепечатываешь. Мы абсолютно не понимали, что и зачем делаем. Если у кого-то код не работал, на все вопросы у учителя был один ответ: «Значит неправильно перепечатал, посмотри внимательней». Самым сложным на уроке информатики было понять, как пишется слово label1, написанное моноширинным шрифтом — лэйбл один, лэйблл или лэйбелИ (да, с английским тоже все было очень плохо).
В старших классах школы остро стал вопрос о том, с какой профессией связать свою дальнейшую жизнь. Еле тлеющую мечту поступить на иняз, не подкрепленную никакими усилиями с моей стороны, затушил мамин энтузиазм по поводу того, что «все деньги в айти». Было решено, что я поступаю в технический вуз.
Несмотря на нулевой уровень подготовки в школе, ЕГЭ по информатике был успешно сдан, и оказалось, что программирование — очень увлекательное занятие, чем-то напоминающее столь любимое мной изучение иностранных языков. К сожалению, с выбором специальности я сильно ошиблась. Все, что мне принесло обучение в вузе — теперь уже ненужная корочка, несколько хороших друзей и неуверенность в себе и своих силах. Специальность «Защита информации», на которую я поступила, была лишь отдаленно связана с разработкой, и казалась неимоверно скучной. На единственной дисциплине, хоть как-то связанной с программированием, я впервые столкнулась с понятием «сексизм». Преподаватель искренне считал и прямым текстом говорил, что из женщин не получается хороших программистов, аргументируя свою позицию фразой «ну не дано». И если в первое время я как-то пыталась исправить его мнение о себе, то в конце семестра отчаялась и почти поверила, что действительно не дано. Следующие 5 лет я просто плыла по течению. От книг по специальности клонило в сон, а любая попытка переквалифицироваться в программиста сходила на нет. Мне казалось, что я свое упустила время и уже никогда не догоню сверстников. Куда уж мне в свои 24 тягаться с «19-летними Senior’ами», которые сразу знали, чего хотят от жизни
После защиты диплома я два года проработала по специальности. От работы тошнило, каждый день шла как на каторгу. Плакала перед, после, а иногда во время работы от постоянного хамства со стороны клиентов. Поняла, что при выборе профессии явно свернула не туда, и надо что-то менять. Жизнь одна, и тратить ее треть на нелюбимую работу — расточительство.
Учиться, учиться и еще раз учиться
Встал вопрос о том, где получить необходимые знания. От обилия образовательных ресурсов разбегались глаза. Записалась на изучение профессии «Фронтенд-разработчик» в одну из онлайн-школ, о чем потом сильно пожалела. Тебя как котенка просто бросают в пучину информации и оставляют с ней наедине. Ответ на свой вопрос от дипломного руководителя можно ждать неделю, но дедлайны никто не отменял. Жесткие сроки сдачи, небольшой временной промежуток между курсами, из-за которого ты толком не успеваешь переварить полученные знания, как в тебя уже впихивают новые. Совмещать с работой было практически нереально. Из четырех дипломных проектов я смогла защитить два, по оставшимся недоделанным не получила даже обратной связи. Снова охватило отчаяние и сомнения в собственных силах. Казалось, что просто выбросила довольно большие деньги на ветер. Спасением для меня стал «Хекслет».
Как-то в разговоре муж, он тоже программист, упомянул, что в их компании хотят брать на стажировку выпускников «Хекслета», так как там очень грамотный подход к обучению. И посоветовал мне тоже пройти там курсы. Отнеслась со скепсисом, но зарегистрировалась. И... Бесплатный курс «Введение в программирование» меня просто покорил. Я наконец по-настоящему поняла, как работает функция, что такое рекурсия и с чем ее едят. После бесплатного курса я не стала тянуть время, оплатила подписку и с головой погрузилась в профессию «Фронтенд JavaScript».
Материал подается кратко, но емко. Задания заставляют попотеть. Но когда самостоятельно доходишь до решения, испытываешь настоящую радость и прилив сил. Самый очевидный плюс Хекслета на мой взгляд — это отсутствие дедлайнов. Для работающего человека, который только задумывается сменить профессию, это очень важно. Нет ощущения, что тратишь кровно заработанные впустую, что все знания проходят мимо тебя, что все твои одногруппники все успевают и вообще умнички, одна ты ничего не понимаешь.
Самыми полезными для себя курсами считаю «Функции» и «Последовательности», так как в них освещаются вопросы, с которыми я безуспешно боролась на протяжении полугода.
Я абсолютно не понимала, зачем возвращать функцию из функции, что такое замыкание. Почему мы можем вернуть из функции только что-то одно, и почему после return не сработает другой return. Вроде очевидные вещи, но неподготовленного человека ставят в тупик.
«Хекслет», в отличие от курсов в стиле «стань крутым программистом за 30 секунд», не просто рассказывает как выполнить ту или иную задачу, но дает понимание, почему все работает именно так.
Я вполне могла запомнить, что вот есть такой метод map. Ну есть и есть. Но зачем он мне нужен, если у меня есть цикл for? Слабое понимание того, как внутри работает та или иная функция из коробки, заставляло меня городить огороды, писать непонятные и сложночитаемые циклы в циклах, которые в условиях, которые снова в циклах :) Но после самостоятельного написания map, filter и reduce в рамках курса «Последовательности», в голове все встало на свои места.
А еще я наконец-то пришла к пониманию всей прелести неизменяемости. Раньше я не понимала, зачем создавать много переменных, если я могу создать одну, а потом переписать ее значение. Ведь она же переменная
Сейчас уже на автомате стараюсь использовать let по минимуму и в большинстве случаев обхожусь const.
Поиск работы
После нескольких месяцев интенсивной учебы пора было менять нелюбимую работу на любимую. Мысль об увольнении витала у меня с самого трудоустройства, но не было ни решимости, ни «подушки безопасности», чтобы поиск работы не был в стиле «лишь бы взяли хоть куда-нибудь». Спустя пол года обучения я накопила достаточно знаний и средств, которые позволят неспешно искать работу в течение трех месяцев. Чтобы не пойти на попятную, пришлось за месяц до увольнения оповестить начальство о том, что ухожу. В это же время я выложила на сайт для поиска работы свое резюме, не особо рассчитывая на профит и понимая, что с таким скудным багажом знаний искать будут не меня, а я.
К поиску работы я подошла основательно. Фриланс не рассматривала вообще: слишком мало уверенности в себе и в своих силах, а это работа для тех, кто точно уверен, что справится с задачей. Продуктовые команды тоже не рассматривала, так как думала, что они ищут исключительно скилловых ребят и с новичком возиться не будут. Оставался только один вариант — веб-студии. Сперва прошерстила список местных веб-студий, стажера никто не искал. Значит нужно искать удаленку.
Решила взять количеством. Нашла список веб-студий страны на каком-то сайте типа рейтинга рунета, по очереди заходила на их сайты в раздел вакансий и отмечала тех, кто ищет разработчиков, даже если я не подходила им по уровню. Планировалось, что после составления списка буду спамить всем «отобранным» студиям своим резюме в надежде на отклик. Так продолжалось до тех пор, пока не наткнулась на сайт одной из них, назовем ее студией А :) Там искали стажера на удаленку, навыки соответствовали моим. На сайте была отображена прозрачная система грейдов программистов, то есть сразу видно какими навыками нужно обладать и какие задачи выполнить, чтобы получить повышение. Обещали отличную документацию и систему наставничества для новичков. Не работа, а сказка. Я поняла, что хочу попасть именно туда.
Заполнила анкету и выслала ее на почту, указанную в контактах. Спустя неделю пришло лишь автоматическое письмо-отбивка, больше никакой реакции не было. Было странно не получить обратной связи, ведь они даже не проверили мои навыки. Списала это на огромный поток желающих. Раньше частенько читала статьи с советами по поиску работы, где говорилось, что лучше не доставать работодателя письмами с просьбами об обратной связи. Но желание получить работу в этой студии было сильнее боязни потерять лицо. Поэтому я нашла директора по кадрам в соцсетях и написала ей напрямую. На что получила ответ, что у них внезапно поменялись правила и теперь заявки рассматриваются только с тестовым. А тех, кто прислал просто анкету, они решили рассматривать в последнюю очередь. HR обещала скинуть тестовое в ближайшие пару дней, но спустя две недели я так ничего от нее не получила. В итоге на их сайте, который я просматривала ежедневно, в другом разделе появилось тестовое на грейд стажера. Необходимо было собрать сайт на их CMS. Решила не ждать ответа от HR и взяться за это задание. Навыков программирования для его выполнения иметь было почти не нужно, поэтому справилась я за несколько дней и больше времени потратила на подборку контента. Выслала свое тестовое, уже не особо рассчитывая на обратную связь. Тем временем, резюме мое пылилось на hh.ru и вяло набирало просмотры.
Первое собеседование
В то время, пока я ждала ответ на тестовое от студии А, мое резюме увидели в веб-студии из моего города, назовем ее студией Б. Студия Б сразу позвала на собеседование, не утруждая себя и меня тестовым заданием :) В течение всей недели до дня X я штудировала учебные материалы и возможные вопросы, встречающиеся на позиции Junior Frontend, решала задачки.
Готовилась практически зря. Само собеседование больше напоминало разговор по душам, а задачки мне дали совсем тривиальные: по распечатанному коду определить, какой CSS-селектор выше по приоритету и каким будет значение this. Предложение стажировки получила от студии Б на следующий день и дала свое согласие, так как обратной связи по тестовому от студии А так и не получила.
За пару дней до моего выхода на работу в студию Б студия А дала о себе знать и вынесла положительное решение по тестовому. Можно сказать, что студию А я взяла измором :) Встал вопрос, какую из компаний предпочесть. В итоге я выбрала удаленную работу.
К сожалению, стажировка оказалась не такой радужной, как я себе представляла.
Первая работа
Знаете то чувство, когда чего-то очень сильно желаешь, всеми силами к этому стремишься, наконец достигаешь и разочаровываешься? Вот его я испытала на себе, наконец попав в «веб-студию мечты». Гайды и инструкции, которыми хвалились в описании стажировки, оказались для новичка непонятны. Планы на день по задачам на день было сложно выполнить, не задерживаясь после работы. Знания в области фронтенда, накопленные мной за обучение, оказались практически бесполезны, так как в компании не было такого понятия как фронтенд-разработчик, нужно было в срочном порядке учить PHP. Непонятные моменты по работе приходилось уточнять у мужа, работающего в другой компании, так как коллеги просто давали ссылку на инструкцию. Самые большие сложности возникали с разворачиванием проекта локально, сборкой и установкой пакетов. Эти моменты долго укладывались у меня в голове, от обилия гайдов с разной информацией просто теряешься. Чувствовала себя не стажером, который обучается, чтобы стать хорошим специалистом, а дешевой рабочей силой, которая уже по умолчанию должна все это уметь, но почему-то не умеет. Снова начала нервничать, что не успеваю выполнять план, не понимаю очевидных другим людям вещей, что снова нашла работу, не приносящую удовольствия.
Проработав так 2 месяца и совсем не почувствовав прогресса, решила, что пора искать что-то другое. Уволилась, взяла перерыв еще на месяц, снова вернулась на «Хекслет» и перепрошла курсы по профессии. Второй раз решение тех же задач спустя время давалось значительно легче и уже больше напоминало учительское.
Заключительная часть
С тех пор прошел ровно год. Ровно год я не «хожу на работу» в привычном понимании этого слова, а занимаюсь любимым делом в окружении прекрасных людей. Сейчас я младший фронтенд-разработчик в компании Ботмама, создающей конструктор чат-ботов. Теперь работа наконец-то приносит радость, а не воспринимается как неизбежное зло.
Работаю с библиотекой React, js-фреймворком Vue. Очень тяжело на стажировке давалось понимание Redux, но в этом мне помог разобраться курс на «Хекслете». Задачи на работе попадаются совершенно разноплановые: от банального перекрашивая кнопочек до написания собственных компонентов и рефакторинга легаси. Одна из самых интересных и сложных задач за последнее время — переезд проекта на 16 версию Реакта. Смогла довести до ума наработки другого разработчика. Считаю это своей маленькой победой :)
Недавно я решила вернуться на «Хекслет» и завершить прохождение профессии. До сих пор плаваю в асинхронности, в настройке окружения. Надеюсь восполнить свои пробелы. Да и в бэкенд было бы неплохо заглянуть :) В заключение хочу сказать большое спасибо команде «Хекслета». Я проштудировала большое количество обучающих материалов, но именно ваши курсы смогли разложить все по полочкам. А после прохождения практических заданий возникает чувство, что ты заслужил эти знания)) Всем будущим и настоящим студентам желаю успехов в изучении и осмелюсь дать несколько советов. Кому-то они могут показаться очевидными, но именно эти вещи я бы посоветовала себе 2 года назад, когда в очередной раз задумалась о смене профессии.
Несколько советов начинающим
- label1 - лэйбл один ;D
- Не думайте о том, что взялись за обучение слишком поздно. Главное начать, а дальше все пойдет как по маслу. Машину времени еще не изобрели, так что назад во времени вернуться уже в любом случае не получится. А чем больше вы откладываете первый шаг, тем сложнее будет начать в будущем. Тем временем девятнадцатилетние сеньоры не дремлют, а учатся
- Не зацикливайтесь на одном источнике информации. Если в одной статье объяснено не понятно, найдите вторую, третью, четвертую, в которых описано то же самое, но другими словами. Это поможет вам составить более полную картину.
- Давайте мозгу отдохнуть. Если случился затуп в какой-то задаче (а при обучении на «Хекслете» такое будет случаться часто) и ну никак не получается ее решить, просто отложите ее на пару часов и отвлекитесь на другое дело. Мозг все равно в фоновом режиме будет искать ответ на ваш вопрос, и озарение может прийти в совершенно неожиданный момент.
- Выложите свое резюме. За это вас никто не съест и не засмеет. Даже если вы не уверены в своих силах, даже если знаний совсем немного. Пусть в вялотекущем режиме набирает просмотры. А может вам повезет и ваш уровень будет достаточен для стажировки в какой-то компании. Ведь сколько бы вы ни шлифовали свои знания, самые полезные навыки получаешь именно во время работы.
- Не становитесь вечным учеником и не затягивайте с поиском работы. Всегда будет казаться, что знаний не хватает и что хорошо бы еще подучиться. Но ваши невероятные познания будут абсолютно бесполезны, если вы будете их только накапливать, но не применять. Как Кощей над златом чахнет. Не будьте Кощеем, не надо :)
- В резюме избегаем канцелярита. Стрессоустойчивостью и коммуникабельностью сейчас никого не удивить. А сухое перечисление технологий тоже не особо располагает к себе. Не все HR технически подкованы. Опишите свои скиллы так, как если бы рассказывали о них знакомому, далекому от технологий.
- Даже неудачное собеседование — это ценный опыт. Не справились с задачкой на собеседовании — решите ее дома. Запнулись на каком-то вопросе — придумайте на него красивый ответ, и в следующий раз не растеряетесь.
- Возвращайтесь к уже изученному. Через несколько месяцев после изучения какого-то материала пройдитесь по нему еще раз. Свежий взгляд на уже изученное помогает понять недопонятое и закрепить это в памяти.
- Не подглядывайте в решение учителя до того как сами выполните задание. Вообще. Даже если очень хочется. Даже если сил уже нет это решать. Заветные 100% в рейтинге будут вас мотивировать не срываться, и чем дальше будете проходить, тем сильнее будет мотивация. Если подглядеть решение, вы сможете его понять, но скорее всего не запомните. Если задачу решил сам, хоть криво и костыльно, то в дальнейшем сможешь это решение воспроизвести. А решение учителя поможет понять, как сделать код еще лучше и лаконичней.
- Если не получается какая-то задача, попробуйте расписать то, как она должна себя вести. Просто обычными словами. Это поможет структурировать информацию и прийти к верному решению. Кому как удобнее, я предпочитаю делать это в обычной тетрадке. Бумагомарание приводит мысли в порядок. Да и так приятно бывает вычеркнуть выполненный пункт.
- Сразу учитесь убирать за собой. Знаете, бывают такие моменты, когда поток мыслей идет, ты пишешь, пишешь код, думая, что исправишь все потом. Да, исправишь. Через пару месяцев, когда нужно будет вернуться к задаче :) И не поймешь, что и зачем написал. Учитесь поддерживать чистоту кода на ходу. Сэкономите себе и коллегам кучу времени.
- Не переставайте учиться даже после получения желаемой работы. Особенно после получения желаемой работы.
- Возвращайтесь периодически к старому коду. Как сказал один умный человек, если спустя пол года вам все еще нравится код, написанный в то время, то это дурной знак
- Решайте небольшие практические задачки, участвуйте в олимпиадах и конкурсах по программированию, коих на просторах интернета тьма. Помогает набить руку и находить неожиданные решения.
- Не перепрыгивайте через курсы. Даже если кажется, что вы в тупике и хочется уже поскорей перейти к следующему разделу, все равно разберитесь с текущей темой. На «Хекслете» все уроки взаимосвязаны? и если не разобраться досконально в одной теме, это потянет за собой целый ворох непонимания. Мне пришлось перескочить сразу через 10 уроков и приступить к курсам по React, так как на работе React нужно было знать «еще вчера». И прохождение этого курса мне далось очень нелегко и скорее всего не принесло столько пользы, сколько могло бы.
- Учите английский.
Полезные книги, статьи, ресурсы
-
learn.javascript.ru - замечательный русскоязычный (и англоязычный) учебник. Много полезной инфы в сжатом виде. В конце почти каждой главы небольшие задачки. Старайтесь их решать, не подглядывая.
- Дэвид Флэнаган «JavaScript. Подробное руководство» — книга 2012 года. Стыд мне и позор, до конца ее пока что не дочитала, но множество полезных вещей из нее почерпнула. Поговаривают, что скоро выйдет 7 издание. Жду.
- Не хочу повторяться, просто зайдите сюда: рекомендуемые Хекслетом книги.
Я пока читаю «Грокаем алгоритмы» и «Код. Тайный язык информатики». Отличные книги, очень подробно и понятно разъясняют довольно сложную для понимания информацию. Надеюсь когда-нибудь осилить весь список.
Какой фронтендер без знания верстки? От себя рекомендую:
- «Новая большая книга CSS» — Дэвид Макфарланд.
- webref.ru
-
htmlacademy.ru — отличные интерактивные курсы по верстке.
React, Redux:
https://maxfarseer.gitbooks.io/react-course-ru-v2/content/
https://maxfarseer.gitbooks.io/redux-course-ru-v2/content/
Отличные учебники. Они и курсы «Хекслета» помогли мне понять что к чему и не захлебнуться в потоке информации.
<!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 22:45:43 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="PhMk8yx80Kc_PpbibTKmo25lLs9jaSWazG74wt9WF3XRwu_E3gJ9x4l9snphPVbUrmwDZWte2zhxjmKWjVHwGw";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/indiana-dzhons-v-poiskah-utrachennogo-prizvaniya">
<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="cF39sBWcxPppM5XowX3vieEMyG0MEjASRrym5i2y10SfjDaH5-Jpmt9wsXDNch_-IQXlxwQlzrD7XDyyf7UwKg" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="/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-26T22:45:43.716Z","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":"Sm4EsTrD3fTmShJOlY1WDevvNuSJ6l1kM-EBcX7f_IWlv8-GyL1wlFAJNtaZgqZ6K-YbToHdo8aOAZslLNgb6w","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Анна Цуканова","id":154180,"is_tutor":false},"tags":[{"id":1443,"slug":"frontend","name":"Фронтенд"},{"id":633,"slug":"javascript","name":"JavaScript"}],"id":482,"title":"Индиана Джонс: в поисках утраченного призвания","slug":"indiana-dzhons-v-poiskah-utrachennogo-prizvaniya","state":"published","summary":"Очень важно не ошибиться с выбором профессии. Но если ошибешься — никогда не поздно все исправить и найти занятие по душе.","votes_count":31,"created_at":"2019-09-27T13:53:07.370Z","published_at":"2019-10-01T06:39:42.583Z","body":"## TL;DR\nПростите, я честно пыталась сократить рассказ, но что-то не очень получилось) Надеюсь не заснете по пути. В конце истории несколько советов от Капитана Очевидности и парочка полезных ссылок.\n\n## Содержание\n\n## Предыстория\nВсем привет, меня зовут Аня, я латентный гуманитарий \\*хлоп хлоп хлоп\\*. Все школьные годы относительно легко справлялась с точными науками, но тяготела именно к гуманитарным, которые давались мне с трудом. И если бы в том возрасте мне сказали, что свою жизнь я свяжу с программированием, и что это занятие будет мне по душе — я бы сильно удивилась.\n\nС компьютером в это время я не дружила от слова совсем. Уроки информатики в нашей школе проходили так: учитель находила в интернете код какой-то программы, распечатывала нам и заставляла посимвольно его перепечатывать. После чего мы «нажимали на зеленый треугольничек» и происходила магия! Перед нами появлялась какая-то анимация. Или не появлялась, в зависимости от того, насколько внимательно ты все перепечатываешь. Мы абсолютно не понимали, что и зачем делаем. Если у кого-то код не работал, на все вопросы у учителя был один ответ: «Значит неправильно перепечатал, посмотри внимательней». Самым сложным на уроке информатики было понять, как пишется слово `label1`, написанное моноширинным шрифтом — лэйбл один, лэйблл или лэйбелИ (да, с английским тоже все было очень плохо).\n\n::programs\n\nВ старших классах школы остро стал вопрос о том, с какой профессией связать свою дальнейшую жизнь. Еле тлеющую мечту поступить на иняз, не подкрепленную никакими усилиями с моей стороны, затушил мамин энтузиазм по поводу того, что «все деньги в айти». Было решено, что я поступаю в технический вуз.\n\nНесмотря на нулевой уровень подготовки в школе, ЕГЭ по информатике был успешно сдан, и оказалось, что программирование — очень увлекательное занятие, чем-то напоминающее столь любимое мной изучение иностранных языков. К сожалению, с выбором специальности я сильно ошиблась. Все, что мне принесло обучение в вузе — теперь уже ненужная корочка, несколько хороших друзей и неуверенность в себе и своих силах. Специальность «Защита информации», на которую я поступила, была лишь отдаленно связана с разработкой, и казалась неимоверно скучной. На единственной дисциплине, хоть как-то связанной с программированием, я впервые столкнулась с понятием «сексизм». Преподаватель искренне считал и прямым текстом говорил, что из женщин не получается хороших программистов, аргументируя свою позицию фразой «ну не дано». И если в первое время я как-то пыталась исправить его мнение о себе, то в конце семестра отчаялась и почти поверила, что действительно не дано. Следующие 5 лет я просто плыла по течению. От книг по специальности клонило в сон, а любая попытка переквалифицироваться в программиста сходила на нет. Мне казалось, что я свое упустила время и уже никогда не догоню сверстников. Куда уж мне в свои 24 тягаться с «19-летними Senior’ами», которые сразу знали, чего хотят от жизни :D\n\nПосле защиты диплома я два года проработала по специальности. От работы тошнило, каждый день шла как на каторгу. Плакала перед, после, а иногда во время работы от постоянного хамства со стороны клиентов. Поняла, что при выборе профессии явно свернула не туда, и надо что-то менять. Жизнь одна, и тратить ее треть на нелюбимую работу — расточительство.\n\n## Учиться, учиться и еще раз учиться\nВстал вопрос о том, где получить необходимые знания. От обилия образовательных ресурсов разбегались глаза. Записалась на изучение профессии «Фронтенд-разработчик» в одну из онлайн-школ, о чем потом сильно пожалела. Тебя как котенка просто бросают в пучину информации и оставляют с ней наедине. Ответ на свой вопрос от дипломного руководителя можно ждать неделю, но дедлайны никто не отменял. Жесткие сроки сдачи, небольшой временной промежуток между курсами, из-за которого ты толком не успеваешь переварить полученные знания, как в тебя уже впихивают новые. Совмещать с работой было практически нереально. Из четырех дипломных проектов я смогла защитить два, по оставшимся недоделанным не получила даже обратной связи. Снова охватило отчаяние и сомнения в собственных силах. Казалось, что просто выбросила довольно большие деньги на ветер. Спасением для меня стал «Хекслет».\n\nКак-то в разговоре муж, он тоже программист, упомянул, что в их компании хотят брать на стажировку выпускников «Хекслета», так как там очень грамотный подход к обучению. И посоветовал мне тоже пройти там курсы. Отнеслась со скепсисом, но зарегистрировалась. И... Бесплатный курс «Введение в программирование» меня просто покорил. Я наконец по-настоящему поняла, как работает функция, что такое рекурсия и с чем ее едят. После бесплатного курса я не стала тянуть время, оплатила подписку и с головой погрузилась в профессию «Фронтенд JavaScript».\n\nМатериал подается кратко, но емко. Задания заставляют попотеть. Но когда самостоятельно доходишь до решения, испытываешь настоящую радость и прилив сил. Самый очевидный плюс Хекслета на мой взгляд — это отсутствие дедлайнов. Для работающего человека, который только задумывается сменить профессию, это очень важно. Нет ощущения, что тратишь кровно заработанные впустую, что все знания проходят мимо тебя, что все твои одногруппники все успевают и вообще умнички, одна ты ничего не понимаешь.\n\nСамыми полезными для себя курсами считаю [«Функции»](https://ru.hexlet.io/courses/js-functions) и [«Последовательности»](https://ru.hexlet.io/courses/sequences), так как в них освещаются вопросы, с которыми я безуспешно боролась на протяжении полугода.\n\nЯ абсолютно не понимала, зачем возвращать функцию из функции, что такое замыкание. Почему мы можем вернуть из функции только что-то одно, и почему после `return` не сработает другой `return`. Вроде очевидные вещи, но неподготовленного человека ставят в тупик.\n\n«Хекслет», в отличие от курсов в стиле «стань крутым программистом за 30 секунд», не просто рассказывает как выполнить ту или иную задачу, но дает понимание, почему все работает именно так. \n\nЯ вполне могла запомнить, что вот есть такой метод `map`. Ну есть и есть. Но зачем он мне нужен, если у меня есть цикл `for`? Слабое понимание того, как внутри работает та или иная функция из коробки, заставляло меня городить огороды, писать непонятные и сложночитаемые циклы в циклах, которые в условиях, которые снова в циклах :) Но после самостоятельного написания `map`, `filter` и `reduce` в рамках курса «Последовательности», в голове все встало на свои места.\n\nА еще я наконец-то пришла к пониманию всей прелести неизменяемости. Раньше я не понимала, зачем создавать много переменных, если я могу создать одну, а потом переписать ее значение. Ведь она же **переменная** :D Сейчас уже на автомате стараюсь использовать `let` по минимуму и в большинстве случаев обхожусь `const`.\n\n## Поиск работы\nПосле нескольких месяцев интенсивной учебы пора было менять нелюбимую работу на любимую. Мысль об увольнении витала у меня с самого трудоустройства, но не было ни решимости, ни «подушки безопасности», чтобы поиск работы не был в стиле «лишь бы взяли хоть куда-нибудь». Спустя пол года обучения я накопила достаточно знаний и средств, которые позволят неспешно искать работу в течение трех месяцев. Чтобы не пойти на попятную, пришлось за месяц до увольнения оповестить начальство о том, что ухожу. В это же время я выложила на сайт для поиска работы свое резюме, не особо рассчитывая на профит и понимая, что с таким скудным багажом знаний искать будут не меня, а я.\n\nК поиску работы я подошла основательно. Фриланс не рассматривала вообще: слишком мало уверенности в себе и в своих силах, а это работа для тех, кто точно уверен, что справится с задачей. Продуктовые команды тоже не рассматривала, так как думала, что они ищут исключительно скилловых ребят и с новичком возиться не будут. Оставался только один вариант — веб-студии. Сперва прошерстила список местных веб-студий, стажера никто не искал. Значит нужно искать удаленку.\n\nРешила взять количеством. Нашла список веб-студий страны на каком-то сайте типа рейтинга рунета, по очереди заходила на их сайты в раздел вакансий и отмечала тех, кто ищет разработчиков, даже если я не подходила им по уровню. Планировалось, что после составления списка буду спамить всем «отобранным» студиям своим резюме в надежде на отклик. Так продолжалось до тех пор, пока не наткнулась на сайт одной из них, назовем ее студией А :) Там искали стажера на удаленку, навыки соответствовали моим. На сайте была отображена прозрачная система грейдов программистов, то есть сразу видно какими навыками нужно обладать и какие задачи выполнить, чтобы получить повышение. Обещали отличную документацию и систему наставничества для новичков. Не работа, а сказка. Я поняла, что хочу попасть именно туда.\n\nЗаполнила анкету и выслала ее на почту, указанную в контактах. Спустя неделю пришло лишь автоматическое письмо-отбивка, больше никакой реакции не было. Было странно не получить обратной связи, ведь они даже не проверили мои навыки. Списала это на огромный поток желающих. Раньше частенько читала статьи с советами по поиску работы, где говорилось, что лучше не доставать работодателя письмами с просьбами об обратной связи. Но желание получить работу в этой студии было сильнее боязни потерять лицо. Поэтому я нашла директора по кадрам в соцсетях и написала ей напрямую. На что получила ответ, что у них внезапно поменялись правила и теперь заявки рассматриваются только с тестовым. А тех, кто прислал просто анкету, они решили рассматривать в последнюю очередь. HR обещала скинуть тестовое в ближайшие пару дней, но спустя две недели я так ничего от нее не получила. В итоге на их сайте, который я просматривала ежедневно, в другом разделе появилось тестовое на грейд стажера. Необходимо было собрать сайт на их CMS. Решила не ждать ответа от HR и взяться за это задание. Навыков программирования для его выполнения иметь было почти не нужно, поэтому справилась я за несколько дней и больше времени потратила на подборку контента. Выслала свое тестовое, уже не особо рассчитывая на обратную связь. Тем временем, резюме мое пылилось на hh.ru и вяло набирало просмотры.\n\n## Первое собеседование\nВ то время, пока я ждала ответ на тестовое от студии А, мое резюме увидели в веб-студии из моего города, назовем ее студией Б. Студия Б сразу позвала на собеседование, не утруждая себя и меня тестовым заданием :) В течение всей недели до дня X я штудировала учебные материалы и возможные вопросы, встречающиеся на позиции Junior Frontend, решала задачки.\n\nГотовилась практически зря. Само собеседование больше напоминало разговор по душам, а задачки мне дали совсем тривиальные: по распечатанному коду определить, какой CSS-селектор выше по приоритету и каким будет значение this. Предложение стажировки получила от студии Б на следующий день и дала свое согласие, так как обратной связи по тестовому от студии А так и не получила.\n\nЗа пару дней до моего выхода на работу в студию Б студия А дала о себе знать и вынесла положительное решение по тестовому. Можно сказать, что студию А я взяла измором :) Встал вопрос, какую из компаний предпочесть. В итоге я выбрала удаленную работу.\nК сожалению, стажировка оказалась не такой радужной, как я себе представляла.\n\n## Первая работа\n\nЗнаете то чувство, когда чего-то очень сильно желаешь, всеми силами к этому стремишься, наконец достигаешь и разочаровываешься? Вот его я испытала на себе, наконец попав в «веб-студию мечты». Гайды и инструкции, которыми хвалились в описании стажировки, оказались для новичка непонятны. Планы на день по задачам на день было сложно выполнить, не задерживаясь после работы. Знания в области фронтенда, накопленные мной за обучение, оказались практически бесполезны, так как в компании не было такого понятия как фронтенд-разработчик, нужно было в срочном порядке учить PHP. Непонятные моменты по работе приходилось уточнять у мужа, работающего в другой компании, так как коллеги просто давали ссылку на инструкцию. Самые большие сложности возникали с разворачиванием проекта локально, сборкой и установкой пакетов. Эти моменты долго укладывались у меня в голове, от обилия гайдов с разной информацией просто теряешься. Чувствовала себя не стажером, который обучается, чтобы стать хорошим специалистом, а дешевой рабочей силой, которая уже по умолчанию должна все это уметь, но почему-то не умеет. Снова начала нервничать, что не успеваю выполнять план, не понимаю очевидных другим людям вещей, что снова нашла работу, не приносящую удовольствия.\n\nПроработав так 2 месяца и совсем не почувствовав прогресса, решила, что пора искать что-то другое. Уволилась, взяла перерыв еще на месяц, снова вернулась на «Хекслет» и перепрошла курсы по профессии. Второй раз решение тех же задач спустя время давалось значительно легче и уже больше напоминало учительское.\n\n## Заключительная часть\nС тех пор прошел ровно год. Ровно год я не «хожу на работу» в привычном понимании этого слова, а занимаюсь любимым делом в окружении прекрасных людей. Сейчас я младший фронтенд-разработчик в компании [Ботмама](https://botmother.com/), создающей конструктор чат-ботов. Теперь работа наконец-то приносит радость, а не воспринимается как неизбежное зло. \n\nРаботаю с библиотекой React, js-фреймворком Vue. Очень тяжело на стажировке давалось понимание Redux, но в этом мне помог разобраться курс на «Хекслете». Задачи на работе попадаются совершенно разноплановые: от банального перекрашивая кнопочек до написания собственных компонентов и рефакторинга легаси. Одна из самых интересных и сложных задач за последнее время — переезд проекта на 16 версию Реакта. Смогла довести до ума наработки другого разработчика. Считаю это своей маленькой победой :)\n\nНедавно я решила вернуться на «Хекслет» и завершить прохождение профессии. До сих пор плаваю в асинхронности, в настройке окружения. Надеюсь восполнить свои пробелы. Да и в бэкенд было бы неплохо заглянуть :) В заключение хочу сказать большое спасибо команде «Хекслета». Я проштудировала большое количество обучающих материалов, но именно ваши курсы смогли разложить все по полочкам. А после прохождения практических заданий возникает чувство, что ты _заслужил_ эти знания)) Всем будущим и настоящим студентам желаю успехов в изучении и осмелюсь дать несколько советов. Кому-то они могут показаться очевидными, но именно эти вещи я бы посоветовала себе 2 года назад, когда в очередной раз задумалась о смене профессии.\n\n## Несколько советов начинающим\n\n1. `label1` - лэйбл один ;D\n2. Не думайте о том, что взялись за обучение слишком поздно. Главное начать, а дальше все пойдет как по маслу. Машину времени еще не изобрели, так что назад во времени вернуться уже в любом случае не получится. А чем больше вы откладываете первый шаг, тем сложнее будет начать в будущем. Тем временем девятнадцатилетние сеньоры не дремлют, а учатся :D\n3. Не зацикливайтесь на одном источнике информации. Если в одной статье объяснено не понятно, найдите вторую, третью, четвертую, в которых описано то же самое, но другими словами. Это поможет вам составить более полную картину.\n4. Давайте мозгу отдохнуть. Если случился затуп в какой-то задаче (а при обучении на «Хекслете» такое будет случаться часто) и ну никак не получается ее решить, просто отложите ее на пару часов и отвлекитесь на другое дело. Мозг все равно в фоновом режиме будет искать ответ на ваш вопрос, и озарение может прийти в совершенно неожиданный момент.\n5. Выложите свое резюме. За это вас никто не съест и не засмеет. Даже если вы не уверены в своих силах, даже если знаний совсем немного. Пусть в вялотекущем режиме набирает просмотры. А может вам повезет и ваш уровень будет достаточен для стажировки в какой-то компании. Ведь сколько бы вы ни шлифовали свои знания, самые полезные навыки получаешь именно во время работы.\n6. Не становитесь вечным учеником и не затягивайте с поиском работы. Всегда будет казаться, что знаний не хватает и что хорошо бы еще подучиться. Но ваши невероятные познания будут абсолютно бесполезны, если вы будете их только накапливать, но не применять. Как Кощей над златом чахнет. Не будьте Кощеем, не надо :)\n7. В резюме избегаем канцелярита. Стрессоустойчивостью и коммуникабельностью сейчас никого не удивить. А сухое перечисление технологий тоже не особо располагает к себе. Не все HR технически подкованы. Опишите свои скиллы так, как если бы рассказывали о них знакомому, далекому от технологий.\n8. Даже неудачное собеседование — это ценный опыт. Не справились с задачкой на собеседовании — решите ее дома. Запнулись на каком-то вопросе — придумайте на него красивый ответ, и в следующий раз не растеряетесь.\n9. Возвращайтесь к уже изученному. Через несколько месяцев после изучения какого-то материала пройдитесь по нему еще раз. Свежий взгляд на уже изученное помогает понять недопонятое и закрепить это в памяти.\n10. Не подглядывайте в решение учителя до того как сами выполните задание. Вообще. Даже если очень хочется. Даже если сил уже нет это решать. Заветные 100% в рейтинге будут вас мотивировать не срываться, и чем дальше будете проходить, тем сильнее будет мотивация. Если подглядеть решение, вы сможете его понять, но скорее всего не запомните. Если задачу решил сам, хоть криво и костыльно, то в дальнейшем сможешь это решение воспроизвести. А решение учителя поможет понять, как сделать код еще лучше и лаконичней.\n11. Если не получается какая-то задача, попробуйте расписать то, как она должна себя вести. Просто обычными словами. Это поможет структурировать информацию и прийти к верному решению. Кому как удобнее, я предпочитаю делать это в обычной тетрадке. Бумагомарание приводит мысли в порядок. Да и так приятно бывает вычеркнуть выполненный пункт.\n12. Сразу учитесь убирать за собой. Знаете, бывают такие моменты, когда поток мыслей идет, ты пишешь, пишешь код, думая, что исправишь все потом. Да, исправишь. Через пару месяцев, когда нужно будет вернуться к задаче :) И не поймешь, что и зачем написал. Учитесь поддерживать чистоту кода на ходу. Сэкономите себе и коллегам кучу времени.\n13. Не переставайте учиться даже после получения желаемой работы. Особенно после получения желаемой работы.\n14. Возвращайтесь периодически к старому коду. Как сказал один умный человек, если спустя пол года вам все еще нравится код, написанный в то время, то это дурной знак :D\n15. Решайте небольшие практические задачки, участвуйте в олимпиадах и [конкурсах по программированию](https://codebattle.hexlet.io/), коих на просторах интернета тьма. Помогает набить руку и находить неожиданные решения.\n15. Не перепрыгивайте через курсы. Даже если кажется, что вы в тупике и хочется уже поскорей перейти к следующему разделу, все равно разберитесь с текущей темой. На «Хекслете» все уроки взаимосвязаны? и если не разобраться досконально в одной теме, это потянет за собой целый ворох непонимания. Мне пришлось перескочить сразу через 10 уроков и приступить к курсам по React, так как на работе React нужно было знать «еще вчера». И прохождение этого курса мне далось очень нелегко и скорее всего не принесло столько пользы, сколько могло бы.\n16. Учите английский.\n\n::posts\n\n## Полезные книги, статьи, ресурсы\n1. [learn.javascript.ru](https://learn.javascript.ru/) - замечательный русскоязычный (и англоязычный) учебник. Много полезной инфы в сжатом виде. В конце почти каждой главы небольшие задачки. Старайтесь их решать, не подглядывая.\n2. Дэвид Флэнаган «JavaScript. Подробное руководство» — книга 2012 года. Стыд мне и позор, до конца ее пока что не дочитала, но множество полезных вещей из нее почерпнула. Поговаривают, что скоро выйдет 7 издание. Жду.\n3. Не хочу повторяться, просто зайдите сюда: [рекомендуемые Хекслетом книги](https://ru.hexlet.io/pages/recommended-books).\nЯ пока читаю «Грокаем алгоритмы» и «Код. Тайный язык информатики». Отличные книги, очень подробно и понятно разъясняют довольно сложную для понимания информацию. Надеюсь когда-нибудь осилить весь список.\n\n**Какой фронтендер без знания верстки? От себя рекомендую:**\n1. «Новая большая книга CSS» — Дэвид Макфарланд.\n2. [webref.ru](https://webref.ru/)\n3. [htmlacademy.ru](https://htmlacademy.ru/) — отличные интерактивные курсы по верстке.\n\n**React, Redux:**\nhttps://maxfarseer.gitbooks.io/react-course-ru-v2/content/\nhttps://maxfarseer.gitbooks.io/redux-course-ru-v2/content/\nОтличные учебники. Они и курсы «Хекслета» помогли мне понять что к чему и не захлебнуться в потоке информации.","reading_time":11,"url":"https://ru.hexlet.io/blog/posts/indiana-dzhons-v-poiskah-utrachennogo-prizvaniya","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":476,"title":"Начинающим от начавшего, или Путь с завода через геймдев в веб-разработку","slug":"nachinayuschim-ot-nachavshego-ili-put-s-zavoda-cherez-geymdev-v-veb-razrabotku","summary":"Удачный свич с завода в геймдев, а потом в веб: мотивирующая история и полезные советы начинающим от начавшего.","created_at":"2019-09-21T11:21:24.204Z","published_at":"2019-09-24T09:17:47.994Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":459,"title":"История трансформации эльфа в программиста","slug":"istoriya-transformatsii-elfa-v-programmista","summary":"Как на протяжении пяти лет изучать сортировку массивов, пройти через суровое российское SEO-продвижение сайтов в 2019 году без ссылок эффективно и недорого и...\r\nИ устроиться на первую работу программистом.","created_at":"2019-09-05T13:04:08.351Z","published_at":"2019-09-11T07:27:25.399Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":449,"title":"Как я хотел подтянуть jQuery и случайно умножил зарплату на два","slug":"kak-ya-hotel-podtyanut-jquery-i-sluchayno-umnozhil-zarplatu-na-dva","summary":"Осознать, что ничего не знаешь — это только половина дела. История про то, как Хекслет помог вырасти в Middle Frontend разработчика","created_at":"2019-08-24T14:04:15.398Z","published_at":"2019-08-26T10:35:06.396Z","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":7,"slug":"python","title":"Python-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":10,"duration_in_months":10},"id":7,"slug":"python","title":"Python-разработчик ","subtitle":"Изучите Python, Django, REST и Fast API для создания веб-приложений","subtitle_for_lists":"Изучите Python, Django, REST и Fast API для создания веб-приложений","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"python","price_text":"от 6 792 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"},{"stack":{"id":131,"slug":"flask","title":"Веб разработка на Python","audience":"for_beginners","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1050,"duration_in_months":1},"id":222,"slug":"flask","title":"Веб-разработка на Python","subtitle":"Навык создания веб-приложений на Flask для разработки лёгких и гибких серверных решений","subtitle_for_lists":"Навык создания веб-приложений на Flask","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"flask","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png"},{"stack":{"id":180,"slug":"fullstack-python","title":"Fullstack-разработчик на Python","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":281,"slug":"fullstack-python","title":"Fullstack-разработчик на Python","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-python","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png"},{"stack":{"id":34,"slug":"algorithms","title":"Алгоритмы и структуры данных","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4000,"duration_in_months":2},"id":56,"slug":"algorithms","title":"Алгоритмы и структуры данных","subtitle":"Навык, который увеличит ваши шансы пройти алгоритмическое интервью в международные компании на 80%","subtitle_for_lists":"Алгоритмы для собеседований","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"algorithms","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-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/indiana-dzhons-v-poiskah-utrachennogo-prizvaniya","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":"2019-10-01T06:39:42.583Z","headline":"Очень важно не ошибиться с выбором профессии. Но если ошибешься — никогда не поздно все исправить и найти занятие по душе.","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":31}]}</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/indiana-dzhons-v-poiskah-utrachennogo-prizvaniya","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><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="JavaScript"><span class="m_5add502a mantine-Badge-label">JavaScript</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">1 октября 2019 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>11 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>31</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"><h2 id="heading-2-1">TL;DR</h2>
<p>Простите, я честно пыталась сократить рассказ, но что-то не очень получилось) Надеюсь не заснете по пути. В конце истории несколько советов от Капитана Очевидности и парочка полезных ссылок.</p>
<h2 id="heading-2-2">Содержание</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-3">Предыстория</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Учиться, учиться и еще раз учиться</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Поиск работы</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-6">Первое собеседование</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Первая работа</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">Заключительная часть</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-9">Несколько советов начинающим</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-10">Полезные книги, статьи, ресурсы</a></li>
</ul>
<h2 id="heading-2-3">Предыстория</h2>
<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">label1</code>, написанное моноширинным шрифтом — лэйбл один, лэйблл или лэйбелИ (да, с английским тоже все было очень плохо).</p>
<style data-mantine-styles="inline">.__m__-_R_fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_fderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/python?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Python-разработчик </p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите Python, Django, REST и Fast API для создания веб-приложений</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png" alt="Python-разработчик " loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 6 792 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/flask?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Веб-разработка на Python</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык создания веб-приложений на Flask</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png" alt="Веб-разработка на Python" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-python?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">16 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Python</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png" alt="Fullstack-разработчик на Python" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/algorithms?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Алгоритмы и структуры данных</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Алгоритмы для собеседований</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png" alt="Алгоритмы и структуры данных" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/frontend?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Фронтенд-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите HTML, CSS, JavaScript и React</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Фронтенд-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 6 792 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<p>В старших классах школы остро стал вопрос о том, с какой профессией связать свою дальнейшую жизнь. Еле тлеющую мечту поступить на иняз, не подкрепленную никакими усилиями с моей стороны, затушил мамин энтузиазм по поводу того, что «все деньги в айти». Было решено, что я поступаю в технический вуз.</p>
<p>Несмотря на нулевой уровень подготовки в школе, ЕГЭ по информатике был успешно сдан, и оказалось, что программирование — очень увлекательное занятие, чем-то напоминающее столь любимое мной изучение иностранных языков. К сожалению, с выбором специальности я сильно ошиблась. Все, что мне принесло обучение в вузе — теперь уже ненужная корочка, несколько хороших друзей и неуверенность в себе и своих силах. Специальность «Защита информации», на которую я поступила, была лишь отдаленно связана с разработкой, и казалась неимоверно скучной. На единственной дисциплине, хоть как-то связанной с программированием, я впервые столкнулась с понятием «сексизм». Преподаватель искренне считал и прямым текстом говорил, что из женщин не получается хороших программистов, аргументируя свою позицию фразой «ну не дано». И если в первое время я как-то пыталась исправить его мнение о себе, то в конце семестра отчаялась и почти поверила, что действительно не дано. Следующие 5 лет я просто плыла по течению. От книг по специальности клонило в сон, а любая попытка переквалифицироваться в программиста сходила на нет. Мне казалось, что я свое упустила время и уже никогда не догоню сверстников. Куда уж мне в свои 24 тягаться с «19-летними Senior’ами», которые сразу знали, чего хотят от жизни </p><div></div><p></p>
<p>После защиты диплома я два года проработала по специальности. От работы тошнило, каждый день шла как на каторгу. Плакала перед, после, а иногда во время работы от постоянного хамства со стороны клиентов. Поняла, что при выборе профессии явно свернула не туда, и надо что-то менять. Жизнь одна, и тратить ее треть на нелюбимую работу — расточительство.</p>
<h2 id="heading-2-4">Учиться, учиться и еще раз учиться</h2>
<p>Встал вопрос о том, где получить необходимые знания. От обилия образовательных ресурсов разбегались глаза. Записалась на изучение профессии «Фронтенд-разработчик» в одну из онлайн-школ, о чем потом сильно пожалела. Тебя как котенка просто бросают в пучину информации и оставляют с ней наедине. Ответ на свой вопрос от дипломного руководителя можно ждать неделю, но дедлайны никто не отменял. Жесткие сроки сдачи, небольшой временной промежуток между курсами, из-за которого ты толком не успеваешь переварить полученные знания, как в тебя уже впихивают новые. Совмещать с работой было практически нереально. Из четырех дипломных проектов я смогла защитить два, по оставшимся недоделанным не получила даже обратной связи. Снова охватило отчаяние и сомнения в собственных силах. Казалось, что просто выбросила довольно большие деньги на ветер. Спасением для меня стал «Хекслет».</p>
<p>Как-то в разговоре муж, он тоже программист, упомянул, что в их компании хотят брать на стажировку выпускников «Хекслета», так как там очень грамотный подход к обучению. И посоветовал мне тоже пройти там курсы. Отнеслась со скепсисом, но зарегистрировалась. И... Бесплатный курс «Введение в программирование» меня просто покорил. Я наконец по-настоящему поняла, как работает функция, что такое рекурсия и с чем ее едят. После бесплатного курса я не стала тянуть время, оплатила подписку и с головой погрузилась в профессию «Фронтенд JavaScript».</p>
<p>Материал подается кратко, но емко. Задания заставляют попотеть. Но когда самостоятельно доходишь до решения, испытываешь настоящую радость и прилив сил. Самый очевидный плюс Хекслета на мой взгляд — это отсутствие дедлайнов. Для работающего человека, который только задумывается сменить профессию, это очень важно. Нет ощущения, что тратишь кровно заработанные впустую, что все знания проходят мимо тебя, что все твои одногруппники все успевают и вообще умнички, одна ты ничего не понимаешь.</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/js-functions" rel="noopener noreferrer" target="_blank">«Функции»</a> и <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/courses/sequences" rel="noopener noreferrer" target="_blank">«Последовательности»</a>, так как в них освещаются вопросы, с которыми я безуспешно боролась на протяжении полугода.</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">return</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">return</code>. Вроде очевидные вещи, но неподготовленного человека ставят в тупик.</p>
<p>«Хекслет», в отличие от курсов в стиле «стань крутым программистом за 30 секунд», не просто рассказывает как выполнить ту или иную задачу, но дает понимание, почему все работает именно так.</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">map</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">for</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">map</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">filter</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">reduce</code> в рамках курса «Последовательности», в голове все встало на свои места.</p>
<p>А еще я наконец-то пришла к пониманию всей прелести неизменяемости. Раньше я не понимала, зачем создавать много переменных, если я могу создать одну, а потом переписать ее значение. Ведь она же <strong>переменная</strong> </p><div></div> Сейчас уже на автомате стараюсь использовать <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">let</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">const</code>.<p></p>
<h2 id="heading-2-5">Поиск работы</h2>
<p>После нескольких месяцев интенсивной учебы пора было менять нелюбимую работу на любимую. Мысль об увольнении витала у меня с самого трудоустройства, но не было ни решимости, ни «подушки безопасности», чтобы поиск работы не был в стиле «лишь бы взяли хоть куда-нибудь». Спустя пол года обучения я накопила достаточно знаний и средств, которые позволят неспешно искать работу в течение трех месяцев. Чтобы не пойти на попятную, пришлось за месяц до увольнения оповестить начальство о том, что ухожу. В это же время я выложила на сайт для поиска работы свое резюме, не особо рассчитывая на профит и понимая, что с таким скудным багажом знаний искать будут не меня, а я.</p>
<p>К поиску работы я подошла основательно. Фриланс не рассматривала вообще: слишком мало уверенности в себе и в своих силах, а это работа для тех, кто точно уверен, что справится с задачей. Продуктовые команды тоже не рассматривала, так как думала, что они ищут исключительно скилловых ребят и с новичком возиться не будут. Оставался только один вариант — веб-студии. Сперва прошерстила список местных веб-студий, стажера никто не искал. Значит нужно искать удаленку.</p>
<p>Решила взять количеством. Нашла список веб-студий страны на каком-то сайте типа рейтинга рунета, по очереди заходила на их сайты в раздел вакансий и отмечала тех, кто ищет разработчиков, даже если я не подходила им по уровню. Планировалось, что после составления списка буду спамить всем «отобранным» студиям своим резюме в надежде на отклик. Так продолжалось до тех пор, пока не наткнулась на сайт одной из них, назовем ее студией А :) Там искали стажера на удаленку, навыки соответствовали моим. На сайте была отображена прозрачная система грейдов программистов, то есть сразу видно какими навыками нужно обладать и какие задачи выполнить, чтобы получить повышение. Обещали отличную документацию и систему наставничества для новичков. Не работа, а сказка. Я поняла, что хочу попасть именно туда.</p>
<p>Заполнила анкету и выслала ее на почту, указанную в контактах. Спустя неделю пришло лишь автоматическое письмо-отбивка, больше никакой реакции не было. Было странно не получить обратной связи, ведь они даже не проверили мои навыки. Списала это на огромный поток желающих. Раньше частенько читала статьи с советами по поиску работы, где говорилось, что лучше не доставать работодателя письмами с просьбами об обратной связи. Но желание получить работу в этой студии было сильнее боязни потерять лицо. Поэтому я нашла директора по кадрам в соцсетях и написала ей напрямую. На что получила ответ, что у них внезапно поменялись правила и теперь заявки рассматриваются только с тестовым. А тех, кто прислал просто анкету, они решили рассматривать в последнюю очередь. HR обещала скинуть тестовое в ближайшие пару дней, но спустя две недели я так ничего от нее не получила. В итоге на их сайте, который я просматривала ежедневно, в другом разделе появилось тестовое на грейд стажера. Необходимо было собрать сайт на их CMS. Решила не ждать ответа от HR и взяться за это задание. Навыков программирования для его выполнения иметь было почти не нужно, поэтому справилась я за несколько дней и больше времени потратила на подборку контента. Выслала свое тестовое, уже не особо рассчитывая на обратную связь. Тем временем, резюме мое пылилось на hh.ru и вяло набирало просмотры.</p>
<h2 id="heading-2-6">Первое собеседование</h2>
<p>В то время, пока я ждала ответ на тестовое от студии А, мое резюме увидели в веб-студии из моего города, назовем ее студией Б. Студия Б сразу позвала на собеседование, не утруждая себя и меня тестовым заданием :) В течение всей недели до дня X я штудировала учебные материалы и возможные вопросы, встречающиеся на позиции Junior Frontend, решала задачки.</p>
<p>Готовилась практически зря. Само собеседование больше напоминало разговор по душам, а задачки мне дали совсем тривиальные: по распечатанному коду определить, какой CSS-селектор выше по приоритету и каким будет значение this. Предложение стажировки получила от студии Б на следующий день и дала свое согласие, так как обратной связи по тестовому от студии А так и не получила.</p>
<p>За пару дней до моего выхода на работу в студию Б студия А дала о себе знать и вынесла положительное решение по тестовому. Можно сказать, что студию А я взяла измором :) Встал вопрос, какую из компаний предпочесть. В итоге я выбрала удаленную работу.
К сожалению, стажировка оказалась не такой радужной, как я себе представляла.</p>
<h2 id="heading-2-7">Первая работа</h2>
<p>Знаете то чувство, когда чего-то очень сильно желаешь, всеми силами к этому стремишься, наконец достигаешь и разочаровываешься? Вот его я испытала на себе, наконец попав в «веб-студию мечты». Гайды и инструкции, которыми хвалились в описании стажировки, оказались для новичка непонятны. Планы на день по задачам на день было сложно выполнить, не задерживаясь после работы. Знания в области фронтенда, накопленные мной за обучение, оказались практически бесполезны, так как в компании не было такого понятия как фронтенд-разработчик, нужно было в срочном порядке учить PHP. Непонятные моменты по работе приходилось уточнять у мужа, работающего в другой компании, так как коллеги просто давали ссылку на инструкцию. Самые большие сложности возникали с разворачиванием проекта локально, сборкой и установкой пакетов. Эти моменты долго укладывались у меня в голове, от обилия гайдов с разной информацией просто теряешься. Чувствовала себя не стажером, который обучается, чтобы стать хорошим специалистом, а дешевой рабочей силой, которая уже по умолчанию должна все это уметь, но почему-то не умеет. Снова начала нервничать, что не успеваю выполнять план, не понимаю очевидных другим людям вещей, что снова нашла работу, не приносящую удовольствия.</p>
<p>Проработав так 2 месяца и совсем не почувствовав прогресса, решила, что пора искать что-то другое. Уволилась, взяла перерыв еще на месяц, снова вернулась на «Хекслет» и перепрошла курсы по профессии. Второй раз решение тех же задач спустя время давалось значительно легче и уже больше напоминало учительское.</p>
<h2 id="heading-2-8">Заключительная часть</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://botmother.com/" rel="noopener noreferrer" target="_blank">Ботмама</a>, создающей конструктор чат-ботов. Теперь работа наконец-то приносит радость, а не воспринимается как неизбежное зло.</p>
<p>Работаю с библиотекой React, js-фреймворком Vue. Очень тяжело на стажировке давалось понимание Redux, но в этом мне помог разобраться курс на «Хекслете». Задачи на работе попадаются совершенно разноплановые: от банального перекрашивая кнопочек до написания собственных компонентов и рефакторинга легаси. Одна из самых интересных и сложных задач за последнее время — переезд проекта на 16 версию Реакта. Смогла довести до ума наработки другого разработчика. Считаю это своей маленькой победой :)</p>
<p>Недавно я решила вернуться на «Хекслет» и завершить прохождение профессии. До сих пор плаваю в асинхронности, в настройке окружения. Надеюсь восполнить свои пробелы. Да и в бэкенд было бы неплохо заглянуть :) В заключение хочу сказать большое спасибо команде «Хекслета». Я проштудировала большое количество обучающих материалов, но именно ваши курсы смогли разложить все по полочкам. А после прохождения практических заданий возникает чувство, что ты <em>заслужил</em> эти знания)) Всем будущим и настоящим студентам желаю успехов в изучении и осмелюсь дать несколько советов. Кому-то они могут показаться очевидными, но именно эти вещи я бы посоветовала себе 2 года назад, когда в очередной раз задумалась о смене профессии.</p>
<h2 id="heading-2-9">Несколько советов начинающим</h2>
<ol>
<li><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">label1</code> - лэйбл один ;D</li>
<li>Не думайте о том, что взялись за обучение слишком поздно. Главное начать, а дальше все пойдет как по маслу. Машину времени еще не изобрели, так что назад во времени вернуться уже в любом случае не получится. А чем больше вы откладываете первый шаг, тем сложнее будет начать в будущем. Тем временем девятнадцатилетние сеньоры не дремлют, а учатся <div></div></li>
<li>Не зацикливайтесь на одном источнике информации. Если в одной статье объяснено не понятно, найдите вторую, третью, четвертую, в которых описано то же самое, но другими словами. Это поможет вам составить более полную картину.</li>
<li>Давайте мозгу отдохнуть. Если случился затуп в какой-то задаче (а при обучении на «Хекслете» такое будет случаться часто) и ну никак не получается ее решить, просто отложите ее на пару часов и отвлекитесь на другое дело. Мозг все равно в фоновом режиме будет искать ответ на ваш вопрос, и озарение может прийти в совершенно неожиданный момент.</li>
<li>Выложите свое резюме. За это вас никто не съест и не засмеет. Даже если вы не уверены в своих силах, даже если знаний совсем немного. Пусть в вялотекущем режиме набирает просмотры. А может вам повезет и ваш уровень будет достаточен для стажировки в какой-то компании. Ведь сколько бы вы ни шлифовали свои знания, самые полезные навыки получаешь именно во время работы.</li>
<li>Не становитесь вечным учеником и не затягивайте с поиском работы. Всегда будет казаться, что знаний не хватает и что хорошо бы еще подучиться. Но ваши невероятные познания будут абсолютно бесполезны, если вы будете их только накапливать, но не применять. Как Кощей над златом чахнет. Не будьте Кощеем, не надо :)</li>
<li>В резюме избегаем канцелярита. Стрессоустойчивостью и коммуникабельностью сейчас никого не удивить. А сухое перечисление технологий тоже не особо располагает к себе. Не все HR технически подкованы. Опишите свои скиллы так, как если бы рассказывали о них знакомому, далекому от технологий.</li>
<li>Даже неудачное собеседование — это ценный опыт. Не справились с задачкой на собеседовании — решите ее дома. Запнулись на каком-то вопросе — придумайте на него красивый ответ, и в следующий раз не растеряетесь.</li>
<li>Возвращайтесь к уже изученному. Через несколько месяцев после изучения какого-то материала пройдитесь по нему еще раз. Свежий взгляд на уже изученное помогает понять недопонятое и закрепить это в памяти.</li>
<li>Не подглядывайте в решение учителя до того как сами выполните задание. Вообще. Даже если очень хочется. Даже если сил уже нет это решать. Заветные 100% в рейтинге будут вас мотивировать не срываться, и чем дальше будете проходить, тем сильнее будет мотивация. Если подглядеть решение, вы сможете его понять, но скорее всего не запомните. Если задачу решил сам, хоть криво и костыльно, то в дальнейшем сможешь это решение воспроизвести. А решение учителя поможет понять, как сделать код еще лучше и лаконичней.</li>
<li>Если не получается какая-то задача, попробуйте расписать то, как она должна себя вести. Просто обычными словами. Это поможет структурировать информацию и прийти к верному решению. Кому как удобнее, я предпочитаю делать это в обычной тетрадке. Бумагомарание приводит мысли в порядок. Да и так приятно бывает вычеркнуть выполненный пункт.</li>
<li>Сразу учитесь убирать за собой. Знаете, бывают такие моменты, когда поток мыслей идет, ты пишешь, пишешь код, думая, что исправишь все потом. Да, исправишь. Через пару месяцев, когда нужно будет вернуться к задаче :) И не поймешь, что и зачем написал. Учитесь поддерживать чистоту кода на ходу. Сэкономите себе и коллегам кучу времени.</li>
<li>Не переставайте учиться даже после получения желаемой работы. Особенно после получения желаемой работы.</li>
<li>Возвращайтесь периодически к старому коду. Как сказал один умный человек, если спустя пол года вам все еще нравится код, написанный в то время, то это дурной знак <div></div></li>
<li>Решайте небольшие практические задачки, участвуйте в олимпиадах и <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://codebattle.hexlet.io/" rel="noopener noreferrer" target="_blank">конкурсах по программированию</a>, коих на просторах интернета тьма. Помогает набить руку и находить неожиданные решения.</li>
<li>Не перепрыгивайте через курсы. Даже если кажется, что вы в тупике и хочется уже поскорей перейти к следующему разделу, все равно разберитесь с текущей темой. На «Хекслете» все уроки взаимосвязаны? и если не разобраться досконально в одной теме, это потянет за собой целый ворох непонимания. Мне пришлось перескочить сразу через 10 уроков и приступить к курсам по React, так как на работе React нужно было знать «еще вчера». И прохождение этого курса мне далось очень нелегко и скорее всего не принесло столько пользы, сколько могло бы.</li>
<li>Учите английский.</li>
</ol>
<style data-mantine-styles="inline">.__m__-_R_2mderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_2mderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_2mderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/nachinayuschim-ot-nachavshego-ili-put-s-zavoda-cherez-geymdev-v-veb-razrabotku"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Начинающим от начавшего, или Путь с завода через геймдев в веб-разработку"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Начинающим от начавшего, или Путь с завода через геймдев в веб-разработку</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Удачный свич с завода в геймдев, а потом в веб: мотивирующая история и полезные советы начинающим...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">24 сентября 2019 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/istoriya-transformatsii-elfa-v-programmista"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="История трансформации эльфа в программиста"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">История трансформации эльфа в программиста</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как на протяжении пяти лет изучать сортировку массивов, пройти через суровое российское SEO-продв...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">11 сентября 2019 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ya-hotel-podtyanut-jquery-i-sluchayno-umnozhil-zarplatu-na-dva"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Как я хотел подтянуть jQuery и случайно умножил зарплату на два"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как я хотел подтянуть jQuery и случайно умножил зарплату на два</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Осознать, что ничего не знаешь — это только половина дела. История про то, как Хекслет помог выр...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">26 августа 2019 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-10">Полезные книги, статьи, ресурсы</h2>
<ol>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://learn.javascript.ru/" rel="noopener noreferrer" target="_blank">learn.javascript.ru</a> - замечательный русскоязычный (и англоязычный) учебник. Много полезной инфы в сжатом виде. В конце почти каждой главы небольшие задачки. Старайтесь их решать, не подглядывая.</li>
<li>Дэвид Флэнаган «JavaScript. Подробное руководство» — книга 2012 года. Стыд мне и позор, до конца ее пока что не дочитала, но множество полезных вещей из нее почерпнула. Поговаривают, что скоро выйдет 7 издание. Жду.</li>
<li>Не хочу повторяться, просто зайдите сюда: <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/pages/recommended-books" rel="noopener noreferrer" target="_blank">рекомендуемые Хекслетом книги</a>.
Я пока читаю «Грокаем алгоритмы» и «Код. Тайный язык информатики». Отличные книги, очень подробно и понятно разъясняют довольно сложную для понимания информацию. Надеюсь когда-нибудь осилить весь список.</li>
</ol>
<p><strong>Какой фронтендер без знания верстки? От себя рекомендую:</strong></p>
<ol>
<li>«Новая большая книга CSS» — Дэвид Макфарланд.</li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://webref.ru/" rel="noopener noreferrer" target="_blank">webref.ru</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://htmlacademy.ru/" rel="noopener noreferrer" target="_blank">htmlacademy.ru</a> — отличные интерактивные курсы по верстке.</li>
</ol>
<p><strong>React, Redux:</strong>
<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://maxfarseer.gitbooks.io/react-course-ru-v2/content/" rel="noopener noreferrer" target="_blank">https://maxfarseer.gitbooks.io/react-course-ru-v2/content/</a>
<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://maxfarseer.gitbooks.io/redux-course-ru-v2/content/" rel="noopener noreferrer" target="_blank">https://maxfarseer.gitbooks.io/redux-course-ru-v2/content/</a>
Отличные учебники. Они и курсы «Хекслета» помогли мне понять что к чему и не захлебнуться в потоке информации.</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Анна Цуканова</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">6 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/indiana-dzhons-v-poiskah-utrachennogo-prizvaniya/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">31</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/nachinayuschim-ot-nachavshego-ili-put-s-zavoda-cherez-geymdev-v-veb-razrabotku">Начинающим от начавшего, или Путь с завода через геймдев в веб-разработку</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/istoriya-transformatsii-elfa-v-programmista">История трансформации эльфа в программиста</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ya-hotel-podtyanut-jquery-i-sluchayno-umnozhil-zarplatu-na-dva">Как я хотел подтянуть jQuery и случайно умножил зарплату на два</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>