Как я стал программистом в 32 года. Отработал 1 год. Стоит ли оно того?

Ровно год назад в возрасте 32 лет я получил свой первый оффер и устроился в IT-компанию на должность Junior-разработчика на языке Java, где отработал 3 недели, после чего уволился. Это не история успеха, после которой будут ссылки на какие-либо курсы, это всего-лишь личный опыт человека (то есть меня), который до 32 лет работал инженером в строительной области, но в один момент решивший изменить если не всё, то точно существенную часть своей жизни.

Ранее я подробно рассказывал о том каким был мой путь: как возникли мысли стать программистом в 30+ лет, как и где я учился, а также сколько времени ушло на обучение и насколько сложно было найти первую работу. Если очень кратко, то вот основные тезисы из прошлых постов:

  • Бэкграунд в программировании: ноль, но в плане ПК я продвинутый юзер, то есть могу переустановить винду, найти и установить драйвера и вот это вот всё.

  • Учился я под присмотром ментора.

  • Теорию смотрел на YouTube, либо в дешевых курсах с площадки на букву U.

  • Закреплял знания на практике, выполняя небольшие пет-проекты, задания к которым мне выдавал ментор. Если кому-то интересно, то могу скинуть ссылку на задания в комментариях.

  • На учебу ушло 7,5 месяцев или 1000 часов обучения.

  • У меня была накоплена финансовая подушка, которая позволила полностью отказаться от основной работы и бросить все силы на обучение.

  • Сделал 700 откликов на hh, прежде чем получил первое приглашение на работу.

Если не лень читать подробные посты на эти темы, то оставлю ссылки ниже:

Так уж получилось, что первая работа оказалось абсолютно не тем, чего я ожидал от работы в новой для себя IT-сфере: легаси-проект, максимально бесполезные (с точки зрения профессионального развития) задачи, а также зарплата, на которую невозможно было прокормить семью. Но мне повезло: спустя 3 недели после того, как я попал на свою первую работу, мне написала HR с другой компании и пригласила на собеседование. Проект на свежих технологиях, зарплата почти в 2 раза выше. И да, меня взяли.

Абсолютно без всяких сожалений я написал заявление "по собственному" и ушел одним днем. Помню, как рядом сидящий джун (студент) мне говорил: "Ну и зря ты увольняешься. Где ты ещё без опыта найдешь работу начинающим разработчиком, так ещё и на такую нормальную зарплату". Согласен, для студента, который живет с родителями, 45000р - это может и нормальная зарплата, но не для семейного человека, за плечами которого жена в декрете, маленький ребенок и съемная квартира.

Итак, я ушел в другую компанию. На новом месте меня всё более чем устраивало: приятный и дружелюбный коллектив, проект с нормально написанным (на первый взгляд) кодом, адекватные моему уровню задачи и зарплата, на которую уже можно хоть как-то жить.

Я попросил читателей моего небольшого блога накидать мне в комментариях вопросов, которые их интересуют, ведь мне есть чем поделиться. Перед началом обучения, да и в процессе обучения я сам искал подобные статьи, так как было безумно интересно узнать: а как оно всё на самом деле в этом вашем IT, так ли всё круто, как нам рисуют маркетологи различных IT-курсов, как проходит день разработчика и реально ли работать на берегу океана с макбуком на коленях? Кстати, идея работать на берегу океана - это отстой на мой взгляд, какая бы это работа ни была. А теперь отвечу на вопросы читателей, разбив их на 3 блока: обучение, работа, общие вопросы.

== Про работу ==

Среди коллег есть те, кто вошел в эту профессию в возрасте 35+ или даже 40+ ?

Есть.

Как ты себя ощущал в первые дни на работе?

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

Расскажи про рабочий процесс: как получаешь задачи, от кого, как и перед кем отчитываешься, несколько примеров своих задач, состав команды?

В первые дни на первой работе мне дали ссылку на репозиторий, чтобы я ознакомился с проектом. Я смотрел на громадные классы со сложной бизнес-логикой, знакомился с БД, смотрел какие таблицы там есть, связи между ними. Первой задачей было найти и устранить баг: было задвоение информации в базе данных. Нужно было SQL-командой удалить задвоенную информацию. Кстати, на первой работе, где я отработал 3 недели - я не написал ни одной строчки кода, соответственно не сделал ни одного коммита. Всё задачи были связаны с БД.

На своей текущей работе задачи получаю из бэклога или тех.долга в Jira. После завершения задачи происходит код-ревью другим разработчиком (все ревьюят друг друга), после чего задача переходит в стадию тестирования. Каждый отчитывается о статусе своих задач на ежедневном созвоне. В команде 3 бэкенд-разработчика (один из них Senior, другой выполняет роль архитектора), 3 тестировщика, 1 проект-менеджер.

Примеры задач: отпилить от монолита часть логики и сделать отдельный микросервис, настроить логирование в нужном формате, настроить трейсинг, написать микросервис, который по расписанию будет забирать данные из БД, отправлять на сторонний API, получать данные и записывать в БД, привести в соответствие swagger и документацию в Confluence, покрыть код unit и интеграционными тестами. На прошлой работе писал ci/cd пайплайны для сборки образов и деплоя.

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

