Дмитрия всегда тянуло к коду: после карьеры в логистике он решил освоить Java и не прогадал. Теперь работает по профессии и помогает другим студентам.
Россия, Тольятти
«Профессия Java-разработчик»
Оставил руководящую должность и с нуля начал карьеру в IT. Сейчас работает Java-разработчиком и тимлидом командных проектов в Skillbox.
✅ Помощь
Дмитрий рассказал:
- почему Java — идеальный язык для перфекционистов;
- зачем нужны mockup-собеседования;
- как составить резюме, чтобы привлечь внимание эйчаров;
- почему всегда нужно изучать чуть больше, чем вам дают.
«Я хотел создавать продукт, которым будут пользоваться люди»: как логист стал разработчиком
— В логистику я попал случайно, на последнем курсе университета, хотя учился совсем на другой специальности. В итоге дорос до руководителя отдела логистики на производственном предприятии, но… не могу сказать, что чувствовал себя в этой сфере органично.
Просто меня с детства тянуло ко всему, что связано с компьютерами и программированием, и я будто знал, что там — моё призвание. К тому же в определённый момент рабочие задачи по логистике перестали меня увлекать, и я понял, что достиг своего потолка в профессии.
В IT же такой ситуации просто не может произойти — здесь постоянно появляются новые технологии и подходы и приходится из раза в раз бросать себе вызов, расти и учиться. Это постоянное движение вперёд и стало для меня решающей причиной для смены профессии.
Кроме того, моя девушка рассказала мне о платформе Skillbox и убедила к ней присмотреться и попробовать — сказала, что это именно то, что мне нужно. И оказалась абсолютно права!
— На самом деле с момента начала учёбы до полной смены профессии прошло около двух лет, так что для меня переход был плавным. Всё это время я совмещал обучение с основной работой.
На старте сомнения, безусловно, были, но они касались скорее не самой сферы, а моих компетенций. Я переживал, что мне может не хватить навыков для того, чтобы претендовать на достойные позиции в IT.
В самом же выборе IT как сферы и разработки как направления я был уверен на все сто: я мечтал создавать продукт, которым потом будут пользоваться другие люди.
— Да, я смотрел и пробовал разные варианты, посещал буткемпы и вебинары и в итоге остановился на Java — он идеально подошёл мне по логике и стилю работы.
Java — строго типизированный язык, который требует внимательности к деталям. Любая ошибка сразу блокирует запуск, поэтому необходимо всегда тщательно следить за написанным. Эта особенность языка мне очень нравится в силу моего перфекционизма.
— Нет, потому что модули построены так, что ты постепенно переходишь от простых тем и задач к более сложным.
Был лишь один момент, когда я очень долго, чуть ли не несколько недель, сидел над одной практической задачей, потому что не до конца понял, как работают ссылочные типы в Java. Справился, только когда вернулся к уже пройденным модулям курса о разных типах данных и всё переслушал.
В целом обычно, если у меня возникали трудности или вопросы, я просто спрашивал совета в студенческом телеграм-чате кура, смотрел разборы на YouTube или изучал дополнительные источники — чаще всего статьи в Skillbox Media и на Stack Overflow.
Фото: личный архив Дмитрия Уткина
— Я изначально составил себе понятный график и старался его придерживаться, стабильно выделяя на учёбу несколько часов в неделю — чаще всего по выходным и вечерам.
Правда, в какой-то момент нагрузка на работе стала настолько большой, что пришлось на время поставить обучение на паузу и вернуться к ней, только когда стало легче. Но это меня не демотивировало и даже наоборот: я с таким нетерпением ждал возможности снова заняться любимым делом, что возобновил учёбу ещё более воодушевлённым.
«Здорово прокачал хард-скиллы»: как набраться опыта в командных проектах и получить работу мечты
— Когда освоил один из ключевых фреймворков для разработки продакшен-программ на Java — Spring. Плюс знакомые, работающие в IT, предложили провести со мной mock-интервью, чтобы оценить мой уровень подготовки и понять, готов ли я выходить на рынок или стоит ещё подтянуть знания. Результаты показали, что я вполне могу пробовать свои силы!
Наконец, примерно в это же время я начал участвовать в командном проекте в Skillbox, и этот опыт окончательно убедил меня в том, что я готов взять старт в новой профессии.
— Командный проект — это двухмесячная практика, разбитая на 80 спринтов и максимально приближённая к реальной разработке в команде. У каждого в группе — своя роль.
Мы занимались созданием соцсети, по набору функций схожей с VK: оттачивали навыки работы с фреймворком Spring и микросервисами на Java — это популярный сегодня архитектурный подход к разработке приложений.
— Поскольку я уже руководил отделом в логистической компании, то знал, как выстраивать отношения в команде — так что по части софт-скиллов каких-то особых озарений не испытал. Разве что искренне удивился нескольким моментам, специфичным именно для разработки. Например, узнал о необходимости согласовывать интерфейс своего микросервиса с чужими: это нужно, чтобы всё выглядело органично и не нарушалась общая логика.
А вот хард-скиллы я прокачал действительно здорово: познакомился с DevOps-технологией, научился настраивать CI/CD-пайплайны, понял, как работать на удалённом сервере.
В итоге получилось так, что я устроился на постоянную работу Java-разработчиком всего через две недели после старта командного проекта.
— Я начал откликаться на вакансии, которые мне предлагал Центр карьеры Skillbox, и один из таких откликов в итоге привёл меня к заветному приглашению на собеседование.
В резюме я специально сделал акцент на релевантных для должности учебных проектах и потратил время на «упаковку» своих кейсов, например красиво оформил документацию на GitHub. О работе в логистике упомянул совсем кратко, указав лишь конкретные достижения по оптимизации и автоматизации процессов.
Код, написанный Дмитрием
Скриншот: личный архив Дмитрия Уткина
— Вообще, своё самое первое собеседование в IT я, конечно же, успешно провалил 🙂 Мне задавали вопросы, к которым я был совершенно не готов — например, о нюансах работы с SQL. После этого я усвоил урок, закрыл пробелы в знаниях и стал тщательнее готовиться к интервью.
А перед собеседованием в Goodt — компанию, где я сейчас работаю, — я нашёл классный проект на GitHub: там описывали дорожную карту развития Java-разработчика, то есть подробно визуализировали путь развития в профессии и прописывали те навыки, которые необходимо иметь на каждом этапе. Эта информация сильно помогла мне обозначить темы, которые важно повторить к интервью.
«Разработка — это непрерывное обучение»: как вчерашний студент стал наставником разработчиков
— Дебютные шаги были довольно неуверенными — первые пару дней я буквально на ощупь пытался разобраться в библиотеках и базах данных, с которыми до этого мало работал. Но быстро наверстал упущенное, экспериментируя и тестируя логику библиотеки на маленьких приложениях, чтобы понять, как её настроить и использовать.
Нет ничего страшного в том, чтобы чего-то не знать. Разработка — это непрерывное обучение, и я уже привык к тому, что постоянно приходится осваивать новые технологии.
— Да! Например, не так давно после длительного ресёрча мне удалось оптимизировать кусочек приложения и повысить эффективность его работы примерно в пять раз.
А ещё я стал тимлидом командных проектов в Skillbox и уже выпустил свой первый поток.
— Видимо, куратор потока, где учился я, оставил обо мне хороший отзыв и моей кандидатурой заинтересовались. Вскоре после выпуска со мной связалась куратор командных проектов и предложила мне попробовать себя в руководящей роли.
Конечно, я сразу же согласился, ведь ещё во время обучения часто ловил себя на мысли, что мне очень интересно попробовать и понять, каково это — быть тимлидом, помогать начинающим разработчикам получать знания, поддерживать их. И вот такой шанс представился.
— Опять же, мне сильно помогает логистический бэкграунд, когда я уже управлял командами. Благодаря ему я знаю, как найти подход даже к тем людям, кто на контакт идти не хочет. К счастью, в разработке таких почти нет — в командные проекты, как правило, приходят те, кто максимально заинтересован в результате.
Сложности возникают, разве что когда я сталкиваюсь с кейсами, с которыми до этого не работал. Но это не смертельно: просто садишься и разбираешься в вопросе, чтобы помочь студенту решить ту или иную проблему. Плюс я всё-таки работаю по профессии и имею релевантный коммерческий опыт, поэтому многие тонкости могу объяснить команде без подготовки, например по работе со Spring.
Фото: личный архив Дмитрия Уткина
— Стремлюсь к тому, чтобы довольно быстро дорасти до лида. Поэтому в ближайших планах — активно развиваться, повышать грейд, оттачивать навыки. Аспектов для изучения очень много — например, я хочу досконально освоить Java Core и Java Virtual Machine.
Кроме того, моя цель — улучшить навыки анализа и понимания кода. Даже если ты уже пишешь его неплохо, в этом процессе всегда есть куда расти.
Разработчику, на мой взгляд, важно «чувствовать» код — буквально с первого взгляда понимать, что в нём происходит, где возможны уязвимости или что может сломаться.
— В Java-разработке, как и в любом другом деле, неизбежны трудности, но их нужно не бояться, а воспринимать как точки роста. Ошибки учат не меньше успехов.
И ещё: важно обязательно углубляться в детали любой темы — не останавливаться на минимально необходимой информации, а изучать дополнительные источники, тем самым проводя условный «фактчекинг» и убеждаясь, что вы точно поняли всё правильно и не допустили неверных интерпретаций.
Наконец, на мой взгляд, самое главное — помнить, что, если вы уже выбрали эту профессию, значит, вас что-то в ней привлекло и это случилось неспроста. Теперь остаётся не сдаваться и уверенно идти к своим целям.
Микросервисная архитектура ― это подход к разработке программного обеспечения, при котором систему разделяют на небольшие независимые сервисы.
Методология, оптимизирующая процесс работы над программными продуктами.
Практика автоматической доставки новых версий ПО пользователю на протяжении всего жизненного цикла разработки.
Программное обеспечение, позволяющее запускать Java-программы на разном оборудовании и операционных системах.