Здравствуйте уважаемые читатели и участники Hexlet. Когда я познакомился с этим ресурсом, и начать свое обучение, я точно знал, что напишу в этот раздел и свою историю. Но не думал, что это будет так рано.
Содержание
Введение
Меня зовут Александр, уже несколько дней мне 32 года, и да, я был знаком с IT ранее. В этом разделе я предлагаю вам ознакомиться с фундаментом, который был у меня до знакомства с Hexlet.
Итак, 11 классов школы, много курсов из детских компьютерных кружков, высшее образование по специальности «Прикладная информатика в информационной сфере».
Все мы в детстве хотим кем-то стать. Ну или, как минимум, нам говорят про то, что это желание было у всех окружающих нас людей. Я всегда знал что хочу быть хакером. Не особо понимал, что именно под этим подразумевается, но сильно фанател от одноименного фильма, и самой идеи повелевать компьютером.
По информатике всегда был круглым отличником, и с удовольствием впитывал дополнительные знания, которые мог найти - курсы и так далее (читайте выше). На этой же волне у меня не было мук выбора касательно высшего образования - любая IT-специальность. И вот через 6 лет я специалист.
Заканчивал обучение на вечернем отделении, что позволило мне к моменту получения диплома иметь некоторый реальный опыт работы.
И здесь я сильно дал маху, о чем жалею до сих пор.
Первая работа, как и несколько последующих, были связаны с системным администрированием и вычислительными сетями. На первое место попал благодаря родителям, на остальные - потому что уже имел опыт и специальность. В итоге через 2.5 года я средненький системный администратор с опытом проектирования и монтажа вычислительных сетей. Но полный ноль в программировании.
Ну как полный. На детских курсах я где-то успел пощупать C и Delphi, а в институте были жутко скучные лекции по Turbo Pascal. Логическое и алгоритмическое мышление было, но фундаментальных и полезных знаний не было. Здесь я сильно завидую своим коллегам по цеху, у которых в институте хорошо преподавали азы Computer Science и программирования. В моем учебном заведении этому было уделено крайне мало внимания.
В итоге в 22 года, устав от однообразия своей работы и ужасно маленькой зарплаты, я, как и многие из моего поколения, решил поверить в идею, что все реально, возможности нас окружают и весь мир у наших ног. Короче говоря, пошел заниматься предпринимательством.
Это был достаточно долгий и интересный путь. Но надо признаться, особо крупных и успешных проектов мне так и не удалось реализовать. Но я всегда частично или полностью был связан с IT. В основном это заключалось в создании и продвижении сайта(ов) для нового направления. Сайт по доставке еды, интернет магазин пиломатериалов, лендинг про продаже товаров из Китая, и десятки других. На этом этапе я достаточно неплохо овладеваю HTML/CSS, и всегда чувствую нехватку знаний по программированию и конкретным языкам.
Все это время я не оставлял попытки и по крупицам пытался что-то освоить. Знал, что в итоге я все таки стану разработчиком.
Багаж, с которым пришел на Hexlet
По технологиям уже было упомянуто выше. HTML/CSS, WordPress и большой опыт в SEO. Плюс парочка маленьких проектов, которые дали возможность учиться и не отвлекаться на работу.
Касательно ожиданий от учебы, и кем хотел бы стать. На старте мне сложно было понять, какие именно языки и технологии я хочу знать. Желание было стать крутым программистом, в общем смысле этого слова.
В запасе было достаточно большое количество идей, которые хотелось бы самостоятельно реализовать. Разного объема IT-стартапы. Именно реализовать самому - вот такой уровень я хотел. А как это делать, что использовать — понимания не было.
В начале этого года наткнулся в социальных сетях на одну маленькую школу по программированию. Человек с большим стажем в этой сфере для души учит людей программированию. С самых основ и до максимального результата, делая упор на академический подход. К слову сказать, с первого раза я не смог пройти к нему отбор, чем был сильно расстроен. В итоге он отправил меня на Hexlet, сказав, что это хорошие курсы, и сначала надо получить там базу.
Так я оказался здесь.
Про обучение на Hexlet
Нужно отметить, что в плане учебы я тот еще зад..от. Меня отправили сюда пройти курс по Python. Но когда я посмотрел и поближе познакомился с площадкой — решил, что останусь здесь надолго. Первым желанием было стать первым в местном рейтинге. А что для этого нужно? О да, пройти все с нуля и до максимума.
Так я начал с повторения HTML и CSS, сначала на Code Basics, а затем здесь, в профессии «Верстальщик». Успешно прошёл все курсы и выполнил первый проект.
Впечатления от этого этапа были двойственные. Я молодец и постоянный рефакторинг бесит )))
Но наверное так и нужно на этапе выполнения проектов — по десять раз перепроверять и исправлять, до каждой мелочи. На то они и проекты.
Следующий этап был мучительный. Я написал огромный пост о себе и о своих хотелках в поддержку Hexlet. Посыл был такой — я хочу дорасти до разработчика вот таких проектов, но как их делать, и что использовать — не знаю. Посоветуйте и направьте в нужную профессию. Так я начал качать JS фронт.
Несколько первых курсов прошел по подписке, а затем появилась классная акция — занятия с наставником по цене проекта. Я подумал, что выполнять в месяц по одному проекту вполне по силам, а значит по деньгам, наставничество просто будет идти в подарок.
Чтобы вы понимали, я рассчитывал пройти специальность за 4 месяца по цене 4 проектов. Немного переоценил — получилось за 6. И пока не выполнен 4 проект. Но все равно считаю достаточно быстро.
Что можно сказать про само обучение? На самом деле, здесь очень интересно. Я наконец-то начал понимать хотя бы в общих чертах, как проектировать архитектуру веб-приложения. И поверьте, это кардинально отличалось от того, чтобы было в моей голове до этого.
Как и ребята их тех историй успеха, которые я разумеется читал, я застревал на некоторых заданиях по несколько дней. И испытывал эмоциональный подъем, когда удавалось их решить.
К чему все это привело в итоге, будет в следующем разделе.
Читайте также: Как притвориться мидлом и устроиться на первую работу
Небольшой опыт и мысли про работу
Изначально я не планировал ходить на собеседования, переезжать в офис и так далее. Пока у меня была возможность и средства на существование, я хотел продолжать заниматься своими проектами и учиться. Было понимание, что для роста мне придется поработать в команде. Я видел себе это таким образом - что работа сама меня найдет.
Планировал накапливать опыт и портфолио, и плавно добавлять все это в резюме. Решил - если интересное предложение появится, буду думать. А пока учеба, проекты и так далее.
Кстати, для получения опыта даже успел поработать на фрилансе — планировал указывать свой профиль в графе «Опыт работы». Делал правки на сайтах, исправлял верстку, программировал калькуляторы. Даже получил немного денег ) Но если честно, русскоязычный фриланс — это дно. Оплата минимальная, заказчики странные и все в таком духе.
В начале декабря появилось свободное время, и я решил собрать всю накопленную информацию воедино, сформировав свое резюме. Опубликовал его на известном крупном ресурсе. Честно указал, что официально работал давно по смежной специальности. А последний год учусь веб-разработке.
Подарок на день рождения, и новогодний оффер.
Ради интереса, отослал пару откликов с готовым резюме. Думал в таком ключе — если ответят, попробую в качестве опыта пройти собеседование, что получше узнать, какие технологии и навыки требуют от специалистов. Чтобы скорректировать свое обучение.
Пришел ответ от компании, которая искала Junior JavaScript-разработчика, с предложением выполнить тестовое задание. Отличный вариант проверить, чему успел научиться.
Необходимо было создать SPA. С сервера нужно было получить массив пользователей, и вывести их определенные критерии в табличном виде. Реализовать форму поиска для фильтрации пользователей по имени. Сделать на чистом JS, реализовать декоратор debounce, все оформить и выложить на GitHub. На все про все давалось 2 недели.
После первого прочтения сразу решил — буду получать данные через XHR запрос, сохранять ответ в стейт. Затем выводить этот массив в виде таблицы. После этого, по условиям фильтра, менять итоговый массив и обновлять таблицу с пользователями.
Из всего задания я не знал, что такое декораторы. Поэтому решил сделать ставку на скорость. HR прислал мне задание днем — в этот же день, ближе к ночи отправил решение. Указал, что не знаком с декораторами, но раз времени на задание было много, попробую изучить эту тему, и прислать дополненный вариант.
Утром решил посмотреть, что такое декораторы. Оказалось, тема не самая сложная. Функции обертки, которые изменяют поведение исходной функции.
Наш декоратор нужен был для того, чтобы не выполнять перерисовку всей страницы, на каждый введенный символ в строку фильтрации. Логика простая — сделать небольшую паузу после веденного символа. Если не последует следующий символ, запустить перерисовку. В противном случае ждать следующий символ.
Если человек набирает строку, клавиши нажимаются быстро. После последнего веденного символа идет небольшая пауза. И поскольку дальше ввод не продолжается, страница перерисовывается. Такой механизм позволяет экономить ресурсы и не запускать лишние перерисовки.
Сказано — сделано. Переписал приложение с декоратором. Пока читал про него, натолкнулся на интересное решение — не перерисовывать всю таблицу каждый раз, а фильтровать через CSS стили. Идея в том, чтобы один раз сформировать и вывести таблицу с пользователями, а затем фильтровать ее и скрывать поля, которые не подходят через display: none;
В первой версии моего приложения массив с пользователями фильтровался и каждый раз очищался DOM, формировалась и выводилась новая HTML-таблица. Довольно затратная операция.
Во второй версии я добавил декоратор и фильтрацию с помощью стилей, сведя перерисовки страницы к минимуму. Эту версию и отправил в дополнение. В итоге за день выполнил тестовое.
На следующий день пришло приглашение на собеседование.
Если кому-то интересно, приложение лежит у меня на GitHub. Найти не составит труда. Надеюсь, тот факт, что репозиторий открыт для просмотра, не нарушит условия о неразглашении.
Читайте также: Как устроен функциональный диалект Лиспа Clojure и почему использующие его программисты восхищаются им
Пообщались вживую
Мы созвонились в Zoom. Был ряд технических вопросов: чем пользовался, с какими технологиями знаком. Вопросы по DOM, синтаксис и технические моменты JS. Быстро на все ответил — хватило знаний, которые почерпнул на курсах Hexlet.
Потом мы поговорили про компанию. Чем занимаются, какие задачи решают. Я интересовался про рабочий процесс, распределение задач и технологический стек.
Перед собеседованием у меня было стойкое ощущение, что меня пригласят на работу. Весь разговор занял 30 минут. После него мне почему-то показалось, что как-то быстро все прошло. Я подумал, что это будет означать отказ.
Новогодний оффер
К моему удивлению, через 2 часа мне прислали оффер. Я и первый раз понял, что означает это модное слово. Как упоминал ранее, последний раз я работал официально 10 лет назад. Все условия труда тогда обговаривались на словах и фиксировались в финальном договоре.
И когда я читал истории других людей, не совсем понимал значение термина "получить оффер".
Как оказалось, это оформленное предложение на фирменном бланке со всеми условиями труда. Оказывается, приятно получать оффер ))
Скажу честно, в резюме я указал сумму, изрядно превышающую среднюю зарплату по нашему региону. И, по ощущениям, излишне оптимистическую для Junior-программиста. К моему удивлению, мне предложили именно заявленный уровень. Плюс отпуск, курсы английского и 50% скидки на спортивные абонементы.
К такому новогоднему подарку я был не сразу готов, и взял пару дней на раздумья.
Что в итоге и пара советов
На самом деле, пришлось испытать изрядный стресс. Последний раз в офисе я был 10 лет назад. И не планировал туда возвращаться. Да, я понимал, что для роста придется работать, но эта перспектива была где-то за горизонтом. И надеялся на удалёнку. А тут через неделю выходить на работу, да еще и в офис. Вот тебе и планы.
Но в итоге я написал о своем положительном решении. Получил список документов для трудоустройства. Теперь осталось дождаться 11 января - с этого дня я буду полноценным инженером программистом ) Хорошо это или плохо, узнаю чуть позже.
Меня закрепили за проектом, где основной стек связан с React. Поэтому, пока все будут на новогодних каникулах, я буду с двойной энергией проходить этот курс здесь на Hexlet.
Что я могу посоветовать тем, кто уже учится или еще выбирает курсы. Здесь действительно круто.
На самом деле, мне есть с чем сравнивать — из всех онлайн курсов, которые я прошел, объективно Hexlet лидирует. Я не говорю что этой информации хватит. Что-то вам придется искать в другом месте: смотреть тематические видео на YouTube, читать книги и так далее. Но учебная инфраструктура, представленная здесь, будет отличным фундаментом, на котором и вокруг которого вы сможете сформировать свой учебный процесс и расти как начинающий специалист.
Пару слов хотел бы добавить лично от себя.
Всем людям, даже напрямую не связанным с IT, я всегда настоятельно рекомендую освоить слепой набор на клавиатуре. Я это сделал много лет назад, и даже боюсь представить, сколько часов сэкономил впоследствии. Цените свое и чужое время — если вы работаете за клавиатурой, навык слепой печати обязателен! Для истинных джедаев порекомендую рассмотреть эргономические клавиатуры. Все отзывы о них правда: неделю привыкаешь через слезы, затем думаешь, как раньше жил без нее. В итоге моя скорость возросла с 250-300, до 280-350 знаков в минуту на обеих раскладках.
Найдите возможность практиковаться. Я использовал фриланс и свои проекты. Знания, оторванные от практики, быстро забудутся и не зафиксируются у вас в голове. Один раз прочитали курс — у вас появится общее представление о технологии или инструменте. Что он существует, для чего-то используется. Когда сами попробуете его в работе два или три раза, у вас что-то останется на подкорке.
В идеале довести владение инструментом или технологией до автоматизма. Это будет не быстро. На первых порах можно ограничиться базовыми технологиями. Если мы говорим про веб-разработку, это HTML/CSS/Bootstrap/Webpack/Git/Photoshop. Я понимаю, что здесь очень много информации, но попробуйте хотя бы заложить фундамент. На автоматизме писать основные теги и стили, использовать сетку Bootstrap, настраивать базовую конфигурацию Webpack, фиксировать изменения, делать push и clone и Git, вырезать графику в Photoshop. По мере роста вы будете знакомиться с другими технологиями, которые будут у вас на проекте, и также научитесь оттачивать свои навыки в работе с ними.
Именно те знания и умения, которые вы используете не задумываясь, и являются вашим основным багажом.
А в Новом году я желаю всем нам доехать с ним до реализации своих мечтаний и желаний.
Спасибо, Hexlet, и с Новым годом!
P.S. С момента старта здесь и до оффера прошло 11 месяцев. Именно на учебу у меня ушло 7 месяцев — с августа по декабрь был перерыв по причине переезда.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 23:14:17 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="hDXS6Dm8UL5iy99Vt3-YviyYhFSLXHK-iwTfiAbey0Vr5Bnfy8L93tSI-827cGjJ7JGp_oNrjBw25EXcVNksKw";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="Оффер под Новый год, или Оказывается, можно за 7 месяцев чему-то научиться.">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/kak-na-den-rozhdeniya-poluchit-offer-a-pod-novyy-god-ego-uspeshno-prinyat">
<meta property="og:title" content="Как на день рождения получить оффер, а под Новый год его успешно принять">
<meta property="og:description" content="Оффер под Новый год, или Оказывается, можно за 7 месяцев чему-то научиться.">
<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="QgoDjqN6RWELb5si8DuevVZLPtND_ZLrzq1QBeRGKt2t28i5UQToAb0sv7r8NG7KlkITeUvKbElzTcpRtkHNsw" />
<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/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1OCwicHVyIjoiYmxvYl9pZCJ9fQ==--023ea18f500b1c4c91617fa96bbc52df8395da39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20engineer-bro.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/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY5MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8703c7c8c8b996cf5770b807f78ab99669e26caa/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-amico.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-26T23:14:17.811Z","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":"61kqWAKRO_bfyfDyPbfTgx_kGwuZr5QyinijCxw_jKoEiOFv8O-WlmmK1GoxuCP03-02oZGYapA3mDlfTjhrxA","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Александр Смирнов","id":266681,"is_tutor":false},"tags":[{"id":633,"slug":"javascript","name":"JavaScript"},{"id":912,"slug":"veb-razrabotka","name":"Веб-разработка"}],"id":1201,"title":"Как на день рождения получить оффер, а под Новый год его успешно принять","slug":"kak-na-den-rozhdeniya-poluchit-offer-a-pod-novyy-god-ego-uspeshno-prinyat","state":"published","summary":"Оффер под Новый год, или Оказывается, можно за 7 месяцев чему-то научиться.","votes_count":38,"created_at":"2020-12-31T13:52:20.034Z","published_at":"2021-01-05T08:51:43.147Z","body":"Здравствуйте уважаемые читатели и участники Hexlet. Когда я познакомился с этим ресурсом, и начать свое обучение, я точно знал, что напишу в этот раздел и свою историю. Но не думал, что это будет так рано.\n\n## Содержание\n\n## Введение\n\nМеня зовут Александр, уже несколько дней мне 32 года, и да, я был знаком с IT ранее. В этом разделе я предлагаю вам ознакомиться с фундаментом, который был у меня до знакомства с Hexlet.\n\n::programs\n\nИтак, 11 классов школы, много курсов из детских компьютерных кружков, высшее образование по специальности «**Прикладная информатика в информационной сфере**».\n\nВсе мы в детстве хотим кем-то стать. Ну или, как минимум, нам говорят про то, что это желание было у всех окружающих нас людей. Я всегда знал что хочу быть хакером. Не особо понимал, что именно под этим подразумевается, но сильно фанател от одноименного фильма, и самой идеи повелевать компьютером.\n\nПо информатике всегда был круглым отличником, и с удовольствием впитывал дополнительные знания, которые мог найти - курсы и так далее (читайте выше). На этой же волне у меня не было мук выбора касательно высшего образования - любая IT-специальность. И вот через 6 лет я специалист.\n\nЗаканчивал обучение на вечернем отделении, что позволило мне к моменту получения диплома иметь некоторый реальный опыт работы.\n\nИ здесь я сильно дал маху, о чем жалею до сих пор.\n\nПервая работа, как и несколько последующих, были связаны с системным администрированием и вычислительными сетями. На первое место попал благодаря родителям, на остальные - потому что уже имел опыт и специальность. В итоге через 2.5 года я средненький системный администратор с опытом проектирования и монтажа вычислительных сетей. Но полный ноль в программировании.\n\nНу как полный. На детских курсах я где-то успел пощупать C и Delphi, а в институте были жутко скучные лекции по Turbo Pascal. Логическое и алгоритмическое мышление было, но фундаментальных и полезных знаний не было. Здесь я сильно завидую своим коллегам по цеху, у которых в институте хорошо преподавали азы Computer Science и программирования. В моем учебном заведении этому было уделено крайне мало внимания.\n\nВ итоге в 22 года, устав от однообразия своей работы и ужасно маленькой зарплаты, я, как и многие из моего поколения, решил поверить в идею, что все реально, возможности нас окружают и весь мир у наших ног. Короче говоря, пошел заниматься предпринимательством.\n\nЭто был достаточно долгий и интересный путь. Но надо признаться, особо крупных и успешных проектов мне так и не удалось реализовать. Но я всегда частично или полностью был связан с IT. В основном это заключалось в создании и продвижении сайта(ов) для нового направления. Сайт по доставке еды, интернет магазин пиломатериалов, лендинг про продаже товаров из Китая, и десятки других. На этом этапе я достаточно неплохо овладеваю HTML/CSS, и всегда чувствую нехватку знаний по программированию и конкретным языкам.\n\nВсе это время я не оставлял попытки и по крупицам пытался что-то освоить. Знал, что в итоге я все таки стану разработчиком.\n\n## Багаж, с которым пришел на Hexlet\n\n\nПо технологиям уже было упомянуто выше. HTML/CSS, WordPress и большой опыт в SEO. Плюс парочка маленьких проектов, которые дали возможность учиться и не отвлекаться на работу.\n\nКасательно ожиданий от учебы, и кем хотел бы стать. На старте мне сложно было понять, какие именно языки и технологии я хочу знать. Желание было стать крутым программистом, в общем смысле этого слова.\n\nВ запасе было достаточно большое количество идей, которые хотелось бы самостоятельно реализовать. Разного объема IT-стартапы. Именно реализовать самому - вот такой уровень я хотел. А как это делать, что использовать — понимания не было.\n\nВ начале этого года наткнулся в социальных сетях на одну маленькую школу по программированию. Человек с большим стажем в этой сфере для души учит людей программированию. С самых основ и до максимального результата, делая упор на академический подход. К слову сказать, с первого раза я не смог пройти к нему отбор, чем был сильно расстроен. В итоге он отправил меня на Hexlet, сказав, что это хорошие курсы, и сначала надо получить там базу. \n\nТак я оказался здесь.\n\n## Про обучение на Hexlet\n\nНужно отметить, что в плане учебы я тот еще зад..от. Меня отправили сюда пройти курс по Python. Но когда я посмотрел и поближе познакомился с площадкой — решил, что останусь здесь надолго. Первым желанием было стать первым в местном рейтинге. А что для этого нужно? О да, пройти все с нуля и до максимума.\n\nТак я начал с повторения HTML и CSS, сначала на Code Basics, а затем здесь, в профессии «Верстальщик». Успешно прошёл все курсы и выполнил первый проект.\n\nВпечатления от этого этапа были двойственные. Я молодец и постоянный рефакторинг бесит )))\n\nНо наверное так и нужно на этапе выполнения проектов — по десять раз перепроверять и исправлять, до каждой мелочи. На то они и проекты.\n\nСледующий этап был мучительный. Я написал огромный пост о себе и о своих хотелках в поддержку Hexlet. Посыл был такой — я хочу дорасти до разработчика вот таких проектов, но как их делать, и что использовать — не знаю. Посоветуйте и направьте в нужную профессию. Так я начал качать JS фронт.\n\nНесколько первых курсов прошел по подписке, а затем появилась классная акция — занятия с наставником по цене проекта. Я подумал, что выполнять в месяц по одному проекту вполне по силам, а значит по деньгам, наставничество просто будет идти в подарок.\n\nЧтобы вы понимали, я рассчитывал пройти специальность за 4 месяца по цене 4 проектов. Немного переоценил — получилось за 6. И пока не выполнен 4 проект. Но все равно считаю достаточно быстро.\n\nЧто можно сказать про само обучение? На самом деле, здесь очень интересно. Я наконец-то начал понимать хотя бы в общих чертах, как проектировать архитектуру веб-приложения. И поверьте, это кардинально отличалось от того, чтобы было в моей голове до этого.\n\nКак и ребята их тех историй успеха, которые я разумеется читал, я застревал на некоторых заданиях по несколько дней. И испытывал эмоциональный подъем, когда удавалось их решить.\n\nК чему все это привело в итоге, будет в следующем разделе.\n\n\n> Читайте также: [Как притвориться мидлом и устроиться на первую работу](https://ru.hexlet.io/blog/posts/kak-pritvoritsya-midlom-i-ustroitsya-na-pervuyu-rabotu)\n\n## Небольшой опыт и мысли про работу\n\nИзначально я не планировал ходить на собеседования, переезжать в офис и так далее. Пока у меня была возможность и средства на существование, я хотел продолжать заниматься своими проектами и учиться. Было понимание, что для роста мне придется поработать в команде. Я видел себе это таким образом - что работа сама меня найдет.\n\nПланировал накапливать опыт и портфолио, и плавно добавлять все это в резюме. Решил - если интересное предложение появится, буду думать. А пока учеба, проекты и так далее.\n\nКстати, для получения опыта даже успел поработать на фрилансе — планировал указывать свой профиль в графе «**Опыт работы**». Делал правки на сайтах, исправлял верстку, программировал калькуляторы. Даже получил немного денег ) Но если честно, русскоязычный фриланс — это дно. Оплата минимальная, заказчики странные и все в таком духе.\n\nВ начале декабря появилось свободное время, и я решил собрать всю накопленную информацию воедино, сформировав свое резюме. Опубликовал его на известном крупном ресурсе. Честно указал, что официально работал давно по смежной специальности. А последний год учусь веб-разработке.\n\n## Подарок на день рождения, и новогодний оффер.\n\nРади интереса, отослал пару откликов с готовым резюме. Думал в таком ключе — если ответят, попробую в качестве опыта пройти собеседование, что получше узнать, какие технологии и навыки требуют от специалистов. Чтобы скорректировать свое обучение.\n\nПришел ответ от компании, которая искала Junior JavaScript-разработчика, с предложением выполнить тестовое задание. Отличный вариант проверить, чему успел научиться.\n\nНеобходимо было создать SPA. С сервера нужно было получить массив пользователей, и вывести их определенные критерии в табличном виде. Реализовать форму поиска для фильтрации пользователей по имени. Сделать на чистом JS, реализовать декоратор debounce, все оформить и выложить на GitHub. На все про все давалось 2 недели.\n\nПосле первого прочтения сразу решил — буду получать данные через XHR запрос, сохранять ответ в стейт. Затем выводить этот массив в виде таблицы. После этого, по условиям фильтра, менять итоговый массив и обновлять таблицу с пользователями.\n\nИз всего задания я не знал, что такое декораторы. Поэтому решил сделать ставку на скорость. HR прислал мне задание днем — в этот же день, ближе к ночи отправил решение. Указал, что не знаком с декораторами, но раз времени на задание было много, попробую изучить эту тему, и прислать дополненный вариант.\n\nУтром решил посмотреть, что такое декораторы. Оказалось, тема не самая сложная. Функции обертки, которые изменяют поведение исходной функции.\n\nНаш декоратор нужен был для того, чтобы не выполнять перерисовку всей страницы, на каждый введенный символ в строку фильтрации. Логика простая — сделать небольшую паузу после веденного символа. Если не последует следующий символ, запустить перерисовку. В противном случае ждать следующий символ.\n\nЕсли человек набирает строку, клавиши нажимаются быстро. После последнего веденного символа идет небольшая пауза. И поскольку дальше ввод не продолжается, страница перерисовывается. Такой механизм позволяет экономить ресурсы и не запускать лишние перерисовки.\n\nСказано — сделано. Переписал приложение с декоратором. Пока читал про него, натолкнулся на интересное решение — не перерисовывать всю таблицу каждый раз, а фильтровать через CSS стили. Идея в том, чтобы один раз сформировать и вывести таблицу с пользователями, а затем фильтровать ее и скрывать поля, которые не подходят через display: none;\n\nВ первой версии моего приложения массив с пользователями фильтровался и каждый раз очищался DOM, формировалась и выводилась новая HTML-таблица. Довольно затратная операция.\n\nВо второй версии я добавил декоратор и фильтрацию с помощью стилей, сведя перерисовки страницы к минимуму. Эту версию и отправил в дополнение. В итоге за день выполнил тестовое.\n\nНа следующий день пришло приглашение на собеседование.\n\nЕсли кому-то интересно, приложение лежит у меня на GitHub. Найти не составит труда. Надеюсь, тот факт, что репозиторий открыт для просмотра, не нарушит условия о неразглашении.\n\n\n> Читайте также: [Как устроен функциональный диалект Лиспа Clojure и почему использующие его программисты восхищаются им](https://ru.hexlet.io/blog/posts/clojure)\n\n## Пообщались вживую\nМы созвонились в Zoom. Был ряд технических вопросов: чем пользовался, с какими технологиями знаком. Вопросы по DOM, синтаксис и технические моменты JS. Быстро на все ответил — хватило знаний, которые почерпнул на курсах Hexlet.\n\nПотом мы поговорили про компанию. Чем занимаются, какие задачи решают. Я интересовался про рабочий процесс, распределение задач и технологический стек.\n\nПеред собеседованием у меня было стойкое ощущение, что меня пригласят на работу. Весь разговор занял 30 минут. После него мне почему-то показалось, что как-то быстро все прошло. Я подумал, что это будет означать отказ.\n\n## Новогодний оффер\n\nК моему удивлению, через 2 часа мне прислали оффер. Я и первый раз понял, что означает это модное слово. Как упоминал ранее, последний раз я работал официально 10 лет назад. Все условия труда тогда обговаривались на словах и фиксировались в финальном договоре.\n\nИ когда я читал истории других людей, не совсем понимал значение термина \"**получить оффер**\".\n\nКак оказалось, это оформленное предложение на фирменном бланке со всеми условиями труда. Оказывается, приятно получать оффер ))\n\nСкажу честно, в резюме я указал сумму, изрядно превышающую среднюю зарплату по нашему региону. И, по ощущениям, излишне оптимистическую для Junior-программиста. К моему удивлению, мне предложили именно заявленный уровень. Плюс отпуск, курсы английского и 50% скидки на спортивные абонементы.\n\nК такому новогоднему подарку я был не сразу готов, и взял пару дней на раздумья.\n\n## Что в итоге и пара советов\n\nНа самом деле, пришлось испытать изрядный стресс. Последний раз в офисе я был 10 лет назад. И не планировал туда возвращаться. Да, я понимал, что для роста придется работать, но эта перспектива была где-то за горизонтом. И надеялся на удалёнку. А тут через неделю выходить на работу, да еще и в офис. Вот тебе и планы.\n\nНо в итоге я написал о своем положительном решении. Получил список документов для трудоустройства. Теперь осталось дождаться 11 января - с этого дня я буду полноценным инженером программистом ) Хорошо это или плохо, узнаю чуть позже.\n\nМеня закрепили за проектом, где основной стек связан с React. Поэтому, пока все будут на новогодних каникулах, я буду с двойной энергией проходить этот курс здесь на Hexlet.\n\nЧто я могу посоветовать тем, кто уже учится или еще выбирает курсы. Здесь действительно круто.\n\nНа самом деле, мне есть с чем сравнивать — из всех онлайн курсов, которые я прошел, объективно Hexlet лидирует. Я не говорю что этой информации хватит. Что-то вам придется искать в другом месте: смотреть тематические видео на YouTube, читать книги и так далее. Но учебная инфраструктура, представленная здесь, будет отличным фундаментом, на котором и вокруг которого вы сможете сформировать свой учебный процесс и расти как начинающий специалист.\n\nПару слов хотел бы добавить лично от себя.\n\nВсем людям, даже напрямую не связанным с IT, я всегда настоятельно рекомендую освоить слепой набор на клавиатуре. Я это сделал много лет назад, и даже боюсь представить, сколько часов сэкономил впоследствии. Цените свое и чужое время — если вы работаете за клавиатурой, навык слепой печати обязателен! Для истинных джедаев порекомендую рассмотреть эргономические клавиатуры. Все отзывы о них правда: неделю привыкаешь через слезы, затем думаешь, как раньше жил без нее. В итоге моя скорость возросла с 250-300, до 280-350 знаков в минуту на обеих раскладках.\n\nНайдите возможность практиковаться. Я использовал фриланс и свои проекты. Знания, оторванные от практики, быстро забудутся и не зафиксируются у вас в голове. Один раз прочитали курс — у вас появится общее представление о технологии или инструменте. Что он существует, для чего-то используется. Когда сами попробуете его в работе два или три раза, у вас что-то останется на подкорке.\n\n::posts\n\nВ идеале довести владение инструментом или технологией до автоматизма. Это будет не быстро. На первых порах можно ограничиться базовыми технологиями. Если мы говорим про веб-разработку, это HTML/CSS/Bootstrap/Webpack/Git/Photoshop. Я понимаю, что здесь очень много информации, но попробуйте хотя бы заложить фундамент. На автоматизме писать основные теги и стили, использовать сетку Bootstrap, настраивать базовую конфигурацию Webpack, фиксировать изменения, делать push и clone и Git, вырезать графику в Photoshop. По мере роста вы будете знакомиться с другими технологиями, которые будут у вас на проекте, и также научитесь оттачивать свои навыки в работе с ними.\n\nИменно те знания и умения, которые вы используете не задумываясь, и являются вашим основным багажом.\n\nА в Новом году я желаю всем нам доехать с ним до реализации своих мечтаний и желаний.\n\nСпасибо, Hexlet, и с Новым годом!\n\nP.S. С момента старта здесь и до оффера прошло 11 месяцев. Именно на учебу у меня ушло 7 месяцев — с августа по декабрь был перерыв по причине переезда.","reading_time":8,"url":"https://ru.hexlet.io/blog/posts/kak-na-den-rozhdeniya-poluchit-offer-a-pod-novyy-god-ego-uspeshno-prinyat","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":554,"title":"Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой","slug":"kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy","summary":"Привет! Меня зовут Юрий Бачевский, и это моя история успеха — как после 30 лет уйти в IT, имея ипотеку и маленького ребенка.","created_at":"2019-11-15T10:26:36.618Z","published_at":"2022-01-24T09:53:03.554Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":995,"title":"Как вернуться в программирование после перерыва в девять лет","slug":"kak-vernutsya-v-programmirovanie-posle-pereryva-v-devyat-let","summary":"Как я самостоятельно выучил Ruby on Rails, поработал разработчиком, а потом на девять лет ушел из этой сферы. И что мне помогло вернуться в программирование в 34 года.","created_at":"2020-09-19T08:15:02.034Z","published_at":"2021-03-23T13:31:50.477Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1183,"title":"Как я бросил все и стал фронтенд-разработчиком","slug":"kak-ya-brosil-vse-i-stal-frontend-razrabotchikom","summary":"Привет, Хекслет! Меня зовут Сергей, мне 28 лет. Сейчас я живу в Москве и хочу рассказать историю, как за год изменилась моя жизнь. Также я назову несколько ключевых моментов, к которым лично пришел во время обучения — они сильно меняют мышление и помогают лучше понять разработку.","created_at":"2020-12-23T19:19:08.387Z","published_at":"2021-01-18T15:39:05.369Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"mainStackCategory":{"id":2,"name":"Курсы по веб-разработке","slug":"web_development","short_name":"Веб-разработка","order":190,"state":"published","category_slug":"courses_web_development"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":34,"slug":"algorithms","title":"Алгоритмы и структуры данных","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4000,"duration_in_months":2},"id":56,"slug":"algorithms","title":"Алгоритмы и структуры данных","subtitle":"Навык, который увеличит ваши шансы пройти алгоритмическое интервью в международные компании на 80%","subtitle_for_lists":"Алгоритмы для собеседований","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"algorithms","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png"},{"stack":{"id":37,"slug":"python-sicp","title":"СИКП на Python","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4150,"duration_in_months":1},"id":62,"slug":"python-sicp","title":"СИКП на Python","subtitle":"Навык понимать код на фундаментальном уровне, уверенно проходить собеседования и решать сложные задачи","subtitle_for_lists":"Изучите Python на глубоком уровне для решения сложных задач","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"python-sicp","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1OCwicHVyIjoiYmxvYl9pZCJ9fQ==--023ea18f500b1c4c91617fa96bbc52df8395da39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20engineer-bro.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":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":116,"slug":"python-basics-free","title":"Основы Python","audience":"for_beginners","start_type":"anytime","pricing_model":"free","priority":"low","kind":"track","state":"published","stack_state":"finished","order":1000,"duration_in_months":1},"id":189,"slug":"python-basics-free","title":"Основы Python","subtitle":"Изучите синтаксис, переменные, функции","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"python-basics-free","price_text":"Бесплатно","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY5MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8703c7c8c8b996cf5770b807f78ab99669e26caa/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-amico.png"}]},"url":"/blog/posts/kak-na-den-rozhdeniya-poluchit-offer-a-pod-novyy-god-ego-uspeshno-prinyat","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Александр Смирнов","name":"Как на день рождения получить оффер, а под Новый год его успешно принять","datePublished":"2021-01-05T08:51:43.147Z","headline":"Оффер под Новый год, или Оказывается, можно за 7 месяцев чему-то научиться.","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":38}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/success","name":"Истории успеха"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/kak-na-den-rozhdeniya-poluchit-offer-a-pod-novyy-god-ego-uspeshno-prinyat","name":"Как на день рождения получить оффер, а под Новый год его успешно принять"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/success">Истории успеха</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Как на день рождения получить оффер, а под Новый год его успешно принять</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Как на день рождения получить оффер, а под Новый год его успешно принять</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="JavaScript"><span class="m_5add502a mantine-Badge-label">JavaScript</span></button><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">5 января 2021 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>8 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>38</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/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>Здравствуйте уважаемые читатели и участники Hexlet. Когда я познакомился с этим ресурсом, и начать свое обучение, я точно знал, что напишу в этот раздел и свою историю. Но не думал, что это будет так рано.</p>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Введение</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-3">Багаж, с которым пришел на Hexlet</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Про обучение на Hexlet</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Небольшой опыт и мысли про работу</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-6">Подарок на день рождения, и новогодний оффер.</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Пообщались вживую</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">Новогодний оффер</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-9">Что в итоге и пара советов</a></li>
</ul>
<h2 id="heading-2-2">Введение</h2>
<p>Меня зовут Александр, уже несколько дней мне 32 года, и да, я был знаком с IT ранее. В этом разделе я предлагаю вам ознакомиться с фундаментом, который был у меня до знакомства с Hexlet.</p>
<style data-mantine-styles="inline">.__m__-_R_bderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_bderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_bderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/algorithms?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Алгоритмы и структуры данных</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Алгоритмы для собеседований</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png" alt="Алгоритмы и структуры данных" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/python-sicp?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">Изучите Python на глубоком уровне для решения сложных задач</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/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1OCwicHVyIjoiYmxvYl9pZCJ9fQ==--023ea18f500b1c4c91617fa96bbc52df8395da39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20engineer-bro.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?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/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-basics-free?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"></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/eyJfcmFpbHMiOnsiZGF0YSI6MzY5MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8703c7c8c8b996cf5770b807f78ab99669e26caa/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Developer%20activity-amico.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">Бесплатно</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<p>Итак, 11 классов школы, много курсов из детских компьютерных кружков, высшее образование по специальности «<strong>Прикладная информатика в информационной сфере</strong>».</p>
<p>Все мы в детстве хотим кем-то стать. Ну или, как минимум, нам говорят про то, что это желание было у всех окружающих нас людей. Я всегда знал что хочу быть хакером. Не особо понимал, что именно под этим подразумевается, но сильно фанател от одноименного фильма, и самой идеи повелевать компьютером.</p>
<p>По информатике всегда был круглым отличником, и с удовольствием впитывал дополнительные знания, которые мог найти - курсы и так далее (читайте выше). На этой же волне у меня не было мук выбора касательно высшего образования - любая IT-специальность. И вот через 6 лет я специалист.</p>
<p>Заканчивал обучение на вечернем отделении, что позволило мне к моменту получения диплома иметь некоторый реальный опыт работы.</p>
<p>И здесь я сильно дал маху, о чем жалею до сих пор.</p>
<p>Первая работа, как и несколько последующих, были связаны с системным администрированием и вычислительными сетями. На первое место попал благодаря родителям, на остальные - потому что уже имел опыт и специальность. В итоге через 2.5 года я средненький системный администратор с опытом проектирования и монтажа вычислительных сетей. Но полный ноль в программировании.</p>
<p>Ну как полный. На детских курсах я где-то успел пощупать C и Delphi, а в институте были жутко скучные лекции по Turbo Pascal. Логическое и алгоритмическое мышление было, но фундаментальных и полезных знаний не было. Здесь я сильно завидую своим коллегам по цеху, у которых в институте хорошо преподавали азы Computer Science и программирования. В моем учебном заведении этому было уделено крайне мало внимания.</p>
<p>В итоге в 22 года, устав от однообразия своей работы и ужасно маленькой зарплаты, я, как и многие из моего поколения, решил поверить в идею, что все реально, возможности нас окружают и весь мир у наших ног. Короче говоря, пошел заниматься предпринимательством.</p>
<p>Это был достаточно долгий и интересный путь. Но надо признаться, особо крупных и успешных проектов мне так и не удалось реализовать. Но я всегда частично или полностью был связан с IT. В основном это заключалось в создании и продвижении сайта(ов) для нового направления. Сайт по доставке еды, интернет магазин пиломатериалов, лендинг про продаже товаров из Китая, и десятки других. На этом этапе я достаточно неплохо овладеваю HTML/CSS, и всегда чувствую нехватку знаний по программированию и конкретным языкам.</p>
<p>Все это время я не оставлял попытки и по крупицам пытался что-то освоить. Знал, что в итоге я все таки стану разработчиком.</p>
<h2 id="heading-2-3">Багаж, с которым пришел на Hexlet</h2>
<p>По технологиям уже было упомянуто выше. HTML/CSS, WordPress и большой опыт в SEO. Плюс парочка маленьких проектов, которые дали возможность учиться и не отвлекаться на работу.</p>
<p>Касательно ожиданий от учебы, и кем хотел бы стать. На старте мне сложно было понять, какие именно языки и технологии я хочу знать. Желание было стать крутым программистом, в общем смысле этого слова.</p>
<p>В запасе было достаточно большое количество идей, которые хотелось бы самостоятельно реализовать. Разного объема IT-стартапы. Именно реализовать самому - вот такой уровень я хотел. А как это делать, что использовать — понимания не было.</p>
<p>В начале этого года наткнулся в социальных сетях на одну маленькую школу по программированию. Человек с большим стажем в этой сфере для души учит людей программированию. С самых основ и до максимального результата, делая упор на академический подход. К слову сказать, с первого раза я не смог пройти к нему отбор, чем был сильно расстроен. В итоге он отправил меня на Hexlet, сказав, что это хорошие курсы, и сначала надо получить там базу.</p>
<p>Так я оказался здесь.</p>
<h2 id="heading-2-4">Про обучение на Hexlet</h2>
<p>Нужно отметить, что в плане учебы я тот еще зад..от. Меня отправили сюда пройти курс по Python. Но когда я посмотрел и поближе познакомился с площадкой — решил, что останусь здесь надолго. Первым желанием было стать первым в местном рейтинге. А что для этого нужно? О да, пройти все с нуля и до максимума.</p>
<p>Так я начал с повторения HTML и CSS, сначала на Code Basics, а затем здесь, в профессии «Верстальщик». Успешно прошёл все курсы и выполнил первый проект.</p>
<p>Впечатления от этого этапа были двойственные. Я молодец и постоянный рефакторинг бесит )))</p>
<p>Но наверное так и нужно на этапе выполнения проектов — по десять раз перепроверять и исправлять, до каждой мелочи. На то они и проекты.</p>
<p>Следующий этап был мучительный. Я написал огромный пост о себе и о своих хотелках в поддержку Hexlet. Посыл был такой — я хочу дорасти до разработчика вот таких проектов, но как их делать, и что использовать — не знаю. Посоветуйте и направьте в нужную профессию. Так я начал качать JS фронт.</p>
<p>Несколько первых курсов прошел по подписке, а затем появилась классная акция — занятия с наставником по цене проекта. Я подумал, что выполнять в месяц по одному проекту вполне по силам, а значит по деньгам, наставничество просто будет идти в подарок.</p>
<p>Чтобы вы понимали, я рассчитывал пройти специальность за 4 месяца по цене 4 проектов. Немного переоценил — получилось за 6. И пока не выполнен 4 проект. Но все равно считаю достаточно быстро.</p>
<p>Что можно сказать про само обучение? На самом деле, здесь очень интересно. Я наконец-то начал понимать хотя бы в общих чертах, как проектировать архитектуру веб-приложения. И поверьте, это кардинально отличалось от того, чтобы было в моей голове до этого.</p>
<p>Как и ребята их тех историй успеха, которые я разумеется читал, я застревал на некоторых заданиях по несколько дней. И испытывал эмоциональный подъем, когда удавалось их решить.</p>
<p>К чему все это привело в итоге, будет в следующем разделе.</p>
<blockquote>
<p>Читайте также: <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/kak-pritvoritsya-midlom-i-ustroitsya-na-pervuyu-rabotu" rel="noopener noreferrer" target="_blank">Как притвориться мидлом и устроиться на первую работу</a></p>
</blockquote>
<h2 id="heading-2-5">Небольшой опыт и мысли про работу</h2>
<p>Изначально я не планировал ходить на собеседования, переезжать в офис и так далее. Пока у меня была возможность и средства на существование, я хотел продолжать заниматься своими проектами и учиться. Было понимание, что для роста мне придется поработать в команде. Я видел себе это таким образом - что работа сама меня найдет.</p>
<p>Планировал накапливать опыт и портфолио, и плавно добавлять все это в резюме. Решил - если интересное предложение появится, буду думать. А пока учеба, проекты и так далее.</p>
<p>Кстати, для получения опыта даже успел поработать на фрилансе — планировал указывать свой профиль в графе «<strong>Опыт работы</strong>». Делал правки на сайтах, исправлял верстку, программировал калькуляторы. Даже получил немного денег ) Но если честно, русскоязычный фриланс — это дно. Оплата минимальная, заказчики странные и все в таком духе.</p>
<p>В начале декабря появилось свободное время, и я решил собрать всю накопленную информацию воедино, сформировав свое резюме. Опубликовал его на известном крупном ресурсе. Честно указал, что официально работал давно по смежной специальности. А последний год учусь веб-разработке.</p>
<h2 id="heading-2-6">Подарок на день рождения, и новогодний оффер.</h2>
<p>Ради интереса, отослал пару откликов с готовым резюме. Думал в таком ключе — если ответят, попробую в качестве опыта пройти собеседование, что получше узнать, какие технологии и навыки требуют от специалистов. Чтобы скорректировать свое обучение.</p>
<p>Пришел ответ от компании, которая искала Junior JavaScript-разработчика, с предложением выполнить тестовое задание. Отличный вариант проверить, чему успел научиться.</p>
<p>Необходимо было создать SPA. С сервера нужно было получить массив пользователей, и вывести их определенные критерии в табличном виде. Реализовать форму поиска для фильтрации пользователей по имени. Сделать на чистом JS, реализовать декоратор debounce, все оформить и выложить на GitHub. На все про все давалось 2 недели.</p>
<p>После первого прочтения сразу решил — буду получать данные через XHR запрос, сохранять ответ в стейт. Затем выводить этот массив в виде таблицы. После этого, по условиям фильтра, менять итоговый массив и обновлять таблицу с пользователями.</p>
<p>Из всего задания я не знал, что такое декораторы. Поэтому решил сделать ставку на скорость. HR прислал мне задание днем — в этот же день, ближе к ночи отправил решение. Указал, что не знаком с декораторами, но раз времени на задание было много, попробую изучить эту тему, и прислать дополненный вариант.</p>
<p>Утром решил посмотреть, что такое декораторы. Оказалось, тема не самая сложная. Функции обертки, которые изменяют поведение исходной функции.</p>
<p>Наш декоратор нужен был для того, чтобы не выполнять перерисовку всей страницы, на каждый введенный символ в строку фильтрации. Логика простая — сделать небольшую паузу после веденного символа. Если не последует следующий символ, запустить перерисовку. В противном случае ждать следующий символ.</p>
<p>Если человек набирает строку, клавиши нажимаются быстро. После последнего веденного символа идет небольшая пауза. И поскольку дальше ввод не продолжается, страница перерисовывается. Такой механизм позволяет экономить ресурсы и не запускать лишние перерисовки.</p>
<p>Сказано — сделано. Переписал приложение с декоратором. Пока читал про него, натолкнулся на интересное решение — не перерисовывать всю таблицу каждый раз, а фильтровать через CSS стили. Идея в том, чтобы один раз сформировать и вывести таблицу с пользователями, а затем фильтровать ее и скрывать поля, которые не подходят через display: none;</p>
<p>В первой версии моего приложения массив с пользователями фильтровался и каждый раз очищался DOM, формировалась и выводилась новая HTML-таблица. Довольно затратная операция.</p>
<p>Во второй версии я добавил декоратор и фильтрацию с помощью стилей, сведя перерисовки страницы к минимуму. Эту версию и отправил в дополнение. В итоге за день выполнил тестовое.</p>
<p>На следующий день пришло приглашение на собеседование.</p>
<p>Если кому-то интересно, приложение лежит у меня на GitHub. Найти не составит труда. Надеюсь, тот факт, что репозиторий открыт для просмотра, не нарушит условия о неразглашении.</p>
<blockquote>
<p>Читайте также: <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/clojure" rel="noopener noreferrer" target="_blank">Как устроен функциональный диалект Лиспа Clojure и почему использующие его программисты восхищаются им</a></p>
</blockquote>
<h2 id="heading-2-7">Пообщались вживую</h2>
<p>Мы созвонились в Zoom. Был ряд технических вопросов: чем пользовался, с какими технологиями знаком. Вопросы по DOM, синтаксис и технические моменты JS. Быстро на все ответил — хватило знаний, которые почерпнул на курсах Hexlet.</p>
<p>Потом мы поговорили про компанию. Чем занимаются, какие задачи решают. Я интересовался про рабочий процесс, распределение задач и технологический стек.</p>
<p>Перед собеседованием у меня было стойкое ощущение, что меня пригласят на работу. Весь разговор занял 30 минут. После него мне почему-то показалось, что как-то быстро все прошло. Я подумал, что это будет означать отказ.</p>
<h2 id="heading-2-8">Новогодний оффер</h2>
<p>К моему удивлению, через 2 часа мне прислали оффер. Я и первый раз понял, что означает это модное слово. Как упоминал ранее, последний раз я работал официально 10 лет назад. Все условия труда тогда обговаривались на словах и фиксировались в финальном договоре.</p>
<p>И когда я читал истории других людей, не совсем понимал значение термина "<strong>получить оффер</strong>".</p>
<p>Как оказалось, это оформленное предложение на фирменном бланке со всеми условиями труда. Оказывается, приятно получать оффер ))</p>
<p>Скажу честно, в резюме я указал сумму, изрядно превышающую среднюю зарплату по нашему региону. И, по ощущениям, излишне оптимистическую для Junior-программиста. К моему удивлению, мне предложили именно заявленный уровень. Плюс отпуск, курсы английского и 50% скидки на спортивные абонементы.</p>
<p>К такому новогоднему подарку я был не сразу готов, и взял пару дней на раздумья.</p>
<h2 id="heading-2-9">Что в итоге и пара советов</h2>
<p>На самом деле, пришлось испытать изрядный стресс. Последний раз в офисе я был 10 лет назад. И не планировал туда возвращаться. Да, я понимал, что для роста придется работать, но эта перспектива была где-то за горизонтом. И надеялся на удалёнку. А тут через неделю выходить на работу, да еще и в офис. Вот тебе и планы.</p>
<p>Но в итоге я написал о своем положительном решении. Получил список документов для трудоустройства. Теперь осталось дождаться 11 января - с этого дня я буду полноценным инженером программистом ) Хорошо это или плохо, узнаю чуть позже.</p>
<p>Меня закрепили за проектом, где основной стек связан с React. Поэтому, пока все будут на новогодних каникулах, я буду с двойной энергией проходить этот курс здесь на Hexlet.</p>
<p>Что я могу посоветовать тем, кто уже учится или еще выбирает курсы. Здесь действительно круто.</p>
<p>На самом деле, мне есть с чем сравнивать — из всех онлайн курсов, которые я прошел, объективно Hexlet лидирует. Я не говорю что этой информации хватит. Что-то вам придется искать в другом месте: смотреть тематические видео на YouTube, читать книги и так далее. Но учебная инфраструктура, представленная здесь, будет отличным фундаментом, на котором и вокруг которого вы сможете сформировать свой учебный процесс и расти как начинающий специалист.</p>
<p>Пару слов хотел бы добавить лично от себя.</p>
<p>Всем людям, даже напрямую не связанным с IT, я всегда настоятельно рекомендую освоить слепой набор на клавиатуре. Я это сделал много лет назад, и даже боюсь представить, сколько часов сэкономил впоследствии. Цените свое и чужое время — если вы работаете за клавиатурой, навык слепой печати обязателен! Для истинных джедаев порекомендую рассмотреть эргономические клавиатуры. Все отзывы о них правда: неделю привыкаешь через слезы, затем думаешь, как раньше жил без нее. В итоге моя скорость возросла с 250-300, до 280-350 знаков в минуту на обеих раскладках.</p>
<p>Найдите возможность практиковаться. Я использовал фриланс и свои проекты. Знания, оторванные от практики, быстро забудутся и не зафиксируются у вас в голове. Один раз прочитали курс — у вас появится общее представление о технологии или инструменте. Что он существует, для чего-то используется. Когда сами попробуете его в работе два или три раза, у вас что-то останется на подкорке.</p>
<style data-mantine-styles="inline">.__m__-_R_4jderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_4jderddmiub_{--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_4jderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Привет! Меня зовут Юрий Бачевский, и это моя история успеха — как после 30 лет уйти в IT, имея ип...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">24 января 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-vernutsya-v-programmirovanie-posle-pereryva-v-devyat-let"><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">Как я самостоятельно выучил Ruby on Rails, поработал разработчиком, а потом на девять лет ушел из...</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">23 марта 2021 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ya-brosil-vse-i-stal-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="Как я бросил все и стал фронтенд-разработчиком"/></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">Привет, Хекслет! Меня зовут Сергей, мне 28 лет. Сейчас я живу в Москве и хочу рассказать историю,...</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">18 января 2021 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<p>В идеале довести владение инструментом или технологией до автоматизма. Это будет не быстро. На первых порах можно ограничиться базовыми технологиями. Если мы говорим про веб-разработку, это HTML/CSS/Bootstrap/Webpack/Git/Photoshop. Я понимаю, что здесь очень много информации, но попробуйте хотя бы заложить фундамент. На автоматизме писать основные теги и стили, использовать сетку Bootstrap, настраивать базовую конфигурацию Webpack, фиксировать изменения, делать push и clone и Git, вырезать графику в Photoshop. По мере роста вы будете знакомиться с другими технологиями, которые будут у вас на проекте, и также научитесь оттачивать свои навыки в работе с ними.</p>
<p>Именно те знания и умения, которые вы используете не задумываясь, и являются вашим основным багажом.</p>
<p>А в Новом году я желаю всем нам доехать с ним до реализации своих мечтаний и желаний.</p>
<p>Спасибо, Hexlet, и с Новым годом!</p>
<p>P.S. С момента старта здесь и до оффера прошло 11 месяцев. Именно на учебу у меня ушло 7 месяцев — с августа по декабрь был перерыв по причине переезда.</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Александр Смирнов</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">5 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-na-den-rozhdeniya-poluchit-offer-a-pod-novyy-god-ego-uspeshno-prinyat/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">38</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-gumanitariyu-popast-v-it-posle-30-s-malenkim-rebenkom-i-ipotekoy">Как гуманитарию попасть в IT после 30 с маленьким ребенком и ипотекой</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-vernutsya-v-programmirovanie-posle-pereryva-v-devyat-let">Как вернуться в программирование после перерыва в девять лет</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/kak-ya-brosil-vse-i-stal-frontend-razrabotchikom">Как я бросил все и стал фронтенд-разработчиком</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_web_development?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по веб-разработке</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>