Была ли помощь более опытных коллег?

В первые дни на любой из работ я всегда спрашивал кого я могу спрашивать по проекту. Это нормально, особенно в первое время. Я всегда, когда это было необходимо, получал помощь или как минимум совет от более опытных товарищей. Старался спрашивать вопросы именно по самому проекту и его логике, а не по техническим моментам, которые можно легко загуглить, типа: "как переключиться на другую git-ветку".

Было ли разочарование из категории "ожидания - реальность". Когда работа на деле оказывается не настолько интересной, как кажется в начале пути?

Многое зависит от проекта и команды. Было разочарование, когда я попал на первую работу на легаси-проект с ужасным кодом. Но что касается второго и третьего места работы, то реальность совпала с ожиданиями. Работа над пет-проектами, как оказалось, была максимально похожа на реальную работу. Только всё на порядок сложнее, но это компенсируется зарплатой, а также возможностью обсудить проблему с коллегами. Ощущение, что я продолжаю обучаться, но теперь за это ещё и платят. В общем разочарования нет, работаю по большей части в удовольствие, но тот самый первый восторг от работы программистом уже ушел, привык что ли.

Расскажи какие трудности были на работе или они есть до сих пор?

Я бы не назвал это трудностью, скорее специфика отрасли - постоянно приходится изучать что-то новое, гуглить или спрашивать Chat GPT. На новом (уже третьем) месте работы практически каждая новая задача требует от меня того, чтобы я посмотрел часовой урок/доклад на YouTube или хотя бы прочитал статью на эту тему. В начале меня пугала эта неизвестность, сейчас это уже норма. Я больше начинаю переживать, если задачи закрываются, а я не узнаю при этом ничего нового себя, ведь это никак не способствует росту и, соответственно, повышению зарплаты. Собственно именно поэтому я ушел со второго места работы, так как было однообразное перекладывание json'ов и crud-операции.

Как происходило вливание в коллектив?

Я успел поработать как в офисе, так и удаленно. Мне было комфортно начинать работу в офисе, когда видишь коллег вживую и можешь пойти поболтать с ними на кухне за кружкой чая. А вот начинать работу в коллективе, когда слышишь только голоса (созвоны без камер) лично мне менее комфортно, но со временем привыкаешь и создается впечатления, что знаком с человеком лично. С одним из коллег договорились встретиться через пару недель, он приезжает отдыхать в город, где я живу.

Я не скрываю того факта, что стал разработчиком относительно недавно, все абсолютно нормально к этому относятся (даже на этапе собеседований). Никаких ущемлений не заметил. Более того на прошлой работе есть несколько людей, кто пришел в разработку в 35, 37 и даже в 40+ лет.

Что ожидает новичков, о чем мы не догадываемся и чему нам стоит больше уделять внимания? Насколько начал расти скилл и начал ли вообще расти?

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

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

Интересно было бы узнать какой уровень разработчиков, которые встретились вам на работе, насколько им вообще интересно расти, повышать ЗП, менять должности, насколько они активны?

Джуны, миддлы, сеньоры, архитекторы. Встретил только одного парня, который активно проходил собесы и в итоге ушел в другое место с повышением ЗП в 2 раза. Основная масса коллег - работает на одном месте годами с небольшой индексацией ЗП каждый год. Как сказал мне один из коллег: "Для меня прохождение собеседований - это выход из зоны комфорта. Тут я всё знаю, коллектив устраивает, а что будет в другом месте? Вдруг там всё плохо, что прибавка к ЗП не компенсирует этого?".

Отличался ли стек в вакансии, от стека на работе, по вашему опыту?

В моем случае всё, что было заявлено в описании вакансии оказывалось правдой. О легаси также открыто писали в вакансии и говорили на собеседовании.

Как растет понимание процессов, технологий после того, как устроились на работу, в сравнении с обучением или возможно наступает однообразие и роста нет?

Год назад ничего не знал о процессах, сейчас общее понимание присутствует в контексте всего цикла жизни проекта: анализ, планирование, разработка, тестирование, развертывание, поддержка. За 10 месяцев работы наступило некоторое однообразие в плане задач и остановка активного развития, что сподвигло меня на смену компании и даже языка программирования (Java -> Kotlin).

Какие ощущения после года работы? Считаете ли вы, что смогли достаточно узнать, чтобы закрепиться плотно в этой сфере и теперь уверенно развиваться вперёд, не боясь конкуренции по сравнению с теми, кто заканчивает институты по этой вакансии?

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

== Про обучение ==

Как считаете, ваш опыт работы инженером как-то повлиял на скорость обучения Java-разработке?

Безусловно повлиял. Инженерный склад ума, дружба с математикой, любовь к различного рода логическим задачкам, а также прошлая инженерная деятельность позволили в достаточно сжатые сроки освоить необходимый материал для трудоустройства. Но у меня есть знакомый (37 лет), который был максимально далек от математики, компьютеров и был скорее гуманитарием, а не технарем, но он также, как и я, прошел этот путь, просто это заняло в два раза больше времени.

