Все статьи | Истории успеха

Как гуманитарий стал бэкенд-разработчиком в крупнейшей IT-компании Казахстана

Начну историю с самого начала: если вам интересна только история трудоустройства, листайте до нужного заголовка. Там будут этапы прохождения отбора в мою компанию.

Кто я

Я родился и живу последние 25 лет в Казахстане, Алматы. В феврале 2021 года досрочно закрыл стажировку и получил Job-Offer на позицию Back-End разработчика в одну из крупнейших продуктовых IT-компаний своей страны.

Плыть по течению в гуманитарные науки

Так могла начаться моя история: с детства мне были интересны компьютеры и волшебство, которое они творят. Однажды в школе начались курсы по Паскалю, которые меня, конечно, очень заинтересовали и...

...И-и-и я не смог их пройти, даже самые базовые основы. И не мог понять ни математику, ни физику, ни другие точные науки, разочаровался в себе и на долгие годы решил, что программирование — не для меня. Из-за плохих результатов экзаменов я не смог попасть на техническую специальность в университете. Поступил на «Ресторанное дело и Гостиничный Бизнес» в средненький университет.

Сайты и тестирование продуктов как хобби

Все свободное от учебы время я тратил на игры. Однажды, ещё во время учебы в школе, я решил попробовать себя в качестве тестировщика, и подал заявку в QA World Of Tanks — и меня взяли на позицию волонтера-тестировщика с 2013 по 2016 год. Даже удалённо, по голосовой связи, я чувствовал какой-то особенный дух IT-команд, который мотивировал изучить программирование.

Я учился в университете хорошо и, несмотря на отсутствие интереса, мог быстро запоминать информацию и сдать любой экзамен. Жил я на самой окраине города, путь в одну сторону занимал около 1,5 часов. В какой-то момент я понял, что это время можно как-то использовать, и начал учить HTML и CSS: как самое понятное из такого далекого мира информационных технологий.

Совместно с учебой я начал работать официантом в ночную смену и попросил модерацию WoT перманентно заблокировать себя, чтобы появилось больше времени. Это может показаться странным, но чувствовалась зависимость. Тогда я смотрел видеоролики и статьи по верстке во время дороги на работу и в универ. Затем учился верстать и даже начал делать лендинги и сайты на CMS как хобби.

В итоге я уволился с позиции официанта и начал работать тех-дизайнером в маленьком рекламном агентстве. Там я даже сделал сайт, который вышел на первую страницу поисковых систем в своей сфере, и начал приносить заказы и доход.

Первые заказы на фрилансе и застой

С этого момента я начал получать заказы на верстку и посадку на CMS различных сайтов мелких фирм, совершенствуя навыки верстки, и знакомясь с web-разработкой. Спустя год такой работы и десятки маленьких сайтов я понял, что развитие остановилось — мне нужно профессионально учиться, и есть какие-то базовые вещи, о которых нужно узнать. Но я не имел понятия, что это за вещи, как их учить, и способен ли я на это.

Этот застой и необходимость писать диплом в университете привели к сильному эмоциональному выгоранию и мыслям о потраченных впустую четырёх годах жизни. Что я умел хорошо, так это убеждать окружающих в своей компетенции. Диплом защитил на максимальный балл и тут же убрал его на самую дальнюю полку.

Первая работа единственным разработчком в компании и начало обучения на Хекслете, воодушевление.

Ещё во время обучения в университете я узнал про Хекслет, наткнувшись над подкаст Рахима «Мысли и Методы» — мне понравилась форма изложения, но я совсем ничего не понимал из того, что говорил Рахим.

Я прошел Code Basics по JavaScript, затем начал профессию на Хекслете и забросил, не смог справиться со сложностью. Хекслет был успешно задвинут на дальнюю полку на полгода.

В мае 2019 года способность убеждать привела меня к первой серьезной работе. Компания-туроператор по въездному туризму узнала, что я умею верстать, и пригласила меня на хороших условиях. Но тут же я испытал глубокое разочарование. Над их новым проектом я должен был работать один, совсем один. Без знаний бэкенда.

Я согласился.

Я думал, что смогу немного изучить PHP, пока делаю дизайн проекта и верстаю его. Я ошибался.

Спустя 10 месяцев проект кое-как был запущен с серьезными архитектурными ошибками. Вначале я даже не использовал Git. А про автотесты и CI/CD не приходилось и говорить. Писал как мог, как получалось. Некоторый функционал без поддержки старших разработчиков делался месяцами.

Читайте также:

«Комьюнити у PHP сейчас одно из самых активных»: интервью c разработчиком Yii Framework Александром Макаровым

Всё это время я учился на Хекслете, делал проекты. Каждый новый день я узнавал насколько мой код плох и синдром самозванца взлетал в небеса. Большое уважение выражаю руководителю компании, который верил в меня и поддерживал. Я был единственным разработчиком.

Коронавирус и конец туризма. Учеба и снова фриланс.

Наступил март 2020 года, страна закрылась. Туристы кончились. Проект остался пылиться на сервере, почти никому не нужный. Я отправился в неоплачиваемый отпуск. В этот же момент весь бизнес в городе начал открывать доставку, я взял проект по доставке еды и начал одновременно делать 3 проект на Хекслете. Здесь применил автотесты, CI/СD, деплой на PaaS-платформе и очень многое из того, что было изучено.

