Эту статью я писал в 2017 году, то есть почти 8 лет назад. С тех пор утекло много воды, тем не менее, информация и выводы, я думаю, актуальны и сейчас.

Недавно я сменил работу. Покинул крупный государственный вуз, в котором работал инженером-программистом и перешел на работу в небольшую «программерскую» контору. Опущу все подробности, вынудившие меня покинуть насиженное место, но настал определенный день, когда чаша терпения переполнилась, я зашел на один из сайтов с вакансиями и оставил свой отклик на некоторые из них (штук 5 наверно). Через 15 минут мне перезвонили и пригласили на собеседование.

О чем спрашивали на собеседовании?

Естественно, в первую очередь разговор зашел о выполненных мной проектах, я честно рассказал о том, что за свою жизнь создал несколько десятков сайтов с использованием CMS, голого HTML, PHP, немного поработал с фреймворком Laravel. Последнее несомненно их обрадовало, так как именно Laravel являлся их основным инструментом для создания веб-приложений. Было несколько вопросов по базам данных — к примеру, что такое отношение «многие ко многим», как строить сложные запросы при помощи JOIN. По технической части еще были вопросы по сессиям и кукам, а также по типично «ларавелевским» фишкам — что такое миграция и сид, для чего нужно middlware и много чего еще, сейчас уже все не вспомню. Признаюсь честно — я ответил примерно на 2/3 вопросов, так как мой опыт работы с Ларавелем на тот момент исчерпывался одним небольшим интранет-проектом.

Потом была серия вопросов по Git. Что это такое репозиторий, для чего он нужен, как с ним работать и работал ли я с ним. В этом плане у меня были лишь обрывочные теоретические знания.

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

На этом мы расстались и спустя полчаса мне позвонили и сказали, что моя кандидатура одобрена.

Добавлено 31.03.2025

После этого в течение следующих лет я также проходил несколько собеседований. Что на них будет — не угадаешь, все зависит от того, кто это собеседование проводит. Если это руководитель отдела разработки, задача которого — только координация процесса, сложных технических вопросов, скорее всего, не будет. На собеседование в крупную всероссийскую компанию я в красках рассказал о моем последнем проекте (собственно, мне было чем гордиться!), после чего получил несложное тестовое задание, которое нужно было выполнить за 3 дня и прислать исходники, что, собственно, и было сделано, я получил приглашение (но к тому моменту я уже перестал искать работу). Небольшая же контора, которая искала бэкэнд-разработчика, в ней собеседование проводил технический директор, который был явно уровня senior+ и начал копать в такую глубину, что я быстро понял, что, как бы я не пытался собрать мысли в кучу, собеседование провалено:)

Но вернемся опять в 2017 год…

Трудовые будни

Не успел начаться первый трудовой день, как тимлид решил озадачить меня по полной программе. Есть задача — создание презентационного сайта для одной крупной торговой сети федерального масштаба. Сейчас на сайте висит заглушка, есть кое-какие наработки, которые делал другой программист, до того как уйти в «бессрочный отпуск», бери этот проект на себя. Срок сдачи следующего этапа — через неделю.

Помимо, собственно, самого программирования, нужно было вести учет времени, потраченного на решение той или иной задачи в сервисе toggl.com, отслеживать задачи по проекту в трекере задач (youtrack), а также регулярно общаться с менеджером проекта из Москвы, держать его в курсе дела по текущему состоянию проекта.

Еще моей обязанностью было взаимодействие с верстальщиком, который рисовал фронтэнд — он присылает html-макеты, их нужно перевести в формат blade-шаблонизатора и «натянуть» на сайт. Взаимодействие происходит через репозиторий. Я только сейчас оценил все достоинства этого приема разработки, каждый занимается своим — он фронтэндом, я бэкэндом, практически не пересекаясь друг с другом, регулярно сохраняя на удаленный сервер результаты своей работы (коммиты). Вот она, суть командной работы.

Иными словами, в первые же дни на меня свалился такой шквал информации, что я приползал домой под вечер как выжатый лимон и ни на что не был способен, как просто доползти до дивана и забыться сном:)

Дальше было еще интереснее — даже несмотря на то, что я формально являлся бэкэнд-разработчиком, на меня упали задачи по работе именно с фронтэндом — подсоединение Яндекс-карты с подгрузкой объектов. Вроде бы ничего сложного на первый взгляд, но объектов оказалось почти 12000! и файл json с ними весил около 50 мегабайт. Естественно, при этом сайт просто затыкался при попытке отобразить карту. Нужно было организовать динамическую подгрузку этих объектов исходя из того, какой кусок карты отображался на экране. Фронтэнд-разработчик территориально располагался на территории Украины (напоминаю, это был 2017 год!), на которой Яндекс заблокировали, поэтому мне ничто не оставалось делать, как вникать самостоятельно в API Яндекс карт. Учитывая то, что до сдачи проекта оставались считанные часы, а мозг кипел от предыдущих задач, новая информация не воспринималась вообще. Вовремя вмешался тимлид — взял эту задачу на себя, все обошлось, хотя нервы ситуация немного потрепала.