Что бы ты посоветовал знать 100% перед первой работой?

Всё, что обычно указывают в вакансиях. Для Java-стека это: собственно сама Java (можно не углубляться в многопоточку, но всё остальное знать обязательно), SQL, Hibernate, Spring, Docker, Git, Maven (или Gradle). Чтобы выглядеть лучше большинства новичков стоит познакомиться хотя бы с одним из брокеров сообщений и микросервисной архитектурой.

== Общие вопросы ==

Насколько сложнее (проще) работать разработчиком по сравнению с твоей предыдущей работой?

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

Так ли там хорошо, как кажется со стороны?

Комфортные условия труда, зарплата, возможность удаленной работы, различные "плюшки" в виде ДМС, оплаты обучения и спорта - всё это имеется в большинстве крупных компаний. Не могу предугадать что представляют себе о подобной деятельности другие люди, но мои ожидания оправдались. Многое, конечно, зависит от компании, коллектива и проекта, поэтому вполне возможно, что кому-то повезет меньше или наоборот - больше.

Если бы финансовая подушка закончилась, а вы были бы не готовы начинать работать, что бы вы сделали?

До перехода в IT я был самозанятым инженером ПТО и имел подработку в виде репетиторства, то есть я имел возможность брать заказы и работать в удобном для себя графике. Если бы финансовая подушка закончилась, то, скорее всего, возобновил бы поиск заказов по старой деятельности и репетиторству, но не прерывал бы обучение.

Нравится ли вам IT профессия? Или уровень заработка все же на первом месте? Не думаете ли уйти в frontend или стать full-stack разработчиком?

Пока нравится. Если бы платили одинаково в строительной сфере и в IT, то с высоты своего опыта всё равно выбрал бы разработку. Frontend абсолютно никак не привлекает и ещё в процессе написания пет-проектов и работы над визуальной частью, я четко понял, что это не мое.

Насколько большая разница между Junior и Middle разработчиком?

Зависит от компании. Мое мнение: если прошел собес на Middle-разработчика, получаешь зарплату как Middle-разработчик, значит ты и есть Middle-разработчик)

Какие планы на будущее: очень рады, что так все получилось и уверены, что теперь нашли то, что искали или не так все однозначно, иногда подумываете между тем, стоило оно того или нет?

За свои 33 года я перепробовал достаточно много профессий и работ: официант, крупье в казино, инженер-проектировщик, инженер ПТО, риелтор, репетитор, пробовал открывать небольшой бизнес на набережной, открывал интернет-магазин настольных игр, пробовал вести бизнес с партнером и вот теперь я пишу код. Как я говорил ранее, на данный момент всё нравится, ожидания оправдались и искать что-то новое пока не тянет. Возможно, через 5-10 лет найду что-то более интересное для себя.

Удаётся ли соблюдать пресловутый work-life balance? Сколько часов в день вы выделяете на саморазвитие помимо работы?

До недавнего времени удавалось и всё было достаточно «лайтово». Как только устроился в новую компанию, где незнакомый для меня стек технологий, баланс немного нарушился, так как приходится даже после работы смотреть различные курсы и читать статьи. Может быть 2-3 раза в неделю уделяю по 1-2 часа на обучение.

Как справляешься с синдромом "самозванца"?

Глядя на чужой код или слушая коллег на созвонах, я очень часто ловлю себя на мысли, что я многого не знаю или не смог бы написать такой красивый с архитектурной точки зрения код. Иногда мне кажется, что я очень долго сижу над задачей и что другой разработчик справился бы гораздо быстрее меня. Как только синдром самозванца начинает мешать мне жить, я запрашиваю обратную связь о своей работе у тех людей, кто ставит и проверяет мои задачи. И во всех случаях (даже на той работе, где я отработал всего 3 недели) мне говорили: «Всё ок, быстро схватываешь». Также стараюсь перестать сравнивать себя с другими разработчиками, но пока не очень получается.

== Заключение ==

В заключении хочется сказать, что IT точно не для всех. И я сейчас не про умственные способности, а скорее про склад характера, усидчивость, любовь в решению логических задачек. Меня увлекло программирование на начальном этапе обучения и не было такого, что я что-то делал через силу. Наоборот, мне всегда хотелось побыстрее прийти домой, сесть за комп, ведь в голову пришла идея как можно реализовать вон ту штуку в пет-проекте или как решить алгоритмическую задачу. Поэтому сейчас я не испытываю проблем с тем, что мне «не хочется идти на работу».

Но большинство людей из моего окружения считает это невероятно скучным занятием и даже ради относительно высокой зарплаты никто не готов потратить около 1000 часов на обучение, после чего возникнет проблема с поиском первой работы. И их можно понять, зачем менять свою сферу деятельности, где ты уже профи на что-то непонятное и, возможно, неинтересное для тебя? Но если вам это нравится, то никогда не поздно. И моя история – далеко не единственное подтверждение этому.

P.S. Мелкие заметки делаю в телеге (https://t.me/lovecodebro), на Пикабу публикую редко и только лонгриды.