Всем привет! Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения :-)
Содержание
Первые шаги
Думаю, стоить начать с первых попыток «потрогать» программирование. Это было примерно в 9 классе. Не помню, почему, но у меня появился интерес, и я полез на YouTube. Первое видео было о С++. Не понял абсолютно ничего, испугался этой магии и выключил.
Через некоторое время наткнулся на канал «Хороший программист». Там ребята топили за Ruby, и я принялся изучать его по их видео. Как сейчас помню puts "Hello World!". Счастью не было предела. Но я быстро очнулся, когда следующим уроком были переменные, объекты и if-else. Буквально впал в ступор. Забавно сейчас вспоминать это :-)
Чем дальше, тем больше я не понимал, поэтому со временем забросил обучение.
Затем был период учёбы на HTMLacademy. Позанимался там не больше пары месяцев. Заполнил шкалу обучения на 30 % и понял, что вёрстка мне не интересна.
Знакомство с Хекслетом
В июне 2017 года каким-то образом наткнулся на Хекслет, он сразу зацепил меня. Фронтендом я не хотел заниматься, поэтому выбор пал на профессию «Бэкенд JavaScript». Прошел все бесплатные уроки и 28 июля оплатил подписку.
В процессе обучения мой мозг не раз ломался. Порой ощущал себя неспособным к программированию, и это мягко говоря. Но когда что-то начинает получаться, когда ты видишь зеленые тесты... Когда задачу решаешь весь день, думая о ней за обедом, на улице, перед сном, а придумав что-то, берешь телефон и записываешь в заметки, а потом проверяешь решение, и оно работает — испытываешь неописуемое удовольствие. Забываешь, что что-то не получалось. До очередной сложной задачи, естественно. И так по кругу :-)
Момент радости
Так я занимался до конца августа. Прекратил обучение, так как начинался десятый класс, и я хотел сфокусироваться на экзаменах, чтобы поступить на бюджет и уехать из своего небольшого города. Собственно, у меня это получилось. Довольно неплохо все сдал и поступил в питерский политех, на специальность математика и компьютерные науки.
Что мне дал универ
Как и следовало ожидать, в универе было много математики. Программирование у нас началось на C, а во втором семестре перетекло в C++. Раз в неделю проходили лекции, и раз в неделю была сдача лабораторных работ. Лабы сами по себе были несложные, но вот преподаватель, который их принимал — ох... Как раз из-за этих лаб из 46 людей отсеялась почти половина.
Проблема была больше в самих студентах, ведь преподаватель просто хотел, чтобы люди отлично понимали базовые вещи. Сначала я тоже не совсем понимал такой подход, но со временем проникся. Как сейчас помню это окошко с памятью в VisualStudio, указатели. Как нужно было понять, сколько выделится памяти под переменную, на сколько будет сдвиг и так далее. Сейчас я благодарен данному преподавателю, хоть С/С++ мне пока не пригодились в работе, но для общего понимания это очень даже полезно.
В октябре я вновь оплатил подписку и вернулся на Хекслет. Конечно, за 2 года забыл большую часть информации, почти заново пришлось проходить все. Повторил многое и даже успел пройти новые курсы. Остановился где-то на «Последовательностях», затем снова отодвинул Хекслет, так как приближалась зачетная неделя и сессия, которую я вскоре сдал. В конце февраля 2019 года снова стал учить программирование.
И снова Хекслет: как я оценил мощь проектов
На этот раз был настроен серьезно. Думал, точно не брошу Хекслет, пройду пару проектов и наконец найду работу. Спойлер: я снова обо***лся, хоть и не сразу.
Не всё и не всегда идёт гладко
В начале марта завершил первый проект, а через месяц и второй. Понял, что проекты — это действительно круто и интересно. Проект структурирует весь пройденный материал. Иногда возникали сложности, но менторы помогали во всем разобраться, спасибо им.
Где-то между первым и вторым проектом я начал мониторить вакансии на HH, присматриваться к рынку, добавлять что-то в избранное. В какой-то момент понял, что для джунов очень много вакансий на PHP, а вот на ноде, чтобы онли бэкенд без фронта — таких вакансий маловато. После окончания второго проекта перешел в профессию «PHP-программист».
Первая попытка найти работу
В середине апреля наткнулся на вакансию: офис, Питер, онли бэк на ноде. В общем, мне всё подходило. Написал эйчару, девушка отправила мне тестовое задание на почту. Вот как оно выглядело: «Сделать веб-приложение, при открытии надо показать кнопку авторизации, по нажатию она делает oauth-авторизацию ВКонтакте и показывает имя авторизованного пользователя и 5 любых друзей пользователя». При последующих запусках заходах на страницу приложение сразу показывает всю информацию, так как запоминает авторизацию.
Я снова вернулся к JavaScript, начал в спешке проходить курсы по Express, HTTP Server. В итоге почти до конца доделал задание, оставалось запоминать авторизованного юзера. Спасибо парню из слака, который помог разобраться с oauth, так как были сложности с токеном.
Я осознанно не стал доделывать до конца, так как вновь приближалась сессия, к тому же, были куплены билеты домой, а работа была бы в офисе в Питере. В тот момент пожалел, что метнулся в PHP, так как за это время успел бы пройти нужные курсы по ноде и быстрее выполнить тестовое задание, не купил бы билеты домой и, возможно, проработал все лето программистом, а не курьером на доставке роллов, как это было в итоге.
Вторая неудачная попытка и отчисление
Весь сентябрь и половину октября сдавал долги и экзамены за второй семестр, поскольку весной большую часть времени сидел на Хекслете, а по ночам играл в CS. Соответственно, в универ ходил редко. Уже в тот период появились сомнения по поводу высшего образования.
Параллельно со сдачей долгов пытался найти работу. Заметил, что осенью почему-то гораздо меньше вакансий, чем весной. Подвернулась вакансия fullstack-разработчика (React + Express). Несмотря на то, что вакансия с моим нелюбимым фронтом, решил откликнуться. Через некоторое время мне позвонил HR. Я как раз в этот момент сидел на паре. Собеседник начал спрашивать о HTTP, DNS, JS. Я ответил правильно примерно на 70 % вопросов. Этого хватило, и мне отправили тестовое задание.
Нужно было сделать чат с комнатами: очень урезанная версия слака. На самом деле, задач там было не так уж и мало, особенно, для человека, который не знает React и сокеты от слова совсем. Побежал оформлять подписку и изучать React и Redux, параллельно читая документацию по socket-io. Задание было рассчитано на неделю. Чат был сделан и сдан с опозданием в пару часов. Мне дали фидбэк по тестовому и пригласили на очное собеседование.
Встретил HR и провёл в переговорную, где я ожидал директора компании. Естественно, волновался. Сначала были общие вопросы по типу «почему именно программирование», «почему js». Затем алгоритмическая задача, какая конкретно, не помню. Помню лишь, что я дико затормозил. Хотя конкретно такие задачи всегда щелкал легко.
Наверное, на меня никто и не давил, я сам загонял себя в рамки. Но чувствовал какое-то давление, будто нужно ежесекундно решить задачу и притом оптимально.
Конечно, предложил какой-то вариант, но он явно не был оптимальным. Затем собеседующий попросил оценить через big O сложность моего решение, и здесь я снова ошибся, хотя через пару минут до меня дошло, но было уже поздно. Начались другие вопросы. Говорили о Linux и TCP. Процентов 70 по Линуксу я вообще впервые слышал.
В целом всё было не так плохо. Директор сказал, что я не безнадёжен и неплохо знаю для второкурсника. Но если он сейчас позовёт тимлида, и тот начнёт задавать вопросы по коду, то, скорее всего, меня раздавят. Я согласился с этим, хотя в глубине души понимал, что на вопросы по коду отвечу лучше, чем на вопросы по Linux и TCP.
В общем, мне дали список must-have литературы и сказали приходить, когда почувствую, что готов. Неделя, две, месяц, как мне удобно, меня ждут. Не знаю, правда бы меня взяли через месяц. После интервью не был разочарован. Наоборот, у меня остались только положительные впечатления, я был замотивирован двигаться дальше, изучать новое, копать глубже.
И тут я понял, что больше не могу разрываться между универом и желанием работать. Нужно было выбрать что-то одно, потому что конкретно на моей специальности, на втором курсе, невозможно было совмещать фултайм-работу и учиться. Хорошо подумав, выбрал перспективу найти работу программистом.
Почувствовал самую настоящую свободу: больше не нужно было посещать универ, беспокоиться по поводу долгов и так далее. Тот самый вкус свободы после 11 лет школы и не самого легкого года в универе. Это было самое начало ноября.
Прокрастинация, немного депрессии и первая работа
В первые недели после собеседование я продолжал заниматься на Хекслете, даже пару раз ходил в библиотеку, чтобы в тишине почитать про Linux. Казалось бы, полная свобода, куча времени, почти никаких обязательств, разве что перед самим собой. В общем, делай что хочешь, занимайся сколько хочешь, но не тут-то было. Началась какая-то дикая прокрастинация: я сидел до 6-8 утра, занимаясь абсолютно бесполезными вещами, которые вообще никак не связаны с программированием, а потом спал до 16
. Так прошел почти весь ноябрь.
Так как нужно было на что-то жить, я почти устроился барменом в ночь, уже должен был выходить на смену вечером в понедельник. Но ещё в пятницу мне позвонила девушка, спросила актуально ли моё резюме на HH.
Важная заметка: еще в октябре я разместил свое резюме на HH, чтобы было удобнее откликаться на вакансии.
Естественно я ответил «да». Девушка сказала, что чуть позже позвонит начальник, так как он пока что где-то в Сингапуре. За выходные мне никто так и не позвонил, я уже и не надеялся, но днём в понедельник мне позвонили. Было пару технических и один общий вопрос. Затем мне должен был позвонить еще один человек для полноценного интервью.
Всё происходило в Codeshare, там были подготовлены задачи на JS. Я неплохо справился, но немного забыл совсем базовые вещи по типу работы с объектами и тому подобное. Мне сказали за два дня повторить всё это. Естественно, я оплатил подписку на любимом Хекслете и начал всё повторять. Двух дней мне более чем хватило. В среду было ещё одно интервью, уже с чуть-чуть другими задачами. Всё прошло успешно, и уже через час я был в офисе. Компания маленькая, занимается разработкой мобильных приложений. Собственно, от меня требовалось написание бэкенда на Express для устройств.
Работа
Мне выдали макбук, рассказали о SSH, pm2, показали Cyberduck, advanced rest client (классная штука). Я сидел и разбирался со всем этим, читал документацию по realm (используем в качестве БД), копался в коде. Примерно на следующий день мне уже дали реализовать небольшую логику. От меня требовалось просто на бумаге решить задачу, но я смог и код написать.
Мне давали небольшие задачи, таким образом я потихоньку включался. Была неделя, когда я только и делал, что тестировал одно сложное приложение, составлял баг-лист со стороны логики, UI/UX. По началу было интересно, но потом быстро наскучило. Затем снова делал небольшие задачи по бэку, потом очень неохотно по админпанели на Vue.js + Jade. Плевался на Vue после React. Видимо, если вы пишите на ноде, то сложно отделаться от работы по фронту. Ну да ладно, для опыта и общего понимания полезно знать и уметь.
Я делал различные методы, работал с api Сбербанка, Страйпа, искал и подключал различные библиотеки для всяких нужд. Не уверен, что это была самая сложная задача, но именно она мне запомнилась: нужно было реализовать систему мониторинга для отправки пуш-уведомлений. Самое сложное было протестить это всё, так как там была зависимость от времени, и нужно было сопоставить много условий.
Так прошло где-то полтора или два месяца. Иногда занимался на Хекслете, читал статьи, смотрел видео. С каждым днём, сам того не замечая, я всё больше понимал, всё больше деталей пазла складывалось в моей голове.
Примерно через два месяца со дня начала работы второй бэкендер спросил у меня, смогу ли я самостоятельно сделать небольшой проект, начиная с подготовки сервера и проектирования БД, заканчивая интеграцией с БД сайта. У продукта уже был давно функционирующий сайт. Я был вообще не очень уверен в себе, но согласился.
Как говорится, глаза боятся, а руки делают, так я и закончил свой первый самостоятельный проект. Меня проконтролировали с проектированием БД, чтобы в дальнейшем не было факапа. Были небольшие сложности с интеграцией БД сайта. Разработчики предоставили api для доступа к их базе, я начал делать интеграцию и заметил, что у них в БД есть жёсткий косяк, поэтому пришлось хардкодить на сервере.
План
Недавно старший разработчик доделал абсолютно новую архитектуру сервера, в которой учтены все ошибки текущей. И на новом сервере мы будем писать на TypeScript, что неплохой опыт, я считаю.
В последнее время меня потянуло к Пайтону, стал проходить курсы на Хекслете, а на днях ещё и наткнулся на новость о стажировке в яндексе (бэкенд на пайтоне). Заполнил анкету, мне прислали ссылку на Яндекс-Контест. В ближайшее время буду проходить. Если дойду хотя бы до очного собеседования, то обязательно напишу об этом статью, дайте знать в комментариях, если было бы интересно.
На самом деле, в конце обучения в школе думал, что в будущем буду заниматься Data Science. Поступлю в универ, начну изучать Пайтон, матан, и ворвусь в эту, что называется, «хайповую» область. Но что-то пошло не так, я и не заметил, как мне стал интересен JS, backend и всё, что с этим связано. Сейчас же, спустя полтора года, вновь думаю изучить всю эту пока что магию чисто как хобби, для себя, а если что-то получится, то, возможно, в будущем все-таки ворваться в data science.
Что касаемо универа, я пока не знаю. Тут есть 5 вариантов: восстановиться в политехе, пойти в универ попроще, забить на высшее образование, пойти на заочку, ну и последний, самый привлекательный: поработать ещё один год и в 2021 уехать в Чехию учиться. Осталось решить проблему с армией.
Итоги
Пишу всё это спустя ровно 3 месяца с первого дня работы. Буквально сегодня подошёл к концу мой испытательный срок. Меня должны официально устроить и повысить зарплату. Хочу дать пару советов новичкам.
Во-первых, не распыляйтесь, если уж взялись за какую-то область, то постарайтесь довести до логического конца. Повторюсь, лично я пожалел, что в какой-то момент метнулся из JS в PHP, только время потратил. Если уж и менять направление, то с концами, а не метаться туда сюда. Говорю лишь о начале обучения, уже состоявшемуся разработчику даже необходимо заглядывать в другие технологии и языки, тут и говорить не о чем.
Во-вторых, не забывайте оглядываться назад. Лично мне это помогает осознать масштабы пройденного пути, понять, что не зря старался. Сравните себя в начале пути и, к примеру, спустя месяц, два.
В-третьих, не забывайте про сон и физические нагрузки. Где-то месяц-полтора назад я начал больше спать, ездить перед работой в спортзал и бассейн, и чувствую, что голова стала ясней, работать стало легче.
В-четвертых, если у вас есть возможность посещать митапы, конференции, то обязательно пользуйтесь этим. IT-сообщество разрастается, и даже в небольших городах потихоньку появляются постоянные митапы. А про Питер и Москву и говорить не приходится.
Ну и конечно, большое спасибо Кириллу, Рахиму и всем, кто трудится над Хекслетом. Ребята, вы крутые! Я не знаю лучшей площадки для изучения программирования.
Всем успехов и удачи!
<!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:19:21 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="65nt8Vk6LMT1hmoXMfZpEm1y1uOkKvf2UXQ0qIHkeG8ESCbGq0SBpEPFTo89-ZllrXv7SawdCVTslK780-OfAQ";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="Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/brosit-uchebu-radi-zhelaniya-rabotat-ili-kak-ya-pozhertvoval-politehom-radi-kariery-programmista">
<meta property="og:title" content="Бросить учебу ради желания работать, или Как я пожертвовал политехом ради карьеры программиста">
<meta property="og:description" content="Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения">
<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="8P2nASeNQ3beAhQ_X3SYA89fNSh3jkIiokpkLQ2rITcfLGw21fPuFmhBMKdTe2h0D1YYgn-5vIAfqv55X6zGWQ" />
<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/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNSwicHVyIjoiYmxvYl9pZCJ9fQ==--2e84f5f94140ee4e22019ac479c290ef48c3fac8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--442647b9b09e64febe5646427471c53eb6f80b32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-pana.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc2MCwicHVyIjoiYmxvYl9pZCJ9fQ==--9348098e4053d798b6f34bee4ef66947540261e4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Low%20code%20development-rafiki.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T23:19:20.948Z","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":"VLxRM-e_3A3CAByvtkzwjvs3QO_mwJIifcRsMzwyGSS7bZoEFcFxbXRDODe6QwD5Oz5tRe73bIDAJPZnbjX-Sg","post":{"model_name":"BlogPost","category":{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},"creator":{"public_name":"Евгений Бухаров","id":143484,"is_tutor":false},"tags":[{"id":633,"slug":"javascript","name":"JavaScript"},{"id":1038,"slug":"php","name":"PHP"},{"id":1444,"slug":"bekend","name":"Бэкенд"}],"id":716,"title":"Бросить учебу ради желания работать, или Как я пожертвовал политехом ради карьеры программиста","slug":"brosit-uchebu-radi-zhelaniya-rabotat-ili-kak-ya-pozhertvoval-politehom-radi-kariery-programmista","state":"published","summary":"Всем привет! Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения :-)","votes_count":61,"created_at":"2020-02-26T15:59:57.231Z","published_at":"2020-03-06T05:19:56.531Z","body":"Всем привет! Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения :-)\n\n## Содержание\n\n## Первые шаги \nДумаю, стоить начать с первых попыток «потрогать» программирование. Это было примерно в 9 классе. Не помню, почему, но у меня появился интерес, и я полез на YouTube. Первое видео было о С++. Не понял абсолютно ничего, испугался этой магии и выключил. \n \nЧерез некоторое время наткнулся на канал «Хороший программист». Там ребята топили за Ruby, и я принялся изучать его по их видео. Как сейчас помню ```puts \"Hello World!\"```. Счастью не было предела. Но я быстро очнулся, когда следующим уроком были переменные, объекты и `if-else`. Буквально впал в ступор. Забавно сейчас вспоминать это :-) \n\n::programs\n\nЧем дальше, тем больше я не понимал, поэтому со временем забросил обучение.\n \nЗатем был период учёбы на HTMLacademy. Позанимался там не больше пары месяцев. Заполнил шкалу обучения на 30 % и понял, что вёрстка мне не интересна.\n\n## Знакомство с Хекслетом\nВ июне 2017 года каким-то образом наткнулся на Хекслет, он сразу зацепил меня. Фронтендом я не хотел заниматься, поэтому выбор пал на [профессию «Бэкенд JavaScript»](https://ru.hexlet.io/professions/backend). Прошел все бесплатные уроки и 28 июля оплатил подписку. \n\nВ процессе обучения мой мозг не раз ломался. Порой ощущал себя неспособным к программированию, и это мягко говоря. Но когда что-то начинает получаться, когда ты видишь зеленые тесты... Когда задачу решаешь весь день, думая о ней за обедом, на улице, перед сном, а придумав что-то, берешь телефон и записываешь в заметки, а потом проверяешь решение, и оно работает — испытываешь неописуемое удовольствие. Забываешь, что что-то не получалось. До очередной сложной задачи, естественно. И так по кругу :-)\n\n\n\n_Момент радости_\n___\n\nТак я занимался до конца августа. Прекратил обучение, так как начинался десятый класс, и я хотел сфокусироваться на экзаменах, чтобы поступить на бюджет и уехать из своего небольшого города. Собственно, у меня это получилось. Довольно неплохо все сдал и поступил в питерский политех, на специальность математика и компьютерные науки.\n\n## Что мне дал универ\nКак и следовало ожидать, в универе было много математики. Программирование у нас началось на C, а во втором семестре перетекло в C++. Раз в неделю проходили лекции, и раз в неделю была сдача лабораторных работ. Лабы сами по себе были несложные, но вот преподаватель, который их принимал — ох... Как раз из-за этих лаб из 46 людей отсеялась почти половина. \n\nПроблема была больше в самих студентах, ведь преподаватель просто хотел, чтобы люди отлично понимали базовые вещи. Сначала я тоже не совсем понимал такой подход, но со временем проникся. Как сейчас помню это окошко с памятью в VisualStudio, указатели. Как нужно было понять, сколько выделится памяти под переменную, на сколько будет сдвиг и так далее. Сейчас я благодарен данному преподавателю, хоть С/С++ мне пока не пригодились в работе, но для общего понимания это очень даже полезно. \n \nВ октябре я вновь оплатил подписку и вернулся на Хекслет. Конечно, за 2 года забыл большую часть информации, почти заново пришлось проходить все. Повторил многое и даже успел пройти новые курсы. Остановился где-то на «Последовательностях», затем снова отодвинул Хекслет, так как приближалась зачетная неделя и сессия, которую я вскоре сдал. В конце февраля 2019 года снова стал учить программирование.\n\n## И снова Хекслет: как я оценил мощь проектов\nНа этот раз был настроен серьезно. Думал, точно не брошу Хекслет, пройду пару проектов и наконец найду работу. Спойлер: я снова обо***лся, хоть и не сразу. \n\n\n\n_Не всё и не всегда идёт гладко_\n___\n\nВ начале марта завершил первый проект, а через месяц и второй. Понял, что проекты — это действительно круто и интересно. Проект структурирует весь пройденный материал. Иногда возникали сложности, но менторы помогали во всем разобраться, спасибо им. \n \nГде-то между первым и вторым проектом я начал мониторить вакансии на HH, присматриваться к рынку, добавлять что-то в избранное. В какой-то момент понял, что для джунов очень много вакансий на PHP, а вот на ноде, чтобы онли бэкенд без фронта — таких вакансий маловато. После окончания второго проекта перешел в профессию [«PHP-программист»](https://ru.hexlet.io/professions/php).\n\n### Первая попытка найти работу\nВ середине апреля наткнулся на вакансию: офис, Питер, онли бэк на ноде. В общем, мне всё подходило. Написал эйчару, девушка отправила мне тестовое задание на почту. Вот как оно выглядело: «Сделать веб-приложение, при открытии надо показать кнопку авторизации, по нажатию она делает oauth-авторизацию ВКонтакте и показывает имя авторизованного пользователя и 5 любых друзей пользователя». При последующих запусках заходах на страницу приложение сразу показывает всю информацию, так как запоминает авторизацию. \n\nЯ снова вернулся к JavaScript, начал в спешке проходить курсы по Express, HTTP Server. В итоге почти до конца доделал задание, оставалось запоминать авторизованного юзера. Спасибо парню из слака, который помог разобраться с oauth, так как были сложности с токеном. \n \nЯ осознанно не стал доделывать до конца, так как вновь приближалась сессия, к тому же, были куплены билеты домой, а работа была бы в офисе в Питере. В тот момент пожалел, что метнулся в PHP, так как за это время успел бы пройти нужные курсы по ноде и быстрее выполнить тестовое задание, не купил бы билеты домой и, возможно, проработал все лето программистом, а не курьером на доставке роллов, как это было в итоге.\n\n## Вторая неудачная попытка и отчисление\nВесь сентябрь и половину октября сдавал долги и экзамены за второй семестр, поскольку весной большую часть времени сидел на Хекслете, а по ночам играл в CS. Соответственно, в универ ходил редко. Уже в тот период появились сомнения по поводу высшего образования.\n \nПараллельно со сдачей долгов пытался найти работу. Заметил, что осенью почему-то гораздо меньше вакансий, чем весной. Подвернулась вакансия fullstack-разработчика (React + Express). Несмотря на то, что вакансия с моим нелюбимым фронтом, решил откликнуться. Через некоторое время мне позвонил HR. Я как раз в этот момент сидел на паре. Собеседник начал спрашивать о HTTP, DNS, JS. Я ответил правильно примерно на 70 % вопросов. Этого хватило, и мне отправили тестовое задание. \n\nНужно было сделать чат с комнатами: очень урезанная версия слака. На самом деле, задач там было не так уж и мало, особенно, для человека, который не знает React и сокеты от слова совсем. Побежал оформлять подписку и изучать React и Redux, параллельно читая документацию по socket-io. Задание было рассчитано на неделю. Чат был сделан и сдан с опозданием в пару часов. Мне дали фидбэк по тестовому и пригласили на очное собеседование. \n \nВстретил HR и провёл в переговорную, где я ожидал директора компании. Естественно, волновался. Сначала были общие вопросы по типу «почему именно программирование», «почему js». Затем алгоритмическая задача, какая конкретно, не помню. Помню лишь, что я дико затормозил. Хотя конкретно такие задачи всегда щелкал легко.\n\nНаверное, на меня никто и не давил, я сам загонял себя в рамки. Но чувствовал какое-то давление, будто нужно ежесекундно решить задачу и притом оптимально.\n\nКонечно, предложил какой-то вариант, но он явно не был оптимальным. Затем собеседующий попросил оценить через big O сложность моего решение, и здесь я снова ошибся, хотя через пару минут до меня дошло, но было уже поздно. Начались другие вопросы. Говорили о Linux и TCP. Процентов 70 по Линуксу я вообще впервые слышал.\n\nВ целом всё было не так плохо. Директор сказал, что я не безнадёжен и неплохо знаю для второкурсника. Но если он сейчас позовёт тимлида, и тот начнёт задавать вопросы по коду, то, скорее всего, меня раздавят. Я согласился с этим, хотя в глубине души понимал, что на вопросы по коду отвечу лучше, чем на вопросы по Linux и TCP. \n\nВ общем, мне дали список must-have литературы и сказали приходить, когда почувствую, что готов. Неделя, две, месяц, как мне удобно, меня ждут. Не знаю, правда бы меня взяли через месяц. После интервью не был разочарован. Наоборот, у меня остались только положительные впечатления, я был замотивирован двигаться дальше, изучать новое, копать глубже. \n\nИ тут я понял, что больше не могу разрываться между универом и желанием работать. Нужно было выбрать что-то одно, потому что конкретно на моей специальности, на втором курсе, невозможно было совмещать фултайм-работу и учиться. Хорошо подумав, выбрал перспективу найти работу программистом. \n\nПочувствовал самую настоящую свободу: больше не нужно было посещать универ, беспокоиться по поводу долгов и так далее. Тот самый вкус свободы после 11 лет школы и не самого легкого года в универе. Это было самое начало ноября.\n \n## Прокрастинация, немного депрессии и первая работа\nВ первые недели после собеседование я продолжал заниматься на Хекслете, даже пару раз ходил в библиотеку, чтобы в тишине почитать про Linux. Казалось бы, полная свобода, куча времени, почти никаких обязательств, разве что перед самим собой. В общем, делай что хочешь, занимайся сколько хочешь, но не тут-то было. Началась какая-то дикая прокрастинация: я сидел до 6-8 утра, занимаясь абсолютно бесполезными вещами, которые вообще никак не связаны с программированием, а потом спал до 16:00. Так прошел почти весь ноябрь. \n\nТак как нужно было на что-то жить, я почти устроился барменом в ночь, уже должен был выходить на смену вечером в понедельник. Но ещё в пятницу мне позвонила девушка, спросила актуально ли моё резюме на HH. \n\n> Важная заметка: еще в октябре я разместил свое резюме на HH, чтобы было удобнее откликаться на вакансии. \n\nЕстественно я ответил «да». Девушка сказала, что чуть позже позвонит начальник, так как он пока что где-то в Сингапуре. За выходные мне никто так и не позвонил, я уже и не надеялся, но днём в понедельник мне позвонили. Было пару технических и один общий вопрос. Затем мне должен был позвонить еще один человек для полноценного интервью. \n \nВсё происходило в Codeshare, там были подготовлены задачи на JS. Я неплохо справился, но немного забыл совсем базовые вещи по типу работы с объектами и тому подобное. Мне сказали за два дня повторить всё это. Естественно, я оплатил подписку на любимом Хекслете и начал всё повторять. Двух дней мне более чем хватило. В среду было ещё одно интервью, уже с чуть-чуть другими задачами. Всё прошло успешно, и уже через час я был в офисе. Компания маленькая, занимается разработкой мобильных приложений. Собственно, от меня требовалось написание бэкенда на Express для устройств.\n\n## Работа\nМне выдали макбук, рассказали о SSH, pm2, показали Cyberduck, advanced rest client (классная штука). Я сидел и разбирался со всем этим, читал документацию по realm (используем в качестве БД), копался в коде. Примерно на следующий день мне уже дали реализовать небольшую логику. От меня требовалось просто на бумаге решить задачу, но я смог и код написать. \n\nМне давали небольшие задачи, таким образом я потихоньку включался. Была неделя, когда я только и делал, что тестировал одно сложное приложение, составлял баг-лист со стороны логики, UI/UX. По началу было интересно, но потом быстро наскучило. Затем снова делал небольшие задачи по бэку, потом очень неохотно по админпанели на Vue.js + Jade. Плевался на Vue после React. Видимо, если вы пишите на ноде, то сложно отделаться от работы по фронту. Ну да ладно, для опыта и общего понимания полезно знать и уметь.\n \nЯ делал различные методы, работал с api Сбербанка, Страйпа, искал и подключал различные библиотеки для всяких нужд. Не уверен, что это была самая сложная задача, но именно она мне запомнилась: нужно было реализовать систему мониторинга для отправки пуш-уведомлений. Самое сложное было протестить это всё, так как там была зависимость от времени, и нужно было сопоставить много условий.\n \nТак прошло где-то полтора или два месяца. Иногда занимался на Хекслете, читал статьи, смотрел видео. С каждым днём, сам того не замечая, я всё больше понимал, всё больше деталей пазла складывалось в моей голове. \n \nПримерно через два месяца со дня начала работы второй бэкендер спросил у меня, смогу ли я самостоятельно сделать небольшой проект, начиная с подготовки сервера и проектирования БД, заканчивая интеграцией с БД сайта. У продукта уже был давно функционирующий сайт. Я был вообще не очень уверен в себе, но согласился.\n\nКак говорится, глаза боятся, а руки делают, так я и закончил свой первый самостоятельный проект. Меня проконтролировали с проектированием БД, чтобы в дальнейшем не было факапа. Были небольшие сложности с интеграцией БД сайта. Разработчики предоставили api для доступа к их базе, я начал делать интеграцию и заметил, что у них в БД есть жёсткий косяк, поэтому пришлось хардкодить на сервере. \n\n### План\nНедавно старший разработчик доделал абсолютно новую архитектуру сервера, в которой учтены все ошибки текущей. И на новом сервере мы будем писать на TypeScript, что неплохой опыт, я считаю.\n \nВ последнее время меня потянуло к Пайтону, стал проходить курсы на Хекслете, а на днях ещё и наткнулся на новость о стажировке в яндексе (бэкенд на пайтоне). Заполнил анкету, мне прислали ссылку на Яндекс-Контест. В ближайшее время буду проходить. Если дойду хотя бы до очного собеседования, то обязательно напишу об этом статью, дайте знать в комментариях, если было бы интересно. \n \nНа самом деле, в конце обучения в школе думал, что в будущем буду заниматься Data Science. Поступлю в универ, начну изучать Пайтон, матан, и ворвусь в эту, что называется, «хайповую» область. Но что-то пошло не так, я и не заметил, как мне стал интересен JS, backend и всё, что с этим связано. Сейчас же, спустя полтора года, вновь думаю изучить всю эту пока что магию чисто как хобби, для себя, а если что-то получится, то, возможно, в будущем все-таки ворваться в data science. \n \nЧто касаемо универа, я пока не знаю. Тут есть 5 вариантов: восстановиться в политехе, пойти в универ попроще, забить на высшее образование, пойти на заочку, ну и последний, самый привлекательный: поработать ещё один год и в 2021 уехать в Чехию учиться. Осталось решить проблему с армией.\n\n## Итоги\nПишу всё это спустя ровно 3 месяца с первого дня работы. Буквально сегодня подошёл к концу мой испытательный срок. Меня должны официально устроить и повысить зарплату. Хочу дать пару советов новичкам.\n \nВо-первых, не распыляйтесь, если уж взялись за какую-то область, то постарайтесь довести до логического конца. Повторюсь, лично я пожалел, что в какой-то момент метнулся из JS в PHP, только время потратил. Если уж и менять направление, то с концами, а не метаться туда сюда. Говорю лишь о начале обучения, уже состоявшемуся разработчику даже необходимо заглядывать в другие технологии и языки, тут и говорить не о чем.\n \nВо-вторых, не забывайте оглядываться назад. Лично мне это помогает осознать масштабы пройденного пути, понять, что не зря старался. Сравните себя в начале пути и, к примеру, спустя месяц, два. \n\n::posts\n \nВ-третьих, не забывайте про сон и физические нагрузки. Где-то месяц-полтора назад я начал больше спать, ездить перед работой в спортзал и бассейн, и чувствую, что голова стала ясней, работать стало легче. \n\nВ-четвертых, если у вас есть возможность посещать митапы, конференции, то обязательно пользуйтесь этим. IT-сообщество разрастается, и даже в небольших городах потихоньку появляются постоянные митапы. А про Питер и Москву и говорить не приходится.\n \nНу и конечно, большое спасибо Кириллу, Рахиму и всем, кто трудится над Хекслетом. Ребята, вы крутые! Я не знаю лучшей площадки для изучения программирования. \n \nВсем успехов и удачи!","reading_time":9,"url":"https://ru.hexlet.io/blog/posts/brosit-uchebu-radi-zhelaniya-rabotat-ili-kak-ya-pozhertvoval-politehom-radi-kariery-programmista","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":653,"title":"Стать программистом можно и после 35 лет","slug":"stat-programmistom-mozhno-i-posle-35-let","summary":"Я Павел, мне 38 лет. Уже полтора года работаю программистом. Это был, наверное, один из самых сложных шагов в моей жизни. Захотел сменить профессию: переквалифицироваться и стать веб-разработчиком. Желание сменить профессию возникло после рождения второго ребенка в конце 2015 года. Понял, что нужно поменять что-то в жизни, к этому подталкивало и материальное положение. ","created_at":"2020-01-27T08:28:40.388Z","published_at":"2020-02-07T06:39:24.103Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":677,"title":"Как я стал программистом в 39 лет","slug":"kak-ya-stal-programmistom-v-39-let","summary":"В декабре 2018 года я работал на металлобазе. Таскал шестиметровые заготовки алюминия с напарником и пилил всё это на специальном станке. На тот момент мне было 39 лет. У меня жена, ребёнок 2 годика. И в марте 2019 должен был родиться второй малыш. Умел немного верстать сайты, и то делал это пару лет назад. Удалённо лепил лендинги на флоатах для одной конторы. Занимался этим не очень долго. Вот и весь опыт.\r\n","created_at":"2020-02-04T17:45:39.193Z","published_at":"2020-02-06T07:47:09.506Z","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":13,"slug":"backend","title":"Node.js-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":130,"duration_in_months":10},"id":19,"slug":"backend","title":"Node.js-разработчик","subtitle":"Изучите JavaScript, Node.js, Fastify и REST API","subtitle_for_lists":"Изучите JavaScript, Node.js, Fastify и REST API","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"backend","price_text":"от 4 755 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNSwicHVyIjoiYmxvYl9pZCJ9fQ==--2e84f5f94140ee4e22019ac479c290ef48c3fac8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"},{"stack":{"id":43,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":140,"duration_in_months":12},"id":74,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","subtitle":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","subtitle_for_lists":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","locale":"ru","current":true,"duration_in_months_text":"12 месяцев","stack_slug":"fullstack-javascript","price_text":"от 7 934 ₽","duration_text":"12 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"},{"stack":{"id":29,"slug":"js-oop","title":"ООП на Javascript","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4250,"duration_in_months":2},"id":46,"slug":"js-oop","title":"ООП на Javascript","subtitle":"Навык глубокого понимания архитектуры и написания чистого кода, позволяющий решать сложные задачи","subtitle_for_lists":"Изучите архитектуру и принципы чистого кода на JS","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"js-oop","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png"},{"stack":{"id":21,"slug":"js-async","title":"Асинхронное программирование на JS","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1650,"duration_in_months":1},"id":30,"slug":"js-async","title":"Асинхронное программирование на JS","subtitle":"Навык асинхронного программирования в JavaScript: писать быстрый код, расти в грейде и успешно проходить собеседования","subtitle_for_lists":"Навык работы с асинхронностью в JS","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"js-async","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--442647b9b09e64febe5646427471c53eb6f80b32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-pana.png"},{"stack":{"id":20,"slug":"js-sicp","title":"СИКП на JS","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4050,"duration_in_months":1},"id":28,"slug":"js-sicp","title":"СИКП на JS","subtitle":"Навык понимать программы на фундаментальном уровне, уверенно проходить собеседования и решать сложные задачи","subtitle_for_lists":"Навык фундаментального программирования","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"js-sicp","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc2MCwicHVyIjoiYmxvYl9pZCJ9fQ==--9348098e4053d798b6f34bee4ef66947540261e4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Low%20code%20development-rafiki.png"}]},"url":"/blog/posts/brosit-uchebu-radi-zhelaniya-rabotat-ili-kak-ya-pozhertvoval-politehom-radi-kariery-programmista","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":"2020-03-06T05:19:56.531Z","headline":"Всем привет! Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения :-)","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":61}]}</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/brosit-uchebu-radi-zhelaniya-rabotat-ili-kak-ya-pozhertvoval-politehom-radi-kariery-programmista","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="PHP"><span class="m_5add502a mantine-Badge-label">PHP</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">6 марта 2020 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>9 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>61</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>Всем привет! Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения :-)</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">Знакомство с Хекслетом</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Что мне дал универ</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">И снова Хекслет: как я оценил мощь проектов</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Вторая неудачная попытка и отчисление</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">Прокрастинация, немного депрессии и первая работа</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-9">Работа</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-11">Итоги</a></li>
</ul>
<h2 id="heading-2-2">Первые шаги</h2>
<p>Думаю, стоить начать с первых попыток «потрогать» программирование. Это было примерно в 9 классе. Не помню, почему, но у меня появился интерес, и я полез на YouTube. Первое видео было о С++. Не понял абсолютно ничего, испугался этой магии и выключил.</p>
<p>Через некоторое время наткнулся на канал «Хороший программист». Там ребята топили за Ruby, и я принялся изучать его по их видео. Как сейчас помню <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">puts "Hello World!"</code>. Счастью не было предела. Но я быстро очнулся, когда следующим уроком были переменные, объекты и <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">if-else</code>. Буквально впал в ступор. Забавно сейчас вспоминать это :-)</p>
<style data-mantine-styles="inline">.__m__-_R_dderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_dderddmiub_{--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_dderddmiub_" 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/backend?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">Node.js-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите JavaScript, Node.js, Fastify и REST 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/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNSwicHVyIjoiYmxvYl9pZCJ9fQ==--2e84f5f94140ee4e22019ac479c290ef48c3fac8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png" alt="Node.js-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 755 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-javascript?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">12 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Node.js</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Fullstack-разработчик на Node.js" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/js-oop?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">ООП на Javascript</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите архитектуру и принципы чистого кода на JS</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png" alt="ООП на Javascript" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/js-async?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">Асинхронное программирование на JS</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык работы с асинхронностью в JS</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--442647b9b09e64febe5646427471c53eb6f80b32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-pana.png" alt="Асинхронное программирование на JS" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/js-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">СИКП на JS</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/eyJfcmFpbHMiOnsiZGF0YSI6Mzc2MCwicHVyIjoiYmxvYl9pZCJ9fQ==--9348098e4053d798b6f34bee4ef66947540261e4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Low%20code%20development-rafiki.png" alt="СИКП на JS" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<p>Чем дальше, тем больше я не понимал, поэтому со временем забросил обучение.</p>
<p>Затем был период учёбы на HTMLacademy. Позанимался там не больше пары месяцев. Заполнил шкалу обучения на 30 % и понял, что вёрстка мне не интересна.</p>
<h2 id="heading-2-3">Знакомство с Хекслетом</h2>
<p>В июне 2017 года каким-то образом наткнулся на Хекслет, он сразу зацепил меня. Фронтендом я не хотел заниматься, поэтому выбор пал на <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/professions/backend" rel="noopener noreferrer" target="_blank">профессию «Бэкенд JavaScript»</a>. Прошел все бесплатные уроки и 28 июля оплатил подписку.</p>
<p>В процессе обучения мой мозг не раз ломался. Порой ощущал себя неспособным к программированию, и это мягко говоря. Но когда что-то начинает получаться, когда ты видишь зеленые тесты... Когда задачу решаешь весь день, думая о ней за обедом, на улице, перед сном, а придумав что-то, берешь телефон и записываешь в заметки, а потом проверяешь решение, и оно работает — испытываешь неописуемое удовольствие. Забываешь, что что-то не получалось. До очередной сложной задачи, естественно. И так по кругу :-)</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/U8bRaNA.jpg" alt="тесты позеленели" loading="lazy"/></p>
<p><em>Момент радости</em></p>
<hr/>
<p>Так я занимался до конца августа. Прекратил обучение, так как начинался десятый класс, и я хотел сфокусироваться на экзаменах, чтобы поступить на бюджет и уехать из своего небольшого города. Собственно, у меня это получилось. Довольно неплохо все сдал и поступил в питерский политех, на специальность математика и компьютерные науки.</p>
<h2 id="heading-2-4">Что мне дал универ</h2>
<p>Как и следовало ожидать, в универе было много математики. Программирование у нас началось на C, а во втором семестре перетекло в C++. Раз в неделю проходили лекции, и раз в неделю была сдача лабораторных работ. Лабы сами по себе были несложные, но вот преподаватель, который их принимал — ох... Как раз из-за этих лаб из 46 людей отсеялась почти половина.</p>
<p>Проблема была больше в самих студентах, ведь преподаватель просто хотел, чтобы люди отлично понимали базовые вещи. Сначала я тоже не совсем понимал такой подход, но со временем проникся. Как сейчас помню это окошко с памятью в VisualStudio, указатели. Как нужно было понять, сколько выделится памяти под переменную, на сколько будет сдвиг и так далее. Сейчас я благодарен данному преподавателю, хоть С/С++ мне пока не пригодились в работе, но для общего понимания это очень даже полезно.</p>
<p>В октябре я вновь оплатил подписку и вернулся на Хекслет. Конечно, за 2 года забыл большую часть информации, почти заново пришлось проходить все. Повторил многое и даже успел пройти новые курсы. Остановился где-то на «Последовательностях», затем снова отодвинул Хекслет, так как приближалась зачетная неделя и сессия, которую я вскоре сдал. В конце февраля 2019 года снова стал учить программирование.</p>
<h2 id="heading-2-5">И снова Хекслет: как я оценил мощь проектов</h2>
<p>На этот раз был настроен серьезно. Думал, точно не брошу Хекслет, пройду пару проектов и наконец найду работу. Спойлер: я снова обо***лся, хоть и не сразу.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/wT9oTzf.jpg" alt="фейл" loading="lazy"/></p>
<p><em>Не всё и не всегда идёт гладко</em></p>
<hr/>
<p>В начале марта завершил первый проект, а через месяц и второй. Понял, что проекты — это действительно круто и интересно. Проект структурирует весь пройденный материал. Иногда возникали сложности, но менторы помогали во всем разобраться, спасибо им.</p>
<p>Где-то между первым и вторым проектом я начал мониторить вакансии на HH, присматриваться к рынку, добавлять что-то в избранное. В какой-то момент понял, что для джунов очень много вакансий на PHP, а вот на ноде, чтобы онли бэкенд без фронта — таких вакансий маловато. После окончания второго проекта перешел в профессию <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/professions/php" rel="noopener noreferrer" target="_blank">«PHP-программист»</a>.</p>
<h3 id="heading-3-6">Первая попытка найти работу</h3>
<p>В середине апреля наткнулся на вакансию: офис, Питер, онли бэк на ноде. В общем, мне всё подходило. Написал эйчару, девушка отправила мне тестовое задание на почту. Вот как оно выглядело: «Сделать веб-приложение, при открытии надо показать кнопку авторизации, по нажатию она делает oauth-авторизацию ВКонтакте и показывает имя авторизованного пользователя и 5 любых друзей пользователя». При последующих запусках заходах на страницу приложение сразу показывает всю информацию, так как запоминает авторизацию.</p>
<p>Я снова вернулся к JavaScript, начал в спешке проходить курсы по Express, HTTP Server. В итоге почти до конца доделал задание, оставалось запоминать авторизованного юзера. Спасибо парню из слака, который помог разобраться с oauth, так как были сложности с токеном.</p>
<p>Я осознанно не стал доделывать до конца, так как вновь приближалась сессия, к тому же, были куплены билеты домой, а работа была бы в офисе в Питере. В тот момент пожалел, что метнулся в PHP, так как за это время успел бы пройти нужные курсы по ноде и быстрее выполнить тестовое задание, не купил бы билеты домой и, возможно, проработал все лето программистом, а не курьером на доставке роллов, как это было в итоге.</p>
<h2 id="heading-2-7">Вторая неудачная попытка и отчисление</h2>
<p>Весь сентябрь и половину октября сдавал долги и экзамены за второй семестр, поскольку весной большую часть времени сидел на Хекслете, а по ночам играл в CS. Соответственно, в универ ходил редко. Уже в тот период появились сомнения по поводу высшего образования.</p>
<p>Параллельно со сдачей долгов пытался найти работу. Заметил, что осенью почему-то гораздо меньше вакансий, чем весной. Подвернулась вакансия fullstack-разработчика (React + Express). Несмотря на то, что вакансия с моим нелюбимым фронтом, решил откликнуться. Через некоторое время мне позвонил HR. Я как раз в этот момент сидел на паре. Собеседник начал спрашивать о HTTP, DNS, JS. Я ответил правильно примерно на 70 % вопросов. Этого хватило, и мне отправили тестовое задание.</p>
<p>Нужно было сделать чат с комнатами: очень урезанная версия слака. На самом деле, задач там было не так уж и мало, особенно, для человека, который не знает React и сокеты от слова совсем. Побежал оформлять подписку и изучать React и Redux, параллельно читая документацию по socket-io. Задание было рассчитано на неделю. Чат был сделан и сдан с опозданием в пару часов. Мне дали фидбэк по тестовому и пригласили на очное собеседование.</p>
<p>Встретил HR и провёл в переговорную, где я ожидал директора компании. Естественно, волновался. Сначала были общие вопросы по типу «почему именно программирование», «почему js». Затем алгоритмическая задача, какая конкретно, не помню. Помню лишь, что я дико затормозил. Хотя конкретно такие задачи всегда щелкал легко.</p>
<p>Наверное, на меня никто и не давил, я сам загонял себя в рамки. Но чувствовал какое-то давление, будто нужно ежесекундно решить задачу и притом оптимально.</p>
<p>Конечно, предложил какой-то вариант, но он явно не был оптимальным. Затем собеседующий попросил оценить через big O сложность моего решение, и здесь я снова ошибся, хотя через пару минут до меня дошло, но было уже поздно. Начались другие вопросы. Говорили о Linux и TCP. Процентов 70 по Линуксу я вообще впервые слышал.</p>
<p>В целом всё было не так плохо. Директор сказал, что я не безнадёжен и неплохо знаю для второкурсника. Но если он сейчас позовёт тимлида, и тот начнёт задавать вопросы по коду, то, скорее всего, меня раздавят. Я согласился с этим, хотя в глубине души понимал, что на вопросы по коду отвечу лучше, чем на вопросы по Linux и TCP.</p>
<p>В общем, мне дали список must-have литературы и сказали приходить, когда почувствую, что готов. Неделя, две, месяц, как мне удобно, меня ждут. Не знаю, правда бы меня взяли через месяц. После интервью не был разочарован. Наоборот, у меня остались только положительные впечатления, я был замотивирован двигаться дальше, изучать новое, копать глубже.</p>
<p>И тут я понял, что больше не могу разрываться между универом и желанием работать. Нужно было выбрать что-то одно, потому что конкретно на моей специальности, на втором курсе, невозможно было совмещать фултайм-работу и учиться. Хорошо подумав, выбрал перспективу найти работу программистом.</p>
<p>Почувствовал самую настоящую свободу: больше не нужно было посещать универ, беспокоиться по поводу долгов и так далее. Тот самый вкус свободы после 11 лет школы и не самого легкого года в универе. Это было самое начало ноября.</p>
<h2 id="heading-2-8">Прокрастинация, немного депрессии и первая работа</h2>
<p>В первые недели после собеседование я продолжал заниматься на Хекслете, даже пару раз ходил в библиотеку, чтобы в тишине почитать про Linux. Казалось бы, полная свобода, куча времени, почти никаких обязательств, разве что перед самим собой. В общем, делай что хочешь, занимайся сколько хочешь, но не тут-то было. Началась какая-то дикая прокрастинация: я сидел до 6-8 утра, занимаясь абсолютно бесполезными вещами, которые вообще никак не связаны с программированием, а потом спал до 16</p><div></div>. Так прошел почти весь ноябрь.<p></p>
<p>Так как нужно было на что-то жить, я почти устроился барменом в ночь, уже должен был выходить на смену вечером в понедельник. Но ещё в пятницу мне позвонила девушка, спросила актуально ли моё резюме на HH.</p>
<blockquote>
<p>Важная заметка: еще в октябре я разместил свое резюме на HH, чтобы было удобнее откликаться на вакансии.</p>
</blockquote>
<p>Естественно я ответил «да». Девушка сказала, что чуть позже позвонит начальник, так как он пока что где-то в Сингапуре. За выходные мне никто так и не позвонил, я уже и не надеялся, но днём в понедельник мне позвонили. Было пару технических и один общий вопрос. Затем мне должен был позвонить еще один человек для полноценного интервью.</p>
<p>Всё происходило в Codeshare, там были подготовлены задачи на JS. Я неплохо справился, но немного забыл совсем базовые вещи по типу работы с объектами и тому подобное. Мне сказали за два дня повторить всё это. Естественно, я оплатил подписку на любимом Хекслете и начал всё повторять. Двух дней мне более чем хватило. В среду было ещё одно интервью, уже с чуть-чуть другими задачами. Всё прошло успешно, и уже через час я был в офисе. Компания маленькая, занимается разработкой мобильных приложений. Собственно, от меня требовалось написание бэкенда на Express для устройств.</p>
<h2 id="heading-2-9">Работа</h2>
<p>Мне выдали макбук, рассказали о SSH, pm2, показали Cyberduck, advanced rest client (классная штука). Я сидел и разбирался со всем этим, читал документацию по realm (используем в качестве БД), копался в коде. Примерно на следующий день мне уже дали реализовать небольшую логику. От меня требовалось просто на бумаге решить задачу, но я смог и код написать.</p>
<p>Мне давали небольшие задачи, таким образом я потихоньку включался. Была неделя, когда я только и делал, что тестировал одно сложное приложение, составлял баг-лист со стороны логики, UI/UX. По началу было интересно, но потом быстро наскучило. Затем снова делал небольшие задачи по бэку, потом очень неохотно по админпанели на Vue.js + Jade. Плевался на Vue после React. Видимо, если вы пишите на ноде, то сложно отделаться от работы по фронту. Ну да ладно, для опыта и общего понимания полезно знать и уметь.</p>
<p>Я делал различные методы, работал с api Сбербанка, Страйпа, искал и подключал различные библиотеки для всяких нужд. Не уверен, что это была самая сложная задача, но именно она мне запомнилась: нужно было реализовать систему мониторинга для отправки пуш-уведомлений. Самое сложное было протестить это всё, так как там была зависимость от времени, и нужно было сопоставить много условий.</p>
<p>Так прошло где-то полтора или два месяца. Иногда занимался на Хекслете, читал статьи, смотрел видео. С каждым днём, сам того не замечая, я всё больше понимал, всё больше деталей пазла складывалось в моей голове.</p>
<p>Примерно через два месяца со дня начала работы второй бэкендер спросил у меня, смогу ли я самостоятельно сделать небольшой проект, начиная с подготовки сервера и проектирования БД, заканчивая интеграцией с БД сайта. У продукта уже был давно функционирующий сайт. Я был вообще не очень уверен в себе, но согласился.</p>
<p>Как говорится, глаза боятся, а руки делают, так я и закончил свой первый самостоятельный проект. Меня проконтролировали с проектированием БД, чтобы в дальнейшем не было факапа. Были небольшие сложности с интеграцией БД сайта. Разработчики предоставили api для доступа к их базе, я начал делать интеграцию и заметил, что у них в БД есть жёсткий косяк, поэтому пришлось хардкодить на сервере.</p>
<h3 id="heading-3-10">План</h3>
<p>Недавно старший разработчик доделал абсолютно новую архитектуру сервера, в которой учтены все ошибки текущей. И на новом сервере мы будем писать на TypeScript, что неплохой опыт, я считаю.</p>
<p>В последнее время меня потянуло к Пайтону, стал проходить курсы на Хекслете, а на днях ещё и наткнулся на новость о стажировке в яндексе (бэкенд на пайтоне). Заполнил анкету, мне прислали ссылку на Яндекс-Контест. В ближайшее время буду проходить. Если дойду хотя бы до очного собеседования, то обязательно напишу об этом статью, дайте знать в комментариях, если было бы интересно.</p>
<p>На самом деле, в конце обучения в школе думал, что в будущем буду заниматься Data Science. Поступлю в универ, начну изучать Пайтон, матан, и ворвусь в эту, что называется, «хайповую» область. Но что-то пошло не так, я и не заметил, как мне стал интересен JS, backend и всё, что с этим связано. Сейчас же, спустя полтора года, вновь думаю изучить всю эту пока что магию чисто как хобби, для себя, а если что-то получится, то, возможно, в будущем все-таки ворваться в data science.</p>
<p>Что касаемо универа, я пока не знаю. Тут есть 5 вариантов: восстановиться в политехе, пойти в универ попроще, забить на высшее образование, пойти на заочку, ну и последний, самый привлекательный: поработать ещё один год и в 2021 уехать в Чехию учиться. Осталось решить проблему с армией.</p>
<h2 id="heading-2-11">Итоги</h2>
<p>Пишу всё это спустя ровно 3 месяца с первого дня работы. Буквально сегодня подошёл к концу мой испытательный срок. Меня должны официально устроить и повысить зарплату. Хочу дать пару советов новичкам.</p>
<p>Во-первых, не распыляйтесь, если уж взялись за какую-то область, то постарайтесь довести до логического конца. Повторюсь, лично я пожалел, что в какой-то момент метнулся из JS в PHP, только время потратил. Если уж и менять направление, то с концами, а не метаться туда сюда. Говорю лишь о начале обучения, уже состоявшемуся разработчику даже необходимо заглядывать в другие технологии и языки, тут и говорить не о чем.</p>
<p>Во-вторых, не забывайте оглядываться назад. Лично мне это помогает осознать масштабы пройденного пути, понять, что не зря старался. Сравните себя в начале пути и, к примеру, спустя месяц, два.</p>
<style data-mantine-styles="inline">.__m__-_R_44derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_44derddmiub_{--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_44derddmiub_" 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/stat-programmistom-mozhno-i-posle-35-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="Стать программистом можно и после 35 лет"/></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">Стать программистом можно и после 35 лет</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Я Павел, мне 38 лет. Уже полтора года работаю программистом. Это был, наверное, один из самых сло...</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">7 февраля 2020 г.<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-stal-programmistom-v-39-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="Как я стал программистом в 39 лет"/></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">Как я стал программистом в 39 лет</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">В декабре 2018 года я работал на металлобазе. Таскал шестиметровые заготовки алюминия с напарнико...</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">6 февраля 2020 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<p>В-третьих, не забывайте про сон и физические нагрузки. Где-то месяц-полтора назад я начал больше спать, ездить перед работой в спортзал и бассейн, и чувствую, что голова стала ясней, работать стало легче.</p>
<p>В-четвертых, если у вас есть возможность посещать митапы, конференции, то обязательно пользуйтесь этим. IT-сообщество разрастается, и даже в небольших городах потихоньку появляются постоянные митапы. А про Питер и Москву и говорить не приходится.</p>
<p>Ну и конечно, большое спасибо Кириллу, Рахиму и всем, кто трудится над Хекслетом. Ребята, вы крутые! Я не знаю лучшей площадки для изучения программирования.</p>
<p>Всем успехов и удачи!</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Евгений Бухаров</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">6 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/brosit-uchebu-radi-zhelaniya-rabotat-ili-kak-ya-pozhertvoval-politehom-radi-kariery-programmista/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">61</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/stat-programmistom-mozhno-i-posle-35-let">Стать программистом можно и после 35 лет</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-stal-programmistom-v-39-let">Как я стал программистом в 39 лет</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>