Привет! Я Антон, сейчас работаю фронтенд-разработчиком, хотя по образованию я химик-технолог. Расскажу о своём пути: как учился и набирался опыта, чтобы получить работу, как познакомился с Карьерным центром, работал над пет-проектами и участвовал в хакатонах.
Предыстория: обучение профессии и попытки найти работу
Как я уже сказал, по образованию я химик-технолог, раньше занимался естественными и техническими науками. На последнем месте работы разрабатывал и производил вакцину от коронавируса. Давно был с компьютерами «на ты», увлекался технологиями. Подумывал сменить профессию, интересовался разработкой, хотел попробовать себя в чём-то новом.
Летом 2022 года совокупность факторов сыграла роль: я думал о возможности развития в новой сфере, хотел иметь более востребованную профессию на международном рынке и реализовать давнюю мечту. Жить и не стремиться к чему-то большему не хотелось.
Решил, что нужно действовать. Я трезво оценил свои возможности и поступил на курс «Фронтенд-разработчик» в Практикуме. Мне хотелось иметь всю информацию на руках, чтобы не было каши в голове. На мой взгляд, самоучки проходят более тернистый путь, тратят больше времени, многие не доходят до конца. Ещё очень важно иметь дедлайны — они помогают не прокрастинировать и идти к цели. Без них на одном желании я бы далеко не уехал.
Учёбу окончил в июне 23-го и начал откликаться на вакансии, в резюме пробовал разные подходы, но в целом старался отразить свой опыт. Где-то, конечно, чуть приукрашивал.
Два месяца активно откликался и ходил на собеседования. Устроиться не получалось — часто немного не дотягивал по требованиям. Истинную причину я уже не узнаю, потому что не получал обратной связи. Может быть, я не всегда сразу мог ответить на вопросы — некоторые из них, как я потом уже узнал, относились к уровню джуниор+, даже мидл.
Программа трудоустройства после курсов
В конце курса есть программа трудоустройства, где выпускнику открывается Карьерный центр. Там помогают понять, как и когда лучше идти к работодателю, с каким багажом, как откликаться и работать на площадках с вакансиями.
Центр, как правильный учитель, говорит некую базу, которая может отличаться от реальности. Вне Карьерного центра принято много врать в резюме. По словам более опытных программистов, в вакансиях завышены требования и соответствовать им всем нереально. Это вынуждает приукрашивать свой опыт. Мы записывали в карьерном трекере свой опыт откликов и пройденных собеседований для того, чтобы проанализировать свои попытки.
Я откликался на «со-вакансии» в Мастерской, где выпускникам дают практику на реальных проектах, а бизнес или НКО получает работающий продукт. Был, например, проект создания CRM для ресторанов и баров — мы помогали компании делать проект для общепита, нужно было вести учёт столов, заказов, чеки пробивать. Я там брал некоторые задачи, разрабатывал экраны, потом всё это объединяли. Там же ещё помогал делать лендинги.
Участвовал в акселераторе пет-проектов. Там собирают большую полноценную команду со всеми ролями из выпускников разных направлений, а они делают MVP-проект за два-три месяца. У нас было 25 человек на проекте — создавали проект «Киноточка» (статья на Хабре о проекте) с рекомендациями фильмов на вечер. Расскажу о нём подробнее.
Командная работа над проектом «Киноточка»
Мне повезло попасть в команду заинтересованных людей. По фронтенду, кроме пройденного на курсах, на практике подробно разобрали Redux, TypeScript и другие технологии. Были и другие нативные штуки, разбирались, как всё это взаимодействует.
Обучение складывается из ошибок и решения этих ошибок. Очень важным оказался опыт внедрения разных библиотек. Мы использовали ESLint для поиска багов в коде. И конечно же, GitHub для совместной разработки.
Перед сдачей проекта всё доделывали в последний момент. К концу второго месяца у нас было около семи фронтов. Состав команды менялся: по ходу проекта кто-то потерял интерес, у кого-то поменялись планы, одна девочка в конце второго месяца нашла работу. А на замену пришли новенькие — они не разбираются в стеках, на которых написана часть проекта.
Сложную работу, по архитектуре и взаимодействию с бэком, мог сделать только я. Приходилось работать сверхурочно, иногда и по 8 часов делать какой-то функционал.
В акселераторе было условие: возьмут на проект только тех выпускников, кто ежедневно может тратить 3—4 часа на разработку, на выходных побольше. Сложно сказать, успели бы или нет без переработок. Ставились большие задачи, планировалось много функционала. Если успевали — делали, если не успевали — что-то подрезали.
Должность тимлида в «Киноточке»
На этом проекте я стал тимлидом фронтов. Мне это дало опыт в организации команды: как строятся проекты, что за чем следует, от кого что просить, к кому обращаться, как взаимодействовать с аналитиками, какие учесть особенности проекта.
Что мне помогало? Думаю, у меня такой склад ума. Когда работаешь в технической промышленности, всегда прилетают задачи, которые нужно как-то организовать, сделать, и не всегда — в одиночку.
На последнем месте работы, где я был химиком, требовалось масштабировать готовый проект по производству продукта. Собирали команду, распределяли обязанности, советовались с более опытными коллегами. Здесь приходилось делать так же: огромную задачу делить на множество мелких, делегировать их. Предыдущий опыт пригодился.
Я не читал каких-то книжек по управлению. Не встречал чётких советов, как руководить, а учился на собственном опыте. Где-то видел, как работает другой тимлид, и пробовал повторять за ним. Учился на собственных ошибках.
Был продакт-менеджер, который спрашивал с меня: что уже есть, что будет сделано и когда, почему не сделано и так далее. Когда тебе задают столько вопросов и на них нужно отвечать, то со временем заранее об этом задумываешься. Будут спрашивать — значит, надо подготовиться, выполнить свою часть работы, уметь рассказать, что получается, а что нет, и почему.
Я менял подходы, с каждым разом всё лучше объяснял людям, что мне от них нужно. Бывало, во время «Киноточки» было по два-три созвона в день. Мы постоянно обсуждали с ребятами вопросы по коду, что-то разбирали с продактами, думали над будущим функционалом.
За два месяца мы сдали MVP. Успели сделать полностью рабочий готовый проект с набором фильмов, с минимальной рекомендацией и поиском по ней, сортировкой по жанрам, по категориям, подбором по категориям. Создали личный кабинет, при авторизации нужно было указать любимые жанры, на основе которых давались рекомендации.
Проект всем понравился, и нам предложили добавить специалистов под Data Science. Они помогли создать систему рекомендаций. Но на этом месте проект продолжился без меня — я решил, что для себя взял максимум от него.
Участие в хакатонах
Про хакатоны я услышал от подруги, которая уже нашла работу. Я видел, что у неё было больше опыта, — по её словам, этот опыт она получила как раз на хакатонах. Решил тоже попробовать и параллельно искать работу.
Хакатоны проходят каждые две недели, но после первых двух я уже более избирательно подходил к этому. Там было почти одно и то же, поэтому дальше я хотел найти уже что-то новое по функционалу.
Первый хакатон был по заданию крупной сети розничных магазинов — это подогрело интерес. Нужно было по данным продаж отобразить будущий спрос на ту или иную продукцию.
Нам дали закешированные данные, по которым с помощью специалистов по Data Science мы должны были проанализировать, построить и отобразить прогноз. В этом хакатоне мы выиграли, так как у нас была хорошая реализация как визуальной части, так и сортировки данных на бэке и по качеству данных прогноза.
Второй был для карьерного трекера, чтобы расширить его функционал. Нужно было упростить работу и автоматизировать добавление партнёрских вакансий. Были конкретные требования, мы должны были как-то обработать эту информацию и выдать результат. Не помню, какое место заняла команда. Сделали не всё, что хотели, из-за неопытности бэкенда — попались новички.
Должность старшего студента
Старшие студенты — это помощники наставников. Должность волонтёрская, за это каких-то бонусов не предполагается. Примерно как самый умный в классе. Они быстрее ответят на несложный вопрос, например, у ученика где-то отступ не работает, где-то всё сломалось, где-то непонятно, как подойти, с чего начать. И подобные мелочи, связанные с разработкой. Ребят на потоке много, а кураторы не всегда успевают сразу ответить. Опытный студент лишний раз убедится, что он такие вещи хорошо знает и может их объяснить.
Я отправил заявку, и меня приняли. Я помогал студентам, заодно общался, знакомился, находился в комьюнити. Это мне и помогло найти работу.
В одном из таких чатов заметил сообщение: «Ребята, никто не ищет работу?» Я сразу же откликнулся, и получилось устроиться. Это было что-то подобное трудоустройству по знакомству. Я прошёл первое собеседование, было понятно, что отвечаю их требованиям, и взяли.
Чем занимаюсь сейчас
Я работаю в компании, которая занимается разработкой ПО для клиник. Таск-трекеры, CRM-системы и другие инструменты управления.
Сейчас нашим ПО пользуется больница — обкатываем продукт на одном клиенте. Под конкретную организацию пилим базовые фичи — трекер задач, систему работы с реферальными приглашениями на процедуры; исправляем баги. Когда наша система станет чуть лучше, добавим новые функции, то можно пробовать выходить на более широкий рынок. У нас не так много разработчиков и средств, чтобы сразу браться за крупный проект.
Сейчас я — единственный фронт в компании. Разбираюсь в коде, получаю задачи от руководства на обновление архитектуры и оптимизацию. Предыдущий фронт что-то захардкодил, где-то сделал жёсткое связывание, а мне нужно там править, разбираться и так далее. Надо сделать так, чтобы пришедший после меня разработчик легко смог разобраться.
Несколько советов новичкам
Если поиски работы затянулись и оффера всё нет, участвуйте как можно больше в коротких, но разных проектах по типу хакатонов, это оптимальный опыт. По части собеседования надо знать ответы на популярные вопросы. А после давить своим опытом.
Фронтам: знайте TypeScript и Redux. Хотя бы будьте с ними знакомы, не обязательно уметь всё. TypeScript используют везде, и это стопроцентная штука, которую нужно знать и разбираться в ней. Redux — она заменяемая и есть подобные технологии, например React Query, RTK, MobX.
С их помощью управляют состоянием каких-то данных: пользовательских, системных; они сохраняются и доступны в любом месте приложения — это как преимущество.
Ну и софтскил: всегда быть в контакте со знакомыми людьми. Мои знакомые из «Киноточки», которые устроились, часто спрашивали: «как ты?», предлагали вакансии, которые открывались в их компаниях. Они прямо помочь не могли, но держали в курсе, предлагали варианты.
Новичкам проще устроиться по знакомству, если кто-то из твоих сокурсников устроился, он скорее сможет как-то посодействовать тебе. Как говорил один из моих тимлидов: «Хороший джун — это самоходный джун».