Дальше — в том же ритме. Добавилась новая задача — не менее крупный клиент заказал браузерную игру (квест). Работа в основном по фронту, но со стороны бэкэнда надо было организовать взаимодействие фронтэнда с уже существующим API. И понеслось заново — чтение документации, созвоны по скайпу с другими участниками проекта, которые территориально расположены в Нижнем Новгороде, Москве и других городах. В общем скучать не приходилось.

Что я выяснил?

  1. Самая главная ошибка — идти работать программистом только ради денег. Да, в этой нише зарплаты гораздо выше средних. Даже будучи junior-ом, можно обеспечить себе вполне безбедное существование, не говоря уже об уровнях middle, senior. Я погнался за деньгами, но быстро понял, что не испытываю страсти к этой работе. Что-то вроде брака по расчету. Я мог развиваться дальше в этом направлении, но все это в определенный момент оно стало мне поперек горла. При этом конкурировать на рынке с теми, кто «живет программированием» просто не реально.
  2. Знать какой-то один язык (php, python, c#) даже в совершенстве — этого мало. Нужно уметь организовывать взаимодействие приложения с другими сервисами, разбираться в технической документации, которая зачастую написана настолько … своеобразно, что руки опускаются, а надо!
  3. Веб-программист — это совсем не творческая профессия. Приходится действовать, жестко зажатым в рамки ТЗ, от которого нельзя ни на йоту отступить. Никаких вольностей. Обычно я решал сам, как мне и что делать, здесь в этом плане испытывал дискомфорт.
  4. Все проекты, даже несмотря на внешние различия внутри устроены примерно одинаково и 80% времени при разработке уходит на типовые рутинные задачи.
  5. У каждого менеджера проекта свое видение того, как должен происходить рабочий процесс. Бывают такие, у кого рабочий подъем начинается ближе к 12 часам ночи и они начинают долбиться в твой Телеграм с вопросами «Уже спишь?» и не дай бог ответишь «нет пока», тебя вполне могут озадачить какой-то «сверхсрочной» задачей, которую надо сделать до завтрашнего утра.
  6. Чтобы работать программистом, и делать это успешно, недостаточно какого-то первоначального опыта — нужно пламенное желание постоянно разбираться в чем-то новом — технологии программирования, фреймворки, протоколы, сервисы. Учитывая то, что это постоянно развивается и обновляется, нужно быть настоящим энтузиастом, чтобы не соскочить с волны. 
  7. Мозг умеет хорошо сжигать калории не хуже мышц. За один месяц я похудел почти на 5 килограмм, при том, что вел преимущественно сидячий образ жизни и питался как обычно.
  8. Месяц работы в коммерческой организации в роли веб-разработчика дал мне гораздо больше опыта, чем до этого я получил за год работы в государственной организации.
  9. Если вы думаете, что в коммерческой конторе можно «халявить» как в государственной, вы сильно заблуждаетесь! Просто некогда. За месяц я Вконтакт на работе заходил всего пару раз и то в обеденный перерыв. Остальное время было занято работой.
  10. Если вам достанется относительно спокойная работа по разработке и поддержке какого-то одного проекта, рано или поздно он вам настолько надоест, что вы его тихо возненавидите. Еще возможно через несколько месяцев придет осознание того, что изначально надо было делать по другому, но уже менять что-то поздно. В результате проект начинает обрастать костылями:)

Главная рекомендация тем, кто решил «пойти в веб-программисты на php» — изучайте фреймворки. На голом php никто уже давно не пишет. Одними из наиболее популярных и востребованных php-фреймворков, как мне показалось, являются Laravel и Yii2. А вообще их великое множество. 

Только после того, как я вплотную поработал с Laravel, я стал понимать, насколько ущербна по сравнению с ним Joomla:)

Что сейчас?

А сейчас (2025)  я опять работаю в крупном государственном учреждении, занимающемся дополнительным профессиональным образованием. Нанимался я туда для производства обучающего видеоконтента, но звезды сошлись так, что мне опять пришлось взяться за Laravel и с помощью него автоматизировать все процессы в организации, до которых смог дотянуться. Моя разработка имеет название — АИС «Развитие», но она создавалась целенаправленно под задачи организации, поэтому в широком доступе ее найти не получится (да и нет в этом смысла). Система включает в себя LMS, CRM, ERP, интегрируется по API с другими внутренними сервисами.

Самые популярные материалы

Для улучшения работы сайта используются cookies. Продолжая пользоваться сайтом, вы соглашаетесь с использованием cookies.