Всем привет! Меня зовут Сергей, мне 28 лет, живу в Чусовом — небольшом городе в Пермском крае. Мой путь в программирование был интересным и насыщенным. Я ушел с работы на железной дороге, сделал четыре проекта на Хекслете, завалил три собеседования, но в конце концов прокачался как программист и получил первую работу в крутой компании.
Профиль Сергея на Хекслете со всеми пройденными курсами можно посмотреть здесь, а код выполненных проектов — на GitHub
Содержание
Программирование в армии и работа на железной дороге
В школе моими любимыми предметами были математика, физика и информатика. По ним в старших классах и профилировался, участвовал в олимпиадах, но каких-то выдающихся результатов не добивался, просто нравилось. Тогда же я написал первые строчки кода на Pascal — просто в рамках школьной программы.
После школы я поступил в Уральский Государственный университет путей сообщения в Екатеринбург на специальность «Электроснабжение железных дорог». Учеба в университете давалась легко, я без особых проблем закончил университет с красным дипломом. Кроме небольших программок на Delphi и ассемблере, которые входили в программу обучения, к программированию я не возвращался.
После университета я вернулся в родной город работать электромехаником на железной дороге, но через год уехал за три тысячи километров в Красноярский край на срочную службу в армии. Там довелось поработать с автоматизацией отчетности в Excel: вместе с сослуживцем мы с помощью Excel VBA и Access придумали и реализовали программу для автоматического формирования отчетов, которые раньше заполнялись вручную карандашами и ручкой. Мне понравилось этим заниматься, у меня начали зарождаться мысли о переходе в сферу IT.
После армии я вернулся домой на прежнюю должность, а через пару месяцев получил должность начальника технического отдела, на которой проработал следующие 3,5 года. За это время я понял, что дальше расти в этом направлении не особо хочется, устал от специфики железной дороги и вернулся к мыслям об IT.
Путь к Хекслету
В начале 2021 года я решил серьезно изучать программирование, меня привлекала сфера веб-разработки. Я покопался на Udemy, нашел первый понравившийся курс на английском языке и начал по вечерам после работы его проходить. Заодно записался на курсы английского. К началу лета осилил курс, но понял, что знаний все равно недостаточно для самостоятельной работы: они довольно поверхностны и слабо применимы. Решил поискать более серьезные курсы. Стал читать статьи и форумы, попробовал бесплатную часть по фронтенд разработке на Яндекс.Практикуме. В целом впечатление было положительным, но чего-то не хватало, и вот где-то в комментариях на Хабре я приметил Хекслет. Начал проходить «Введение в программирование» и понял, что это именно то, что мне нужно. Практически сразу приобрел групповой формат обучения по профессии «Фронтенд-разработчик».
Процесс обучения на Хекслете привлек тем, что основной материал можно изучать самостоятельно в любое время, в удобном темпе, есть классная веб IDE на все упражнения с автоматическими тестами. Все это дополняется еженедельными вебинарами с наставником и возможностью пообщаться в чате группы и комьюнити Хексета.
Курсы Хекслета серьезные, дают фундаментальные знания и требуют вдумчивого прохождения. Совмещать обучение с работой было довольно непросто, особенно учитывая нередкие переработки. Поэтому учился я по большей части «залпом» во время отпуска и больничных. Профессию удалось пройти за три таких «залпа» по 2-3 недели, но в общей сложности все заняло примерно положенные по программе восемь месяцев.
Помимо Хекслета я еще периодически читал Хабр, смотрел рекомендованные видео на YouTube, читал книги «Идеальный программист», «Совершенный код», «Грокаем алгоритмы», «Вы не знаете JS», «Профессиональный TypeScript», начал СИКП.
Читайте также:
Лучшие и важные книги для программистов любых направлений. Рекомендуемые книги от Хекслета
Проекты заставили попотеть
Я прошел все четыре проекта из профессии «Фронтенд-разработчик» и первый проект из профессии «Верстальщик». Это была самая интересная часть обучения, где наконец-то можно было попробовать полученные знания на практике, неплохо их дополнить, а главное — получить обратную связь от наставника и пройти несколько итераций ревью.
Самыми легкими мне показались первый и третий проекты: небольшое консольное приложение с математическими играми и RSS-агрегатор. Особых сложностей с ними не возникло, и сдал я их после 3-4 проверок.
Второй проект — Вычислитель отличий между двумя JSON/YML файлами — заставил попотеть над алгоритмом расставления пробелов при форматировании, но в итоге я сдал его после трех проверок.
А вот четвертый проект, оказался самым проблемным, хотя и самым интересным, поскольку требовал применения всех полученных знаний и даже больше. Пришлось хорошенько покопаться в документации React и Socket.io. В период его прохождения успели поменяться некоторые требования, из-за чего пришлось переписать неплохой кусок проекта. У группы сменилось три наставника и все три успели перевьюить мой проект, что вылилось в семь итераций. Также несколько раз возникали на первый взгляд необъяснимые проблемы с прохождением автотестов, одна из которых оказалась спрятана прямо в них. В общем, четвертый проект прям круто прокачал.
Три попытки найти работу и выводы из неудач
С поиском работы я тянул до последнего, пока ко мне в личку не пришла Алиса из карьерного трека. К этому времени у меня уже подходил к завершению четвертый проект. Я сделал резюме на Hexlet CV, поправил по замечаниям и начал потихонечку смотреть вакансии, а Алиса предлагать компаниям мое резюме.
Первое предложение поступило в Telegram, от рекрутера, который увидел мое резюме на Hexlet CV. Это была веб-студия, делающая онлайн-курсы на некой платформе. Мне предложили тестовое задание, я начал его делать, но мне не понравилась платформа, на которой предполагалось работать. Ради интереса я все же его закончил, отдал и благополучно забыл.
Через некоторое время я заявился на стажировку в Kaiten и получил приглашение на собеседование. Это было по сути мое первое в жизни собеседование. В целом все прошло неплохо, но волнение и малый опыт в решении задачек взяли свое, хотя я и отлично понимал алгоритм решения.
Было три задачки:
- Классическая fizzBuzz, где надо было выводить в консоль числа, причем на четных — fizz, на нечетных — buzz, а на кратных 15 — fizzBuzz. Эта задачка решилась очень быстро и без проблем.
- Написать функцию flatten для разворачивания вложенных массивов любой вложенности, где я начал тупить уже у самого решения и так и не довел до конца.
- Написать функцию, которая извлекала бы из объекта свойство по переданному строковому пути и в случае, если такого свойства нет, отдавала бы переданное третьим параметром значение. На этой задаче случился аналогичный тупняк в самом конце, как и на предыдущей.
В итоге, конечно, со стажировкой я пролетел :)
Вскоре после первого собеседования пригласили на собеседование в 0point. На нем было два этапа. На первом просто пообщались за жизнь, узнали ожидания. На втором надо было написать React-компонент, который рендерил табличку с определенными полями из массива товаров и прикрутить к ней сортировку с некоторыми хитростями. В этот раз с задачей я справился, все прошло хорошо, и мы договорились о сотрудничестве. К сожалению, дальнейшая работа не сложилась, поскольку заказчик проекта решил провести свое техническое собеседование для нашей новоиспеченной команды и не впечатлился.
После этого я решил, что стоит еще прокачаться перед дальнейшим поиском, ушел с работы на железной дороге и начал участвовать в OpenSource проекте hexlet-sicp и параллельно взял заказ на переработку сайта небольшого интернет-магазина.
Читайте также:
Как выбрать свой первый опен-сорс проект: инструкция от Хекслета
После первого принятого пулл-реквеста в hexlet-sicp я начал ощущать себя более уверенно как разработчик. Задача была перевести редактор кода в упражнениях с liwewire на React. Тут я получил опыт разворачивания проектов, работы с гитом в проекте, где ты не единственный разработчик, поработал немного с PHP, Laravel, ну и, конечно, попрактиковал React с JavaScript. Я всем советую начать участвовать в OpenSource как можно раньше. Это может показаться страшно, но страх пропадет, как только вы попробуете развернуть проект и что-то в нем написать. Также по любым вопросам вам всегда помогут в Слаке. Так можно сэкономить уйму времени и гораздо увереннее чувствовать себя на собеседованиях.
Небольшой опыт фриланса также добавил мне уверенности, поскольку я увидел вживую к чему приводит неправильный подход к архитектуре и пренебрежение хорошими инженерными практиками. Проект, с которым я работал, был написан на PHP в Bitrix, также частично использовался JavaScript с JQuery. Разобраться в творящемся хаосе было непросто, пришлось переписать практически весь проект просто для того, чтобы с ним можно было дальше работать, но в итоге получилось довольно неплохо. Сайт был приведен к более современному виду и адаптирован под мобильные устройства, довелось поработать с переносом проекта на другой хостинг, с настройкой почтового сервера, с установкой SSL сертификатов.
Первая стажировка и первая работа
Где-то в апреле-мае 2022 года я увидел сообщение о наборе студентов Хекслета на стажировку в Контур. О компании ранее слышал лестные отзывы от знакомых, и даже хотел записаться на их курсы. Решил попробовать, отправил резюме, получил приглашение на собеседование. Перед техническим собеседованием надо было записать видеоинтервью о себе по перечню вопросов. На собеседовании сначала поговорили о моем обучении и опыте, задавали вопросы по видеоинтервью, предложили несколько задач на чтение и понимание кода и в конце одну задачу. Надо было написать функцию, которая возвращала бы количество полных колод, которые можно составить из переданного массива игральных карт. Собеседование прошло отлично, в этот раз задачу удалось решить без проблем. Я даже обсудил несколько вариантов решения, и у меня осталось время позадавать вопросы о компании. Через несколько дней после собеседования я получил приглашение на стажировку в Новосибирский офис разработки.
Стажировка длилась два месяца. Уже на первой неделе удалось довольно быстро влиться в работу и начать выполнять задачи спринта. В компании хорошая инженерная культура, приятно читать и писать код. И даже несмотря на то, что я раньше не работал с TypeScript и MobX, которые используются в проектах моей команды, благодаря полученным на Хекслете знаниям процесс вкатывания прошел практически незаметно и приятно. А с помощью крутого наставника Саши можно просто горы свернуть. От компании, команды и работы я в восторге, стажировка пролетела незаметно. По итогу я остался работать в команде уже в качестве джуна.
Сейчас я работаю младшим инженером-программистом в команде Сервисов взаимодействия клиентов с Контуром, где и стажировался. Занимаюсь фронтендом в таких проектах как:
- Центр поддержки (виджет, через который можно оставить обратную связь, написать в чат техподдержки, заказать обратный звонок, проверить статус обращения и т. д.)
- Чат с техподдержкой
- Соответствующие административные панели.
Стек технологий — TypeScript, React, MobX. Продолжаю профессионально развиваться в текущих проектах, читать статьи и книги, начатые еще во время обучения на Хекслете.
Несколько мыслей и советов
Я считаю, что главное — получить фундаментальные знания основ программирования и архитектуры. Язык можно выбрать любой, потому что технологии могут меняться, но фундамент остается прежним. Нужно не подстраиваться под какой-то конкретный язык/фреймворк, а выбирать их исходя из того, что лучше подходит для решения задачи. Конечно, начинать стоит с актуального стека технологий, которые требуются в вакансиях, чтобы получить первый опыт работы.
Софт-скиллы — также очень нужная штука. Надо уметь и, главное, не стесняться задавать вопросы, как можно больше общаться, обсуждать задачи, не замыкаться. Полезно уметь адекватно оценивать свое время и возможности, но это придет с опытом.
Не стоит зацикливаться на возникающих проблемах, иногда стоит отвлечься на некоторое время. Если застряли над какой-то задачей, можно пойти посмотреть кино, почитать художественную литературу, поспать, зачастую решение может прийти даже во сне (у меня не раз такое было), не надо бояться задавать даже глупые вопросы — глупо будет этого не сделать.
Главное — иметь желание. Если действительно хочешь что-то изменить (например, профессию), то все получится, но если желания нет, то ничего не поможет.
Никогда не останавливайтесь:
В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть [сотни курсов по разработке на разных языках и технологиях] (https://ru.hexlet.io/courses?utm_source=hexlet&utm_medium=blog&utm_campaign=all-courses&utm_content=iz-elektromehanika-v-programmista&utm_term=post_230922)
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 19:56:27 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="gxG7_J_JsW9vMkCFBVtryR_xRhtM-kve8SnPREBlXa5swHDLbbccD9lxZB0JVJu-3_hrsUTNtXxMyVUQEmK6wA";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком (Истории успеха) | Блог Хекслета</title>
<meta name="description" content="Информационный материал в блоге Хекслета: Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком (категория: Истории успеха). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/iz-elektromehanika-v-programmista-kak-proekty-na-hekslete-i-open-sors-pomogli-mne-stat-razrabotchikom">
<meta property="og:title" content="Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком (Истории успеха) | Блог Хекслета">
<meta property="og:description" content="Информационный материал в блоге Хекслета: Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком (категория: Истории успеха). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе Хекслет.">
<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="N_O4jM4lNIixrCGZKEFJfBcIK7wW1iSq0XqMbs8Jlr3YInO7PFuZ6AfvBQEkTrkL1wEGFh7h2ghsmhY6nQ5x0w" />
<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/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzczMSwicHVyIjoiYmxvYl9pZCJ9fQ==--f5df4883f3f678321cb4fa96e9ce657bd5ee1adf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3NywicHVyIjoiYmxvYl9pZCJ9fQ==--745022c2f47ba4203dd11cd8922cd55d5bebfdca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0NiwicHVyIjoiYmxvYl9pZCJ9fQ==--5c088db10d02b94be027408f50ecf11c23d9d4cb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Version%20control-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T19:56:27.098Z","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":"w-ux3PkAhWneQNR4I3Ud8qfMtW636Jc7RybO9CDs3QIsOnrrC34oCWgD8OAveu2FZ8WYxL_faZn6xlSgcus6bA","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Сергей Каликин","id":363228,"is_tutor":false},"tags":[{"id":1119,"slug":"bez-steka","name":"Без стека"}],"id":2031,"title":"Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком","slug":"iz-elektromehanika-v-programmista-kak-proekty-na-hekslete-i-open-sors-pomogli-mne-stat-razrabotchikom","state":"published","summary":"Всем привет! Меня зовут Сергей, мне 28 лет, живу в Чусовом — небольшом городе в Пермском крае. Мой путь в программирование был интересным и насыщенным. Я ушел с работы на железной дороге, сделал четыре проекта на Хекслете, завалил три собеседования, но в конце концов прокачался как программист и получил первую работу в крутой компании.","votes_count":19,"created_at":"2022-09-22T07:43:58.158Z","published_at":"2022-09-23T09:57:52.007Z","body":"**Всем привет! Меня зовут Сергей, мне 28 лет, живу в Чусовом — небольшом городе в Пермском крае. Мой путь в программирование был интересным и насыщенным. Я ушел с работы на железной дороге, сделал четыре проекта на Хекслете, завалил три собеседования, но в конце концов прокачался как программист и получил первую работу в крутой компании.**\r\n\r\n::programs\r\n\r\n\r\n> Профиль Сергея на Хекслете со всеми пройденными курсами можно посмотреть [здесь](https://ru.hexlet.io/u/sergey9359), а код выполненных проектов — на [GitHub](https://github.com/ssk93-dev)\r\n\r\n## Содержание\n\n## Программирование в армии и работа на железной дороге\r\n\r\nВ школе моими любимыми предметами были математика, физика и информатика. По ним в старших классах и профилировался, участвовал в олимпиадах, но каких-то выдающихся результатов не добивался, просто нравилось. Тогда же я написал первые строчки кода на Pascal — просто в рамках школьной программы.\r\n\r\nПосле школы я поступил в Уральский Государственный университет путей сообщения в Екатеринбург на специальность «Электроснабжение железных дорог». Учеба в университете давалась легко, я без особых проблем закончил университет с красным дипломом. Кроме небольших программок на Delphi и ассемблере, которые входили в программу обучения, к программированию я не возвращался.\r\n\r\nПосле университета я вернулся в родной город работать электромехаником на железной дороге, но через год уехал за три тысячи километров в Красноярский край на срочную службу в армии. Там довелось поработать с автоматизацией отчетности в Excel: вместе с сослуживцем мы с помощью Excel VBA и Access придумали и реализовали программу для автоматического формирования отчетов, которые раньше заполнялись вручную карандашами и ручкой. Мне понравилось этим заниматься, у меня начали зарождаться мысли о переходе в сферу IT.\r\n\r\nПосле армии я вернулся домой на прежнюю должность, а через пару месяцев получил должность начальника технического отдела, на которой проработал следующие 3,5 года. За это время я понял, что дальше расти в этом направлении не особо хочется, устал от специфики железной дороги и вернулся к мыслям об IT.\r\n\r\n::posts\r\n\r\n\r\n## Путь к Хекслету\r\n\r\nВ начале 2021 года я решил серьезно изучать программирование, меня привлекала сфера веб-разработки. Я покопался на Udemy, нашел первый понравившийся курс на английском языке и начал по вечерам после работы его проходить. Заодно записался на курсы английского. К началу лета осилил курс, но понял, что знаний все равно недостаточно для самостоятельной работы: они довольно поверхностны и слабо применимы. Решил поискать более серьезные курсы. Стал читать статьи и форумы, попробовал бесплатную часть по фронтенд разработке на Яндекс.Практикуме. В целом впечатление было положительным, но чего-то не хватало, и вот где-то в комментариях на Хабре я приметил Хекслет. Начал проходить «[Введение в программирование](https://ru.hexlet.io/courses/introduction_to_programming?utm_source=blog&utm_medium=referal&utm_content=introduction_to_programming)» и понял, что это именно то, что мне нужно. Практически сразу приобрел групповой формат обучения по профессии «[Фронтенд-разработчик](https://ru.hexlet.io/programs/frontend?utm_source=blog&utm_medium=referal&utm_content=frontend)».\r\n\r\nПроцесс обучения на Хекслете привлек тем, что основной материал можно изучать самостоятельно в любое время, в удобном темпе, есть классная веб IDE на все упражнения с автоматическими тестами. Все это дополняется еженедельными вебинарами с наставником и возможностью пообщаться в чате группы и [комьюнити Хексета](https://t.me/hexletcommunity).\r\n\r\nКурсы Хекслета серьезные, дают фундаментальные знания и требуют вдумчивого прохождения. Совмещать обучение с работой было довольно непросто, особенно учитывая нередкие переработки. Поэтому учился я по большей части «залпом» во время отпуска и больничных. Профессию удалось пройти за три таких «залпа» по 2-3 недели, но в общей сложности все заняло примерно положенные по программе восемь месяцев.\r\n\r\nПомимо Хекслета я еще периодически читал Хабр, смотрел рекомендованные видео на YouTube, читал книги «Идеальный программист», «Совершенный код», «Грокаем алгоритмы», «Вы не знаете JS», «Профессиональный TypeScript», начал СИКП.\r\n\r\n\r\n> ### Читайте также:\r\n> Лучшие и важные книги для программистов любых направлений. [Рекомендуемые книги от Хекслета](https://ru.hexlet.io/pages/recommended-books?utm_source=blog&utm_medium=referal&utm_content=recommended-books)\r\n\r\n## Проекты заставили попотеть\r\n\r\nЯ прошел все четыре проекта из профессии «Фронтенд-разработчик» и первый проект из профессии «Верстальщик». Это была самая интересная часть обучения, где наконец-то можно было попробовать полученные знания на практике, неплохо их дополнить, а главное — получить обратную связь от наставника и пройти несколько итераций ревью.\r\n\r\nСамыми легкими мне показались первый и третий проекты: небольшое консольное приложение с математическими играми и RSS-агрегатор. Особых сложностей с ними не возникло, и сдал я их после 3-4 проверок.\r\n\r\nВторой проект — Вычислитель отличий между двумя JSON/YML файлами — заставил попотеть над алгоритмом расставления пробелов при форматировании, но в итоге я сдал его после трех проверок.\r\n\r\nА вот четвертый проект, оказался самым проблемным, хотя и самым интересным, поскольку требовал применения всех полученных знаний и даже больше. Пришлось хорошенько покопаться в документации React и Socket.io. В период его прохождения успели поменяться некоторые требования, из-за чего пришлось переписать неплохой кусок проекта. У группы сменилось три наставника и все три успели перевьюить мой проект, что вылилось в семь итераций. Также несколько раз возникали на первый взгляд необъяснимые проблемы с прохождением автотестов, одна из которых оказалась спрятана прямо в них. В общем, четвертый проект прям круто прокачал.\r\n\r\n## Три попытки найти работу и выводы из неудач\r\n\r\nС поиском работы я тянул до последнего, пока ко мне в личку не пришла Алиса из карьерного трека. К этому времени у меня уже подходил к завершению четвертый проект. Я сделал резюме на Hexlet CV, поправил по замечаниям и начал потихонечку смотреть вакансии, а Алиса предлагать компаниям мое резюме.\r\n\r\nПервое предложение поступило в Telegram, от рекрутера, который увидел мое резюме на Hexlet CV. Это была веб-студия, делающая онлайн-курсы на некой платформе. Мне предложили тестовое задание, я начал его делать, но мне не понравилась платформа, на которой предполагалось работать. Ради интереса я все же его закончил, отдал и благополучно забыл.\r\n\r\nЧерез некоторое время я заявился на стажировку в Kaiten и получил приглашение на собеседование. Это было по сути мое первое в жизни собеседование. В целом все прошло неплохо, но волнение и малый опыт в решении задачек взяли свое, хотя я и отлично понимал алгоритм решения.\r\n\r\nБыло три задачки:\r\n\r\n1. Классическая [fizzBuzz](https://ru.hexlet.io/challenges/js_basics_fizzbuzz_exercise?utm_source=blog&utm_medium=referal&utm_content=js_basics_fizzbuzz_exercise), где надо было выводить в консоль числа, причем на четных — fizz, на нечетных — buzz, а на кратных 15 — fizzBuzz. Эта задачка решилась очень быстро и без проблем.\r\n2. Написать функцию flatten для разворачивания вложенных массивов любой вложенности, где я начал тупить уже у самого решения и так и не довел до конца.\r\n3. Написать функцию, которая извлекала бы из объекта свойство по переданному строковому пути и в случае, если такого свойства нет, отдавала бы переданное третьим параметром значение. На этой задаче случился аналогичный тупняк в самом конце, как и на предыдущей.\r\n\r\nВ итоге, конечно, со стажировкой я пролетел :)\r\n\r\nВскоре после первого собеседования пригласили на собеседование в 0point. На нем было два этапа. На первом просто пообщались за жизнь, узнали ожидания. На втором надо было написать React-компонент, который рендерил табличку с определенными полями из массива товаров и прикрутить к ней сортировку с некоторыми хитростями. В этот раз с задачей я справился, все прошло хорошо, и мы договорились о сотрудничестве. К сожалению, дальнейшая работа не сложилась, поскольку заказчик проекта решил провести свое техническое собеседование для нашей новоиспеченной команды и не впечатлился.\r\n\r\nПосле этого я решил, что стоит еще прокачаться перед дальнейшим поиском, ушел с работы на железной дороге и начал участвовать в OpenSource проекте [hexlet-sicp](https://sicp.hexlet.io/?utm_source=blog&utm_medium=referal&utm_content=sicp) и параллельно взял заказ на переработку сайта небольшого интернет-магазина.\r\n\r\n\r\n> ### Читайте также:\r\n> Как выбрать свой первый опен-сорс проект: [инструкция от Хекслета](https://ru.hexlet.io/blog/posts/kak-vybrat-svoy-pervyy-open-sors-proekt-instruktsiya-ot-heksleta?utm_source=blog&utm_medium=referal&utm_content=kak-vybrat-svoy-pervyy-open-sors)\r\n\r\nПосле первого принятого пулл-реквеста в hexlet-sicp я начал ощущать себя более уверенно как разработчик. Задача была перевести редактор кода в упражнениях с liwewire на React. Тут я получил опыт разворачивания проектов, работы с гитом в проекте, где ты не единственный разработчик, поработал немного с PHP, Laravel, ну и, конечно, попрактиковал React с JavaScript. Я всем советую начать участвовать в OpenSource как можно раньше. Это может показаться страшно, но страх пропадет, как только вы попробуете развернуть проект и что-то в нем написать. Также по любым вопросам вам всегда помогут в Слаке. Так можно сэкономить уйму времени и гораздо увереннее чувствовать себя на собеседованиях.\r\n\r\nНебольшой опыт фриланса также добавил мне уверенности, поскольку я увидел вживую к чему приводит неправильный подход к архитектуре и пренебрежение хорошими инженерными практиками. Проект, с которым я работал, был написан на PHP в Bitrix, также частично использовался JavaScript с JQuery. Разобраться в творящемся хаосе было непросто, пришлось переписать практически весь проект просто для того, чтобы с ним можно было дальше работать, но в итоге получилось довольно неплохо. Сайт был приведен к более современному виду и адаптирован под мобильные устройства, довелось поработать с переносом проекта на другой хостинг, с настройкой почтового сервера, с установкой SSL сертификатов.\r\n\r\n## Первая стажировка и первая работа\r\n\r\nГде-то в апреле-мае 2022 года я увидел сообщение о наборе студентов Хекслета на стажировку в [Контур](https://ru.hexlet.io/blog/posts/kak-ustroena-rabota-programmistov-v-konture?utm_source=blog&utm_medium=referal&utm_content=rabota-programmistov-v-konture). О компании ранее слышал лестные отзывы от знакомых, и даже хотел записаться на их курсы. Решил попробовать, отправил резюме, получил приглашение на собеседование. Перед техническим собеседованием надо было записать видеоинтервью о себе по перечню вопросов. На собеседовании сначала поговорили о моем обучении и опыте, задавали вопросы по видеоинтервью, предложили несколько задач на чтение и понимание кода и в конце одну задачу. Надо было написать функцию, которая возвращала бы количество полных колод, которые можно составить из переданного массива игральных карт. Собеседование прошло отлично, в этот раз задачу удалось решить без проблем. Я даже обсудил несколько вариантов решения, и у меня осталось время позадавать вопросы о компании. Через несколько дней после собеседования я получил приглашение на стажировку в Новосибирский офис разработки.\r\n\r\nСтажировка длилась два месяца. Уже на первой неделе удалось довольно быстро влиться в работу и начать выполнять задачи спринта. В компании хорошая инженерная культура, приятно читать и писать код. И даже несмотря на то, что я раньше не работал с TypeScript и MobX, которые используются в проектах моей команды, благодаря полученным на Хекслете знаниям процесс вкатывания прошел практически незаметно и приятно. А с помощью крутого наставника Саши можно просто горы свернуть. От компании, команды и работы я в восторге, стажировка пролетела незаметно. По итогу я остался работать в команде уже в качестве джуна.\r\n\r\nСейчас я работаю младшим инженером-программистом в команде Сервисов взаимодействия клиентов с Контуром, где и стажировался. Занимаюсь фронтендом в таких проектах как:\r\n\r\n- Центр поддержки (виджет, через который можно оставить обратную связь, написать в чат техподдержки, заказать обратный звонок, проверить статус обращения и т. д.)\r\n- Чат с техподдержкой\r\n- Соответствующие административные панели.\r\n\r\nСтек технологий — TypeScript, React, MobX. Продолжаю профессионально развиваться в текущих проектах, читать статьи и книги, начатые еще во время обучения на Хекслете.\r\n\r\n\r\n\r\n## Несколько мыслей и советов\r\n\r\nЯ считаю, что главное — получить фундаментальные знания основ программирования и архитектуры. Язык можно выбрать любой, потому что технологии могут меняться, но фундамент остается прежним. Нужно не подстраиваться под какой-то конкретный язык/фреймворк, а выбирать их исходя из того, что лучше подходит для решения задачи. Конечно, начинать стоит с актуального стека технологий, которые требуются в вакансиях, чтобы получить первый опыт работы.\r\n\r\nСофт-скиллы — также очень нужная штука. Надо уметь и, главное, не стесняться задавать вопросы, как можно больше общаться, обсуждать задачи, не замыкаться. Полезно уметь адекватно оценивать свое время и возможности, но это придет с опытом.\r\n\r\nНе стоит зацикливаться на возникающих проблемах, иногда стоит отвлечься на некоторое время. Если застряли над какой-то задачей, можно пойти посмотреть кино, почитать художественную литературу, поспать, зачастую решение может прийти даже во сне (у меня не раз такое было), не надо бояться задавать даже глупые вопросы — глупо будет этого не сделать.\r\n\r\nГлавное — иметь желание. Если действительно хочешь что-то изменить (например, профессию), то все получится, но если желания нет, то ничего не поможет.\r\n\r\n\r\n> ### Никогда не останавливайтесь:\r\n> В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть [сотни курсов по разработке на разных языках и технологиях] (https://ru.hexlet.io/courses?utm_source=hexlet&utm_medium=blog&utm_campaign=all-courses&utm_content=iz-elektromehanika-v-programmista&utm_term=post_230922)","reading_time":7,"url":"https://ru.hexlet.io/blog/posts/iz-elektromehanika-v-programmista-kak-proekty-na-hekslete-i-open-sors-pomogli-mne-stat-razrabotchikom","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":1669,"title":"Как Хекслет помог мне перейти от наполнения сайтов контентом к фулстек-разработке","slug":"kak-hexlet-pomog-mne-pereyti-ot-napolneniya-saytov-kontentom-k-fullstack-razrabotke","summary":"Меня зовут Астемир, мне 29 лет. Живу в прекрасном городе Нальчик в Кабардино-Балкарской республике. Я начинал свой путь в программировании с небольшой компании, где почти не занимался настоящей разработкой, но благодаря Хекслету вырос в фронтенде, изучил бэкенд и стал настоящим фулстек-программистом. На данный момент работаю удаленно на компанию ITech.","created_at":"2022-01-02T11:27:13.895Z","published_at":"2023-01-10T11:46:56.915Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":2000,"title":"Из нефтегазовой отрасли – на работу фронтенд-разработчиком в red_mad_robot","slug":"iz-neftegazovoy-otrasli-na-rabotu-frontend-razrabotchikom","summary":"Всем привет! Расскажу о том, как работа в нефтегазовой отрасли привела меня к программированию, а обучение на Хекслете помогло получить заветный оффер на работу миддл фронтенд-разработчиком.","created_at":"2022-09-06T19:45:27.544Z","published_at":"2022-10-13T10:03:53.364Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1996,"title":"Из переводчика в разработчика: как я искал компанию с высокой инженерной культурой","slug":"iz-perevodchika-v-razrabotchika-kak-ya-iskal-kompaniyu-s-vysokoy-inzhenernoy-kulturoy","summary":"История о том, как в 30 лет я расхотел быть гуманитарием и решил вкатиться в IT. Нашел первую работу благодаря Хекслету и пошел еще дальше.","created_at":"2022-09-04T15:39:05.961Z","published_at":"2022-09-14T10:01:25.465Z","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":null,"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":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":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":24,"slug":"python-django-development","title":"Django","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":300,"duration_in_months":2},"id":36,"slug":"python-django-developer","title":"Django","subtitle":"Навык создания веб-приложений на Django, необходимый для получения оффера на позицию Python-разработчика","subtitle_for_lists":"Изучите фреймворк Django для создания веб-приложений ","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"python-django-development","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0NiwicHVyIjoiYmxvYl9pZCJ9fQ==--5c088db10d02b94be027408f50ecf11c23d9d4cb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Version%20control-bro.png"},{"stack":{"id":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"}]},"url":"/blog/posts/iz-elektromehanika-v-programmista-kak-proekty-na-hekslete-i-open-sors-pomogli-mne-stat-razrabotchikom","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Сергей Каликин","name":"Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком","datePublished":"2022-09-23T09:57:52.007Z","headline":"Всем привет! Меня зовут Сергей, мне 28 лет, живу в Чусовом — небольшом городе в Пермском крае. Мой путь в программирование был интересным и насыщенным. Я ушел с работы на железной дороге, сделал четыре проекта на Хекслете, завалил три собеседования, но в конце концов прокачался как программист и получил первую работу в крутой компании.","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":19}]}</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/iz-elektromehanika-v-programmista-kak-proekty-na-hekslete-i-open-sors-pomogli-mne-stat-razrabotchikom","name":"Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/success">Истории успеха</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="Без стека"><span class="m_5add502a mantine-Badge-label">Без стека</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">23 сентября 2022 г.</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>7 минут</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>19</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="Из электромеханика в программиста: как проекты на Хекслете и опенсорс помогли мне стать разработчиком"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p><strong>Всем привет! Меня зовут Сергей, мне 28 лет, живу в Чусовом — небольшом городе в Пермском крае. Мой путь в программирование был интересным и насыщенным. Я ушел с работы на железной дороге, сделал четыре проекта на Хекслете, завалил три собеседования, но в конце концов прокачался как программист и получил первую работу в крутой компании.</strong></p>
<style data-mantine-styles="inline">.__m__-_R_3derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_3derddmiub_{--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_3derddmiub_" 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/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/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/python-django-developer?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Django</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите фреймворк Django для создания веб-приложений </p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0NiwicHVyIjoiYmxvYl9pZCJ9fQ==--5c088db10d02b94be027408f50ecf11c23d9d4cb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Version%20control-bro.png" alt="Django" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/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="/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>
<blockquote>
<p>Профиль Сергея на Хекслете со всеми пройденными курсами можно посмотреть <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/u/sergey9359" rel="noopener noreferrer" target="_blank">здесь</a>, а код выполненных проектов — на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://github.com/ssk93-dev" rel="noopener noreferrer" target="_blank">GitHub</a></p>
</blockquote>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Программирование в армии и работа на железной дороге</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-3">Путь к Хекслету</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-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-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>
</ul>
<h2 id="heading-2-2">Программирование в армии и работа на железной дороге</h2>
<p>В школе моими любимыми предметами были математика, физика и информатика. По ним в старших классах и профилировался, участвовал в олимпиадах, но каких-то выдающихся результатов не добивался, просто нравилось. Тогда же я написал первые строчки кода на Pascal — просто в рамках школьной программы.</p>
<p>После школы я поступил в Уральский Государственный университет путей сообщения в Екатеринбург на специальность «Электроснабжение железных дорог». Учеба в университете давалась легко, я без особых проблем закончил университет с красным дипломом. Кроме небольших программок на Delphi и ассемблере, которые входили в программу обучения, к программированию я не возвращался.</p>
<p>После университета я вернулся в родной город работать электромехаником на железной дороге, но через год уехал за три тысячи километров в Красноярский край на срочную службу в армии. Там довелось поработать с автоматизацией отчетности в Excel: вместе с сослуживцем мы с помощью Excel VBA и Access придумали и реализовали программу для автоматического формирования отчетов, которые раньше заполнялись вручную карандашами и ручкой. Мне понравилось этим заниматься, у меня начали зарождаться мысли о переходе в сферу IT.</p>
<p>После армии я вернулся домой на прежнюю должность, а через пару месяцев получил должность начальника технического отдела, на которой проработал следующие 3,5 года. За это время я понял, что дальше расти в этом направлении не особо хочется, устал от специфики железной дороги и вернулся к мыслям об IT.</p>
<style data-mantine-styles="inline">.__m__-_R_lderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_lderddmiub_{--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_lderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-hexlet-pomog-mne-pereyti-ot-napolneniya-saytov-kontentom-k-fullstack-razrabotke"><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">Меня зовут Астемир, мне 29 лет. Живу в прекрасном городе Нальчик в Кабардино-Балкарской республик...</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">10 января 2023 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-neftegazovoy-otrasli-na-rabotu-frontend-razrabotchikom"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Из нефтегазовой отрасли – на работу фронтенд-разработчиком в red_mad_robot"/></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">Из нефтегазовой отрасли – на работу фронтенд-разработчиком в red_mad_robot</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">13 октября 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-perevodchika-v-razrabotchika-kak-ya-iskal-kompaniyu-s-vysokoy-inzhenernoy-kulturoy"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Из переводчика в разработчика: как я искал компанию с высокой инженерной культурой"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Из переводчика в разработчика: как я искал компанию с высокой инженерной культурой</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">История о том, как в 30 лет я расхотел быть гуманитарием и решил вкатиться в IT. Нашел первую раб...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">14 сентября 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-3">Путь к Хекслету</h2>
<p>В начале 2021 года я решил серьезно изучать программирование, меня привлекала сфера веб-разработки. Я покопался на Udemy, нашел первый понравившийся курс на английском языке и начал по вечерам после работы его проходить. Заодно записался на курсы английского. К началу лета осилил курс, но понял, что знаний все равно недостаточно для самостоятельной работы: они довольно поверхностны и слабо применимы. Решил поискать более серьезные курсы. Стал читать статьи и форумы, попробовал бесплатную часть по фронтенд разработке на Яндекс.Практикуме. В целом впечатление было положительным, но чего-то не хватало, и вот где-то в комментариях на Хабре я приметил Хекслет. Начал проходить «<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/courses/introduction_to_programming?utm_source=blog&utm_medium=referal&utm_content=introduction_to_programming" 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/programs/frontend?utm_source=blog&utm_medium=referal&utm_content=frontend" rel="noopener noreferrer" target="_blank">Фронтенд-разработчик</a>».</p>
<p>Процесс обучения на Хекслете привлек тем, что основной материал можно изучать самостоятельно в любое время, в удобном темпе, есть классная веб IDE на все упражнения с автоматическими тестами. Все это дополняется еженедельными вебинарами с наставником и возможностью пообщаться в чате группы и <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://t.me/hexletcommunity" rel="noopener noreferrer" target="_blank">комьюнити Хексета</a>.</p>
<p>Курсы Хекслета серьезные, дают фундаментальные знания и требуют вдумчивого прохождения. Совмещать обучение с работой было довольно непросто, особенно учитывая нередкие переработки. Поэтому учился я по большей части «залпом» во время отпуска и больничных. Профессию удалось пройти за три таких «залпа» по 2-3 недели, но в общей сложности все заняло примерно положенные по программе восемь месяцев.</p>
<p>Помимо Хекслета я еще периодически читал Хабр, смотрел рекомендованные видео на YouTube, читал книги «Идеальный программист», «Совершенный код», «Грокаем алгоритмы», «Вы не знаете JS», «Профессиональный TypeScript», начал СИКП.</p>
<blockquote>
<h3 id="heading-3-4">Читайте также:</h3>
<p>Лучшие и важные книги для программистов любых направлений. <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/pages/recommended-books?utm_source=blog&utm_medium=referal&utm_content=recommended-books" rel="noopener noreferrer" target="_blank">Рекомендуемые книги от Хекслета</a></p>
</blockquote>
<h2 id="heading-2-5">Проекты заставили попотеть</h2>
<p>Я прошел все четыре проекта из профессии «Фронтенд-разработчик» и первый проект из профессии «Верстальщик». Это была самая интересная часть обучения, где наконец-то можно было попробовать полученные знания на практике, неплохо их дополнить, а главное — получить обратную связь от наставника и пройти несколько итераций ревью.</p>
<p>Самыми легкими мне показались первый и третий проекты: небольшое консольное приложение с математическими играми и RSS-агрегатор. Особых сложностей с ними не возникло, и сдал я их после 3-4 проверок.</p>
<p>Второй проект — Вычислитель отличий между двумя JSON/YML файлами — заставил попотеть над алгоритмом расставления пробелов при форматировании, но в итоге я сдал его после трех проверок.</p>
<p>А вот четвертый проект, оказался самым проблемным, хотя и самым интересным, поскольку требовал применения всех полученных знаний и даже больше. Пришлось хорошенько покопаться в документации React и Socket.io. В период его прохождения успели поменяться некоторые требования, из-за чего пришлось переписать неплохой кусок проекта. У группы сменилось три наставника и все три успели перевьюить мой проект, что вылилось в семь итераций. Также несколько раз возникали на первый взгляд необъяснимые проблемы с прохождением автотестов, одна из которых оказалась спрятана прямо в них. В общем, четвертый проект прям круто прокачал.</p>
<h2 id="heading-2-6">Три попытки найти работу и выводы из неудач</h2>
<p>С поиском работы я тянул до последнего, пока ко мне в личку не пришла Алиса из карьерного трека. К этому времени у меня уже подходил к завершению четвертый проект. Я сделал резюме на Hexlet CV, поправил по замечаниям и начал потихонечку смотреть вакансии, а Алиса предлагать компаниям мое резюме.</p>
<p>Первое предложение поступило в Telegram, от рекрутера, который увидел мое резюме на Hexlet CV. Это была веб-студия, делающая онлайн-курсы на некой платформе. Мне предложили тестовое задание, я начал его делать, но мне не понравилась платформа, на которой предполагалось работать. Ради интереса я все же его закончил, отдал и благополучно забыл.</p>
<p>Через некоторое время я заявился на стажировку в Kaiten и получил приглашение на собеседование. Это было по сути мое первое в жизни собеседование. В целом все прошло неплохо, но волнение и малый опыт в решении задачек взяли свое, хотя я и отлично понимал алгоритм решения.</p>
<p>Было три задачки:</p>
<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://ru.hexlet.io/challenges/js_basics_fizzbuzz_exercise?utm_source=blog&utm_medium=referal&utm_content=js_basics_fizzbuzz_exercise" rel="noopener noreferrer" target="_blank">fizzBuzz</a>, где надо было выводить в консоль числа, причем на четных — fizz, на нечетных — buzz, а на кратных 15 — fizzBuzz. Эта задачка решилась очень быстро и без проблем.</li>
<li>Написать функцию flatten для разворачивания вложенных массивов любой вложенности, где я начал тупить уже у самого решения и так и не довел до конца.</li>
<li>Написать функцию, которая извлекала бы из объекта свойство по переданному строковому пути и в случае, если такого свойства нет, отдавала бы переданное третьим параметром значение. На этой задаче случился аналогичный тупняк в самом конце, как и на предыдущей.</li>
</ol>
<p>В итоге, конечно, со стажировкой я пролетел :)</p>
<p>Вскоре после первого собеседования пригласили на собеседование в 0point. На нем было два этапа. На первом просто пообщались за жизнь, узнали ожидания. На втором надо было написать React-компонент, который рендерил табличку с определенными полями из массива товаров и прикрутить к ней сортировку с некоторыми хитростями. В этот раз с задачей я справился, все прошло хорошо, и мы договорились о сотрудничестве. К сожалению, дальнейшая работа не сложилась, поскольку заказчик проекта решил провести свое техническое собеседование для нашей новоиспеченной команды и не впечатлился.</p>
<p>После этого я решил, что стоит еще прокачаться перед дальнейшим поиском, ушел с работы на железной дороге и начал участвовать в OpenSource проекте <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://sicp.hexlet.io/?utm_source=blog&utm_medium=referal&utm_content=sicp" rel="noopener noreferrer" target="_blank">hexlet-sicp</a> и параллельно взял заказ на переработку сайта небольшого интернет-магазина.</p>
<blockquote>
<h3 id="heading-3-7">Читайте также:</h3>
<p>Как выбрать свой первый опен-сорс проект: <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/kak-vybrat-svoy-pervyy-open-sors-proekt-instruktsiya-ot-heksleta?utm_source=blog&utm_medium=referal&utm_content=kak-vybrat-svoy-pervyy-open-sors" rel="noopener noreferrer" target="_blank">инструкция от Хекслета</a></p>
</blockquote>
<p>После первого принятого пулл-реквеста в hexlet-sicp я начал ощущать себя более уверенно как разработчик. Задача была перевести редактор кода в упражнениях с liwewire на React. Тут я получил опыт разворачивания проектов, работы с гитом в проекте, где ты не единственный разработчик, поработал немного с PHP, Laravel, ну и, конечно, попрактиковал React с JavaScript. Я всем советую начать участвовать в OpenSource как можно раньше. Это может показаться страшно, но страх пропадет, как только вы попробуете развернуть проект и что-то в нем написать. Также по любым вопросам вам всегда помогут в Слаке. Так можно сэкономить уйму времени и гораздо увереннее чувствовать себя на собеседованиях.</p>
<p>Небольшой опыт фриланса также добавил мне уверенности, поскольку я увидел вживую к чему приводит неправильный подход к архитектуре и пренебрежение хорошими инженерными практиками. Проект, с которым я работал, был написан на PHP в Bitrix, также частично использовался JavaScript с JQuery. Разобраться в творящемся хаосе было непросто, пришлось переписать практически весь проект просто для того, чтобы с ним можно было дальше работать, но в итоге получилось довольно неплохо. Сайт был приведен к более современному виду и адаптирован под мобильные устройства, довелось поработать с переносом проекта на другой хостинг, с настройкой почтового сервера, с установкой SSL сертификатов.</p>
<h2 id="heading-2-8">Первая стажировка и первая работа</h2>
<p>Где-то в апреле-мае 2022 года я увидел сообщение о наборе студентов Хекслета на стажировку в <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/kak-ustroena-rabota-programmistov-v-konture?utm_source=blog&utm_medium=referal&utm_content=rabota-programmistov-v-konture" rel="noopener noreferrer" target="_blank">Контур</a>. О компании ранее слышал лестные отзывы от знакомых, и даже хотел записаться на их курсы. Решил попробовать, отправил резюме, получил приглашение на собеседование. Перед техническим собеседованием надо было записать видеоинтервью о себе по перечню вопросов. На собеседовании сначала поговорили о моем обучении и опыте, задавали вопросы по видеоинтервью, предложили несколько задач на чтение и понимание кода и в конце одну задачу. Надо было написать функцию, которая возвращала бы количество полных колод, которые можно составить из переданного массива игральных карт. Собеседование прошло отлично, в этот раз задачу удалось решить без проблем. Я даже обсудил несколько вариантов решения, и у меня осталось время позадавать вопросы о компании. Через несколько дней после собеседования я получил приглашение на стажировку в Новосибирский офис разработки.</p>
<p>Стажировка длилась два месяца. Уже на первой неделе удалось довольно быстро влиться в работу и начать выполнять задачи спринта. В компании хорошая инженерная культура, приятно читать и писать код. И даже несмотря на то, что я раньше не работал с TypeScript и MobX, которые используются в проектах моей команды, благодаря полученным на Хекслете знаниям процесс вкатывания прошел практически незаметно и приятно. А с помощью крутого наставника Саши можно просто горы свернуть. От компании, команды и работы я в восторге, стажировка пролетела незаметно. По итогу я остался работать в команде уже в качестве джуна.</p>
<p>Сейчас я работаю младшим инженером-программистом в команде Сервисов взаимодействия клиентов с Контуром, где и стажировался. Занимаюсь фронтендом в таких проектах как:</p>
<ul>
<li>Центр поддержки (виджет, через который можно оставить обратную связь, написать в чат техподдержки, заказать обратный звонок, проверить статус обращения и т. д.)</li>
<li>Чат с техподдержкой</li>
<li>Соответствующие административные панели.</li>
</ul>
<p>Стек технологий — TypeScript, React, MobX. Продолжаю профессионально развиваться в текущих проектах, читать статьи и книги, начатые еще во время обучения на Хекслете.</p>
<h2 id="heading-2-9">Несколько мыслей и советов</h2>
<p>Я считаю, что главное — получить фундаментальные знания основ программирования и архитектуры. Язык можно выбрать любой, потому что технологии могут меняться, но фундамент остается прежним. Нужно не подстраиваться под какой-то конкретный язык/фреймворк, а выбирать их исходя из того, что лучше подходит для решения задачи. Конечно, начинать стоит с актуального стека технологий, которые требуются в вакансиях, чтобы получить первый опыт работы.</p>
<p>Софт-скиллы — также очень нужная штука. Надо уметь и, главное, не стесняться задавать вопросы, как можно больше общаться, обсуждать задачи, не замыкаться. Полезно уметь адекватно оценивать свое время и возможности, но это придет с опытом.</p>
<p>Не стоит зацикливаться на возникающих проблемах, иногда стоит отвлечься на некоторое время. Если застряли над какой-то задачей, можно пойти посмотреть кино, почитать художественную литературу, поспать, зачастую решение может прийти даже во сне (у меня не раз такое было), не надо бояться задавать даже глупые вопросы — глупо будет этого не сделать.</p>
<p>Главное — иметь желание. Если действительно хочешь что-то изменить (например, профессию), то все получится, но если желания нет, то ничего не поможет.</p>
<blockquote>
<h3 id="heading-3-10">Никогда не останавливайтесь:</h3>
<p>В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть [сотни курсов по разработке на разных языках и технологиях] (<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/courses?utm_source=hexlet&utm_medium=blog&utm_campaign=all-courses&utm_content=iz-elektromehanika-v-programmista&utm_term=post_230922" rel="noopener noreferrer" target="_blank">https://ru.hexlet.io/courses?utm_source=hexlet&utm_medium=blog&utm_campaign=all-courses&utm_content=iz-elektromehanika-v-programmista&utm_term=post_230922</a>)</p>
</blockquote></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Сергей Каликин</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">3 года назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-elektromehanika-v-programmista-kak-proekty-na-hekslete-i-open-sors-pomogli-mne-stat-razrabotchikom/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">19</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-hexlet-pomog-mne-pereyti-ot-napolneniya-saytov-kontentom-k-fullstack-razrabotke">Как Хекслет помог мне перейти от наполнения сайтов контентом к фулстек-разработке</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-neftegazovoy-otrasli-na-rabotu-frontend-razrabotchikom">Из нефтегазовой отрасли – на работу фронтенд-разработчиком в red_mad_robot</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/iz-perevodchika-v-razrabotchika-kak-ya-iskal-kompaniyu-s-vysokoy-inzhenernoy-kulturoy">Из переводчика в разработчика: как я искал компанию с высокой инженерной культурой</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></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>