Роман работал в логистике и в процессе проникся программированием. Теперь он пишет код без «костылей» и готовится стать fullstack-специалистом.
«Я боялся, что программирование — это очень сложно»
— Ты работал логистом. Почему сменил профессию?
— Когда я поступал на специальность, то думал, что логистика — про управление транспортными потоками. Попал на первую работу, и оказалось, что логистика — скорее про управление людьми, работу по телефону и с документами.
Компания перевозила грузы по Москве и России. Я много перерабатывал, а получал в результате столько же, сколько остальные. После нескольких месяцев работы убедился, что логистика — не моё.
— Что тебя подтолкнуло к программированию?
— В той логистической компании был один разработчик. Я наблюдал, чем он занимается, и у меня захватывало дух.
А ещё я вспомнил своё детское увлечение: в пятом классе я делал простенькие сайты, игровые форумы, создавал сообщества кланов. Я любил компьютерные игры, поэтому такая разработка меня увлекала.
— Почему же не пошёл в сферу IT сразу после школы?
— Я всегда боялся, что программирование — это очень сложно. Думал, нужно знать высшую математику, информатику. А у меня с ними были проблемы.
— И что изменило твоё мнение?
— Тот разработчик наглядно показал и объяснил, что на программиста можно выучиться самостоятельно. Меня как озарило. Наступил новый, 2020 год, и я решил все силы бросить на обучение.
Если для многих 2020 стал неудачным, то для меня — самым насыщенным и успешным за всю жизнь.
— Но учиться в вузе на логиста ты не бросил…
— Я подумал: чтобы в будущем стать большим начальником, пригодится корочка. Тем более мой профиль называется «менеджмент», а учиться осталось всего полтора года.
О коде без «костылей» и лучшем фреймворке для РНР
— Почему среди всех языков программирования ты выбрал PHP?
— РНР — самый распространённый язык для веб-разработки. Facebook, «ВКонтакте», «Википедия» — все эти сайты сделаны и работают на нём. Плюс низкий порог вхождения — для старта нужны минимальные усилия.
— А какие есть альтернативы: если я хочу писать код для сайта не на РНР, то на чём?
— Можно попробовать на Java, Kotlin или на Python. Но мне кажется, что РНР всё равно самый простой для использования.
— Я нашла твой профиль на «Хабре». Там ты пишешь, что делаешь качественный код без «костылей». Что это значит — код без «костылей»?
— Писать код без «костылей» — принимать решения, которые не навредят коду в будущем. «Костыль» помогает на одном этапе, но не решает проблему в целом.
— А почему эти «костыли» вообще возникают?
— Из-за незнания теории. Многие разработчики-самоучки хорошо натренированы практически, но не знают общих основ. Например, как выстроить всю систему так, чтобы твой код был понятен любому программисту?
«У меня был hard-режим»
— Ты начал обучение в Skillbox и параллельно работал на старой работе. Как совмещал?
— У меня был hard-режим. Я поставил себе цель — выучиться на PHP-разработчика за полгода. Каждый день после работы я учился и учился. Я почти не гулял, не играл в игры, не делал ничего другого. Я пожертвовал личным временем, но зато достиг цели. Думаю, без онлайн-университета моё движение к ней замедлилось бы раза в три.
— Неужели за полгода такой интенсивной работы не было выгорания?
— Нет! Наоборот: я так влюбился в учёбу и профессию, что не мог остановиться. Я понял, что в программировании нужно постоянно учиться. Иначе — тебя догонят и перегонят.
— А что для тебя оказалось самым сложным в изучении языка РНР?
— Мне тяжело давалась архитектура приложения. Также непросто было понять в объектно-ориентированном программировании, как правильно структурировать проект, применять шаблоны, как управлять базами данных и работать с MySQL.
— Как справился?
— Просто уделил этим моментам больше времени. Нашёл для себя такую схему: пересмотреть урок по теме несколько раз — задать вопросы в чате — сделать перерыв в день — снова вернуться к теме и уже с лёгкостью усвоить материал.
— Какие минусы в языке РНР видишь?
— Раньше меня напрягало, что РНР — самый популярный и, соответственно, самый низкооплачиваемый язык. Но со временем понял: тех, кто разрабатывает, — много, а тех, кто разрабатывает хорошо, — гораздо меньше.
Решил: если делать качественно, то и уровень заработка будет приемлемым.
— А как ты сейчас оцениваешь свой уровень по зарплате и должности?
— Я оцениваю себя чуть выше мидла, ближе к сеньору. Думаю, минимальная зарплата для такого уровня — это 100 тысяч рублей после вычета налогов.
«Уже на втором собеседовании меня взяли на работу»
— Как искал работу? Столкнулся ли с той жёсткой конкуренцией на рынке, которую предполагал?
— Так вышло, что работу я искал в начале пандемии. Казалось бы: вакансии должны сократиться, но я устроился почти с первой попытки.
На одном собеседовании я не сошёлся с работодателем по условиям, а уже на втором — в Кредит Европа Банк — меня утвердили. Сказали, что человека на это место они искали полгода 🙂
— Ого! А что спрашивали на собеседовании?
— Минут сорок задавали вопросы о РНР, правильных практиках в языке, про фреймворк Laravel. У меня не было своих проектов, не было опыта, и мне дали работу только на основе моих теоретических знаний.
После этого я понял, что очень важно найти фреймворк, на котором будешь специализироваться. На рынке я вижу всё больше вакансий на конкретные фреймворки, а не на язык РНР в целом.
— Вспомни первый рабочий день на этой серьёзной должности. Какие страхи и эмоции были?
— Я о-о-очень переживал. Думал: сейчас приду и не смогу ничего сделать. Я такой молодой, 24 года, а там сидят одни матёрые программисты с пятнадцатилетним опытом. Эти переживания ушли уже после первого дня. Коллеги всегда помогали, если я что-то не понимал.
— Расскажи, какими проектами занимаешься на работе.
— Мы с напарником автоматизировали создание, согласование и регистрацию разных документов и приказов. Если простым языком: раньше все сотрудники создавали документы в обычном Word, распечатывали, ходили по кабинетам и подписывали.
Мы создали систему, которая полностью автоматизирует документооборот банка: согласует файлы без единого распечатанного листа. Даже подписи ставятся только в электронном виде. Время, затрачиваемое на все эти бумажки, сократилось. Теперь за пять минут можно подписать документ из другого города.
— Ты занят только этим проектом?
— Его мы почти закончили. Стартует следующий — проект управления рисками. Будем систематизировать потери банка. Допустим, где-то украли банкомат. Мы заносим этот инцидент в журнал, выбираем ответственных за причины и за решение ситуации.
— Ты рассказал про основную работу в Кредит Европа Банк. Подрабатываешь ли на стороне?
— Да. В Кредит Европа Банк я работаю очно восемь часов из офиса, а в свободное время подрабатываю на свою старую логистическую компанию как разработчик. На это уходит 15–20 часов в неделю.
Там я помогаю другим программистам: страхую их, если они что-то не успевают, и делаю задачи по отслеживанию транспорта в нашей системе.
— Зачем тебе такая загруженность?
— Хочу приобрести своё жильё. Когда куплю — буду меньше работать и больше учиться. Сейчас у меня четыре занятия: учёба в университете, в Skillbox и две работы — времени катастрофически не хватает.
— А ты не думал о фрилансе? Почему сразу пошёл в большие компании?
— Я вижу во фрилансе гигантскую конкуренцию. Все хотят работать из дома. Много конкурентов и нестабильность меня пугают. При этом на штатной работе радует запись в трудовой книжке — она поможет в будущих трудоустройствах.
О личном блоге и осознанном подходе к профессии
— Какие софт-скиллы нужны РНР-разработчику?
— Разработчик — это всегда человек, который чего-то не знает. Он должен искать информацию среди миллиона сайтов и форумов в интернете, в том числе на английском языке. Или ему приходится донимать коллег.
А ещё для разработчика важна работа в команде. Он должен уметь общаться с напарниками и заказчиками. Иначе возникнут недопонимания, которые помешают работе. У меня так случалось: дают задание, я его делаю, а потом оказывается, что для результата необходимо сделать ещё пару доработок. Но я не заложил на них время, потому что заказчик не объяснил в самом начале задачу детально, — и в итоге все пролетели по срокам.
— Ты упомянул, что хочешь стать fullstack-разработчиком. Зачем брать ответственность за все этапы разработки, если можно оставаться узким специалистом?
— В будущем я хочу создавать свои проекты. Чтобы делать их красиво и качественно, нужно уметь работать с технологиями как на клиентской части сайта (frontend), так и на серверной (backend).