Ночные смены в роли официанта, графический дизайн и образование управляющего гостиниц – вряд ли это приводит к IT, но жизнь распоряжается иначе.
Ошибка с выбором и ее осознание
Для поступления на техническую специальность нужна физика и хорошие знания по математике. А я был троечником и много прогуливал.
Поступил на «Ресторанное дело и гостиничный бизнес», по крайней мере это звучало весело.
Параллельно участвовал в “супертесте” проекта World Of Tanks от компании Wargaming. Здесь впервые попробовал себя в качестве тестировщика и открыл целый новый мир.
Но дохода это не приносило, а университет требовал регулярной оплаты. Чтобы зарабатывать, в свободное время делал график-дизайн: адаптации векторных изображений и подготовку макетов к печати.
В мае 2015 года пошел работать на курорт. Работал в ночную смену и учился в дневную. Сказать, что взрослая жизнь ударила в лицо, будет мало. В предрассветные часы я натирал вилки и смотрел обучающие видео по JS и верстке.
Простейшие JQuery селекторы казались rocket science, а проблему с вертикальным выравниванием не мог решить часами. Такие сложные условия привели к больничному и эмоциональному выгоранию. Понял: нужно что-то менять.
Первые деньги за первый сайт
Меня попросили сделать правки в сайте на Wordpress. Для этих правок нужны были знания HTML и CSS. Когда внес правки и заказчик (внезапно) оказался доволен, за ним пришла автомастерская, которая получила собственный сайт на бесплатном шаблоне.
Я объявил себя web-разработчиком, напечатал визитки и начал всем раздавать.
Фриланс и стагнация
С работой на курорте попрощался и разместил объявление об услугах по созданию сайтов. Получил первый заказ: нарисовал дизайн, сверстал, посадил на CMS. Меня благополучно обманули на деньги, сказав, что из стартапа вышел инвестор.
Я понимал, что не знаю базовых концепций программирования, но не знал, каких именно. Книги были слишком умными и рассчитывали на то, что владею базой. Тогда я не понимал, что большая часть странных надписей в коде – это указания типов, которых в JQuery и HTML не было. Это был тупик, а выхода не было видно.
Первые шаги в профессиональной разработке
В один момент меня попросили сделать логотип, фирменный стиль и сайт для ресторана. Это отлично совпало с темой диплома, поэтому решил получить этот опыт.
После окончания университета пригласили на работу с просьбой начать проект сайта.
Когда закончил дизайн и верстку, немного знал основы PHP и приступил к написанию бэкенда. Знания не позволяли использовать полноценный фреймворк. Выбор пал на ModX, который делал за меня огромное количество работы. Здесь немного познакомился с ООП и шаблонизатором Smarty.
Была огромная проблема: я был единственным разработчиком, без наставника, который мог бы прикрыть и помочь.
Спустя девять месяцев с огромным трудом проект был готов к запуску. Настроил онлайн-оплату, разработал календарь туров с динамическими ценами, рейтинги гидов, туров и другие сложные вещи, которые сам не понял как сделал. Но я считал, что он только внешне красив, а внутри ненадежен и развалится при первом реальном посетителе.
Пандемия не дала запуститься, я ушел в неоплачиваемый отпуск, а с ним и в большую тоску: то, над чем я работал почти год, потратил кучу нервов и сил, оказалось никому не нужным.
Проба пера в Laravel
Рестораны, которые я помогал открывать, оказались закрыты в локдаун. Выход был один — доставка. Решили, что нужен сайт!
Я уже знал, что тренд – Laravel, и решил попробовать сделать все на нем. Frontend — все тот же JQuery, sass и gulp в качестве сборщика.
Создал CRUD для основных сущностей: category, product, restaurant, user. Реализовал загрузку и обработку изображений. Для хранения данных выбрал PostgreSQL.
Для хостинга – местный PaaS-сервис. Сайт разворачивается через github, с нажатием на кнопку изменения попадают на серверы. Единственное, что отделяет проект от полноценного CI/CD, это необходимость ручного запуска сборки фронтенда. На основной функционал написаны тесты.
Kolesa Academy
В сентябре 2020 года я готовился подавать резюме в IT-компании. Я подал резюме на вакансию PHP-разработчик в Kolesa Group. И спустя день увидел у них набор в PHP-Академию, это стажировка с обучением под менторством ведущих специалистов. Решил податься туда. Пульс в момент прохождения отбора был явно под 130.
Во время обучения я рос так как никогда. Докер, очереди, редис, токены, куча непонятных слов и два написанных микросервиса за две недели. Это были самые полезные недели за весь мой путь в профессию. Сама стажировка длилась три месяца, настройка окружения, подъем проекта и первая реальная задача. Огромная инфраструктура, микросервисы, миллионы строк кода.
И самое главное, я получил то, о чем так долго мечтал, — ментора, опытного наставника.
Несколько важных вещей, которые хотел бы выделить из статьи:
Программирование — не язык программирования.
Отсутствие профильного образования — не преграда для трудоустройства.
Временами случаются застои в обучении, это циклический процесс, мозгу нужно адаптироваться – и иногда это болезненно.
Ментор – это сгусток опыта и просто очень хороший друг, который поддержит и направит в нужном направлении.
Для продукта важны технические навыки и математическая база, но вовлеченность и желание развивать и развиваться имеют большее значение.