Всем привет! Меня зовут Дмитрий, мне 31 год, и я начинающий бэкенд-разработчик. Я расскажу историю о том, как новые знания меняют цели в карьере, как перейти в новую профессию, когда тебе 31, у тебя есть семья и нет финансовой подушки, чтобы всё бросить и искать новую работу.
- Кем работал
- Мое знакомство с веб-разработкой
- Попытки учиться
- Обучение на Хекслете
- Трудности
- Продолжительность обучения
- Поиск работы
- Первая попытка
- Вторая попытка
- Третья попытка
- Четвертая попытка
- Как работается
- Планы
- Выводы
- Ещё
Кем работал
Моим первым и единственным местом работы была небольшая компания, занимающаяся обслуживанием оргтехники и локальных сетей. Там я работал на должности системного администратора, где занимался всем — от ремонта компьютеров и ноутбуков, до настройки СУБД и веб-серверов для 1С.
Всё шло хорошо. У нас сложился дружный коллектив, работать было комфортно, я старался развиваться этой сфере. Иногда мне попадались простые задачи, связанные с вебом: подкорректировать главную страницу на сайте клиентов, перенести сайт на другой хостинг, добавить счётчик «Яндекс.Метрики». Временами мой товарищ, который был веб-разработчиком, просил помочь ему с наполнением или вёрсткой. На тот момент я знал немного про вёрстку, заглядывал на сайт Htmlbook, пытался изучать программирование по редким на тот момент курсам или книгам. Самообразование мне давалось туго, я думал, что это просто не моё — и меня это устраивало.
Мое знакомство с веб-разработкой
Через пару лет нашей компании понадобилось переделать сайт. Был давно готов макет, оставалось только найти разработчика и сделать. Мне стало интересно попробовать сверстать настоящий макет самостоятельно — и я взялся. Тем более, что по срокам меня никто не ограничивал. А в качестве «движка» я выбрал CMS, написанную моим знакомым. Прошло немного времени, и всё было готово и размещено на хостинге. Мне понравилось, что я самостоятельно сверстал и запустил сайт, пусть и самый примитивный. Это придало уверенности, что научиться разработке вполне возможно, и я начал подыскивать курсы по программированию. К тому времени их стало немного больше.
Попытки учиться
Первым мне попался сайт Html Academy, где я ознакомился с HTML и CSS. Но интерес к нему быстро остыл, потому что программирование по-прежнему казалось чем-то далеким, а знание HTML/CSS уверенности не придавало. Насколько я помню, на тот момент там ещё не было уроков по программированию.
Следующим ресурсом был Itvdn. Здесь я купил и успешно прошел курс по HTML/CSS, но учиться там дальше не захотел — было сложно высидеть двухчасовой урок, а затем выполнять задание, вспоминая, на какой же минуте видео рассказывалась нужная информация. В общем, такой формат мне не зашел.
Обучение на Хекслете
Примерно в это же время коллега по работе рассказал о неплохих курсах по программированию Hexlet. Заинтересовавшись, я прошел пару бесплатных уроков. Прохождение не вызывало желания закрыть урок, приглянулась подача материала — короткое видео о чем-то конкретном с тестами в конце. Так я прошел бесплатный курс по введению в программирование, и, поняв в процессе, что мне это подходит, оформил подписку. К этому шагу располагала цена в 24$, что было очень даже приемлемо за такой материал. Ещё одним из решающих факторов для меня было то, что здесь учат фундаментальным вещам, которые применимы к другим языкам, а не только к тому, на котором учишься. Одним словом, здесь учат программированию, а не только синтаксису языка. В начале обучения я начал проходить профессию «PHP-разработчик», так как мой кругозор был ограничен тем, что PHP — на бэкенде, а JavaScript — на фронтенде.
Проходил курсы по вечерам, когда засыпал ребенок, и иногда на работе, когда было свободное время. Руководитель был не против, что я занимаюсь саморазвитием в IT.
Трудности
Первым моим камнем преткновения стал курс «PHP: Построение абстракций», такой СИКП на PHP. Вообще, если учишься на Хекслете, то эту аббревиатуру услышишь ещё не раз. Мозг кипел, было много непонятного. В комментариях к урокам встречались сообщения о том, что это очень сложно. Там же отвечали, что этот же материал дан в курсе по JS более понятно, и стоит пройти его там, если не понятно. Так я и сделал.
Читайте и другие истории успеха: Как благодаря Хекслету я устроился в EPAM, стал сеньором и уехал в США.
Действительно, мне удалось пройти этот курс на JS. В процессе я узнал про применение Javascript на сервере, Node.JS для бэкенда, и решил продолжить изучение этого языка. Тем более, что я был уверен — не важно, какой язык первым изучаешь на Хекслете.
Далее ещё были сложности в обучении — в основном связанные с тем, когда ты что-то не усвоил в одном уроке, подсмотрел решение учителя в практике, ничего не понял и пошёл дальше. Дальше это незнание накапливается, и ты не понимаешь вообще ничего. Это очень деморализовало, и на пару недель обучение забрасывалось. Позже я научился с этим справляться — заново прошёл все курсы и закрыл пробелы в знаниях, старался не подсматривать решения, а разбираться с задачей самому, иногда возвращаясь к предыдущим темам.
Продолжительность обучения
В моём обучении был большой перерыв в 3-4 месяца, связанный с бытовыми делами, и пара небольших, связанных как раз с неумением справиться со сложностью. В итоге прохождение профессии без проектов заняло у меня примерно полтора года.
Проекты я начал проходить после пары собеседований, когда понял, что в них смогу получить начальный опыт. Прохождение проектов заняло больше года. Первые три шли по плану — по одному проект в месяц. Четвертый затянулся почти на год в связи болезнями, рабочими проблемами во время пандемии и устройством на новую работу. Сейчас, когда на работе всё более менее устаканилось, я возобновил работу над проектом и надеюсь в скором времени его сдать.
Поиск работы
К окончанию обучения мои планы насчет работы изменились — я уже не собирался подрабатывать «допиливанием» сайтов на вордпресс, а хотел работать в команде разработчиков, выполнять сложные и интересные задачи. У моего начальства не было планов по организации отдела разработки, а заниматься этим самостоятельно казалось невозможным — не было знаний и практики в построении приложений, в настройке необходимых для этого библиотек и фреймворков. Кроме того, мне надоело заниматься тем, чем я занимался на работе, и захотелось сменить деятельность. В общем, я приступил к поиску новой работы, сделал резюме и начал его рассылать.
В Краснодаре найти оплачиваемую работу новичку оказалось достаточно сложно, везде требуется опыт работы, в том числе «в коммерческой разработке». Но я отправлял резюме даже в компании с такими требованиями. За время поисков я прошёл четыре собеседования и выполнил одно тестовое задание.
Первая попытка
Первое собеседование состоялось у одного зеленого мобильного оператора. В вакансии указывалось, что требуется «Джуниор JavaScript-разработчик». Тестового задания не было. На собеседовании были пара ребят из местного офиса, HR и разработчик из другого города на удалёнке. По технической части вопросов было мало, в основном про жизнь, почему меняешь работу и так далее. Затем объяснили, чем придется заниматься: это оказалась техподдержка в B2B-кабинете, в которой программирование занимало 10%, и то в какой-то своей системе. После собеседования сказали, что перезвонят, но мне уже самому не хотелось, чтобы перезванивали.
Вторая попытка
Знакомый разработчик скинул мне контакты руководителя местной IT-компании, занимающейся разного рода разработкой. Я связался, меня пригласили пообщаться. Там требовались разработчики по двум направлениям: бэкенд на PHP и фронтенд. В PHP я практически не разбирался, с фронтом было получше, но все же недостаточно, чтобы начать работать. Вообще получилась интересная ситуация — JS-разработчик, который не умеет во фронтенд. После беседы предложили месяц неоплачиваемой стажировки, за время которой я должен был подтянуть HTML/CSS и прочие дела, которые происходят во фронтенде, а после стажировки зарплату раза в два меньше моих ожиданий. Надо заметить, что мои зарплатные ожидания были немного завышены, и связано это было с необходимостью получать определенный минимум для содержания семьи. Поэтому я поблагодарил ребят за предложение и продолжил свои поиски.
После второй попытки стало понятно, что мне не хватает практического опыта, поэтому я решил пройти проекты на Хекслете.
Третья попытка
Ещё одна попытка попасть во фронтенд. Это была местная компания, которая занимается разработкой пары популярных медицинских сайтов с рейтингами докторов и клиник. Отправил им резюме, получил тестовое задание. Требовалось сделать страницу, где нужно делать запросы к тестовому API, получать данные и изображения, и выводить их в определенном порядке. Из библиотек предлагалось использовать JQuery. Задание оказалось несложным, и я выполнил его без особых проблем. После него меня пригласили на собеседование.
На собеседовании присутствовали фронтенд-разработчик и кто-то из технического руководства. Разработчик давал задачи на программирование, а руководитель спрашивал «за жизнь». С задачами на алгоритмы я справился без проблем, с вопросами по верстке немного посыпался.
Через несколько дней HR мне ответила, что они не готовы взять меня на работу. Возможно, не стоило на собеседовании на фронтенд спрашивать: «Нельзя ли в дальнейшем перейти в бэкенд?».
Четвертая попытка
HR следующей компании сама меня нашла на hh.ru и предложила прийти на собеседование. Компания занимается рекламой в интернете и в соцсетях, у неё есть большой отдел разработчиков. В Краснодаре как раз открывался филиал, куда меня и пригласили.
Тестового задания не было — они обратили внимание на мой недоделанный четвертый проект Хекслета, который лежал на Github. На собеседовании общался с бекенд-разработчиком. Были вопросы по работе NodeJS, асинхронности, SQL. На вопросах про SQL я начал немного «плавать», потому что прошло много времени после прохождения курса, а я не подумал повторить. Затем открыли мой четвертый проект и по нему я быстро рассказал, что там происходит.
После моего провала с SQL, я подумал, что со мной вежливо попрощаются, но интервьюер пообщался с руководством, и мне сразу предложили пройти месяц оплачиваемой стажировки. Я согласился. Когда выходил из офиса, то не мог поверить, что меня берут на работу бэкенд-разработчиком на стек, который я знаю. Мое удивление было связано с тем, что я выбрал не слишком популярное направление для Краснодара. Куда проще было устроиться «PHP разработчиком на Битрикс».
Как работается
Через две недели после собеседования я вышел на новую работу, получил достаточно мощный компьютер с парой мониторов. Я сам поставил на него привычный дистрибутив линукс и начал осваиваться на рабочем месте. Меня практически сразу отправили «в бой» — поручили работать с одним из партнеров компании над поддержкой и доработкой внутреннего сервиса средних размеров. Сначала я довольно сильно переживал, что на меня свалилась такая большая ответственность, но коллектив оказывал моральную поддержку. Бороться с переживаниями помогли рассуждения Кирилла на одном из вебинаров по поводу софт-скиллов — о том, что нужно не бояться задавать вопросы, но при этом сначала пробовать делать что-то самому. Также помогал метод «выяснить, что делать дальше» из популярной книги по GTD.
В целом, я довольно уверенно справлялся с поставленными задачами с самого начала работы. В этом определенно заслуга проектов, потому что все инструменты и технологии мне уже знакомы. Полученных теоретических знаний вполне достаточно, чтобы разбираться в легаси коде и отлаживать его. В свободное время с коллегой по проекту разбираемся с его задачами.
Планы
В первую очередь — доделать четвертый проект, выполнение которого я затянул. Понемногу осваиваю Python, чтобы не зацикливаться на JS. Интересный и очевидный факт — второй язык на Хекслете осваивать в разы проще. Это говорит о фундаментальных знаниях, которые получаешь здесь. Также хочется поучаствовать в опенсорс-проектах Хекслета. Вообще, много планов про изучение языков или технологий, ребята на Хекслете вдохновляют меня своими статьями и вебинарами, за что им огромное спасибо!
Выводы
— Изучать можно любой язык, который нравится. Или пробовать несколько, а потом выбирать. На Хекслете всему учат хорошо.
— Умение правильно задавать вопросы — это навык, который вы тоже здесь получите, поэтому не замыкайтесь с нерешенными задачами и мыслью «это не мое, это слишком сложно для меня».
— Проекты — это важно, не экономьте на этом.
Ещё
Хочется отметить крутую атмосферу, которая царит вокруг Хекслета:
- Полезные обсуждения в слаке — от программирования до трудоустройства;
- Помощь с обучением в том же слаке или в обсуждениях к заданиям;
- Вдохновляющие вебинары на Youtube. Я не знаю как, но у Кирилла получается мотивировать, просто рассказывая «что нового на Хекслете»;
- Шикарные статьи и гайды по разным технологиям и языкам программирования.