Проект вышел очень удачным и по сей день приносит более тысячи заказов в месяц. Я был удивлен, что на основе учебного проекта можно написать рабочий и приносящий прибыль продукт. Единственное, что в нем было сделано в корне неправильно, так это работа с AJAX. На тот момент я не знал совсем ничего про REST и делал как получится.

Стажировка в одной из самых крутых IT-компаний страны.

В сентябре 2020 года я узнал о том, что моя команда мечты набирает Junior бэкенд-разработчиков. Тут же подал заявку и начал готовиться.

1 этап. Резюме. Для начала я отправил резюме, старался делать так, как рекомендуют в Хекслет-резюме. Пройдено, ура!)

2 этап. Интервью. Октябрь, даже у нас на юге уже холодно. Звонок, и это HR из компании, говорит, что резюме одобрено, но есть вопросы.

Я выхожу в футболке на балкон, чтобы связь была лучше, замерзаю и отвечаю на базовые вопросы:

  • Какие есть типы и структуры данных в PHP?
  • Что такое HTTP?
  • Что такое GIT?

3 этап. Тестирование. Спустя несколько дней снова звонок — меня приглашают пройти тестирование. И еще пришло письмо по электронной почте. По ссылке был одноразовый тест с ограничением по времени в 2 часа. Я так боялся, что что-то может пойти не так — например, затопят соседи или начнется землетрясение.

Часть теста состояла из довольно продвинутых вопросов, в основном по ООП в PHP. И было два задания:

  1. Консольная программа, которая проверяет, были ли внесены изменения в файле.
  2. Интерфейс и сам класс, который умеет ходить в базу данных и записывать/отдавать свои свойства.

Не на всё я ответил правильно, по ощущениям на 8 из 10 вопросов. Но мне позвонили и сказали, что я приглашен на собеседование с тимлидами команд и руководителем отдела бэкенд-разработки.

4 этап. Собеседование

Собеседование состояло из обычных вопросов, по сути — глубокая проверка софт-скиллов через ряд наводящих вопросов.

5 этап. Обучение

До допуска к работе я должен был пройти обучение, где самостоятельно реализовал ряд микросервисов. На это мне дали две недели. Можно было использовать абсолютно любые технологии и разную реализацию. И даже системы очередей, in memory базы данных для кэша. Это была проверка на способность мыслить как архитектор продукта. Они доступны у меня на GitHub: Ресайзер изображений, Микросервис хранения Push-токенов.

Тут мне очень пригодились проекты Хекслета, а мои менторы высоко оценили качество, скорость и архитектуру кода.

6 этап. Стажировка

На этом этапе я работал с высоконагруженными продуктами компании — над реальными задачами, знакомился с инженерной культурой. Но каждый день я себя недооценивал, тянул со сроками. Однажды состоялась встреча с тимлидом, ещё месяц до окончания стажировки, я боялся, что это просьба собрать вещи, но я услышал:

— Павел, мы посмотрели как ты работаешь, твой подход к решению задач нам нравится и мы готовы предложить тебе позицию бэкенд-разработчика в нашей команде.

Стажировка была досрочно закрыта и теперь я Junior бэкенд-разработчик, работаю в огромной команде невероятно крутых людей, очень любящих своё дело. Самым приятным было услышать от менторов то, что я быстро разбираюсь в новых технологиях, грамотно подхожу к решению нетривиальных проблем и не зациклен на конкретном фреймворке. Это то, чему учат здесь, на Хекслете, и я этому безумно рад.

Продолжаю обучение

После всего этого желание учиться стало только сильнее. Теперь я читаю рекомендованную компанией литературу, учу английский, осваиваю GO. Я начал даже проходить профессию PHP-программист почти сначала и планирую полностью завершить. Теперь на многие вещи из курсов смотрю совсем иначе, вижу те же паттерны и подходы, что и в рабочих проектах, и обучение получается ещё более глубоким и интегрированным, теперь более понятны фундаментальные вещи из курсов, и почему обучение начинается именно с них. Это как начать читать любимую книгу из детства и видеть моменты, понятные только взрослому.

Чему научился, главные мысли и пожелания

  1. Не пытаться только самостоятельно изучать программирование, наступит момент, когда вы перестанете расти.
  2. Не бояться ошибок, никто не застрахован от них, но это самый верный способ научиться. Через боль плохого кода можно узнать зачем и как делать его правильным.
  3. Быть вечным джуном, открытым к знаниям и не бояться задавать вопросы.
  4. Несмотря на отсутствие профильного образования, можно научиться делать крутые IT-продукты.
  5. Компаниям, по крайней мере нашей страны, не хватает хороших разработчиков. А рынку не хватает крутых продуктов, так что нет смысла бояться остаться ненужным.

Я открыт для вопросов и с радостью отвечу на них, может быть кому-то будет важно.

Pavel Chernyshev 16 февраля 2021

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Профессия

Фронтенд-программист

Разработка фронтенд-компонентов веб-приложений
25 мая 8 месяцев
Профессия

Python-программист

Разработка веб-приложений на Django
18 мая 8 месяцев
Профессия

PHP-программист

Разработка веб-приложений на Laravel
26 мая 8 месяцев
Профессия

Node.js-программист

Разработка бэкенд-компонентов веб-приложений
в любое время 8 месяцев
Профессия

Верстальщик

Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Профессия

Java-программист

Разработка приложений на языке Java
31 мая 10 месяцев
Профессия
NEW

Rails-программист

Создает веб-приложения со скоростью света
31 мая 5 месяцев