Начну историю с самого начала: если вам интересна только история трудоустройства, листайте до нужного заголовка. Там будут этапы прохождения отбора в мою компанию.
- Кто я
- Плыть по течению в гуманитарные науки
- Сайты и тестирование продуктов как хобби
- Первые заказы на фрилансе и застой
- Первая работа единственным разработчком в компании и начало обучения на Хекслете, воодушевление.
- Коронавирус и конец туризма. Учеба и снова фриланс.
- Стажировка в одной из самых крутых 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. И было два задания:
- Консольная программа, которая проверяет, были ли внесены изменения в файле.
- Интерфейс и сам класс, который умеет ходить в базу данных и записывать/отдавать свои свойства.
Не на всё я ответил правильно, по ощущениям на 8 из 10 вопросов. Но мне позвонили и сказали, что я приглашен на собеседование с тимлидами команд и руководителем отдела бэкенд-разработки.
4 этап. Собеседование
Собеседование состояло из обычных вопросов, по сути — глубокая проверка софт-скиллов через ряд наводящих вопросов.
5 этап. Обучение
До допуска к работе я должен был пройти обучение, где самостоятельно реализовал ряд микросервисов. На это мне дали две недели. Можно было использовать абсолютно любые технологии и разную реализацию. И даже системы очередей, in memory базы данных для кэша. Это была проверка на способность мыслить как архитектор продукта. Они доступны у меня на GitHub: Ресайзер изображений, Микросервис хранения Push-токенов.
Тут мне очень пригодились проекты Хекслета, а мои менторы высоко оценили качество, скорость и архитектуру кода.
6 этап. Стажировка
На этом этапе я работал с высоконагруженными продуктами компании — над реальными задачами, знакомился с инженерной культурой. Но каждый день я себя недооценивал, тянул со сроками. Однажды состоялась встреча с тимлидом, ещё месяц до окончания стажировки, я боялся, что это просьба собрать вещи, но я услышал:
— Павел, мы посмотрели как ты работаешь, твой подход к решению задач нам нравится и мы готовы предложить тебе позицию бэкенд-разработчика в нашей команде.
Стажировка была досрочно закрыта и теперь я Junior бэкенд-разработчик, работаю в огромной команде невероятно крутых людей, очень любящих своё дело. Самым приятным было услышать от менторов то, что я быстро разбираюсь в новых технологиях, грамотно подхожу к решению нетривиальных проблем и не зациклен на конкретном фреймворке. Это то, чему учат здесь, на Хекслете, и я этому безумно рад.
Продолжаю обучение
После всего этого желание учиться стало только сильнее. Теперь я читаю рекомендованную компанией литературу, учу английский, осваиваю GO. Я начал даже проходить профессию PHP-программист почти сначала и планирую полностью завершить. Теперь на многие вещи из курсов смотрю совсем иначе, вижу те же паттерны и подходы, что и в рабочих проектах, и обучение получается ещё более глубоким и интегрированным, теперь более понятны фундаментальные вещи из курсов, и почему обучение начинается именно с них. Это как начать читать любимую книгу из детства и видеть моменты, понятные только взрослому.
Чему научился, главные мысли и пожелания
- Не пытаться только самостоятельно изучать программирование, наступит момент, когда вы перестанете расти.
- Не бояться ошибок, никто не застрахован от них, но это самый верный способ научиться. Через боль плохого кода можно узнать зачем и как делать его правильным.
- Быть вечным джуном, открытым к знаниям и не бояться задавать вопросы.
- Несмотря на отсутствие профильного образования, можно научиться делать крутые IT-продукты.
- Компаниям, по крайней мере нашей страны, не хватает хороших разработчиков. А рынку не хватает крутых продуктов, так что нет смысла бояться остаться ненужным.
Я открыт для вопросов и с радостью отвечу на них, может быть кому-то будет важно.