Всем привет! Меня зовут Родион, я инженер в отделе разработки интерфейсов ЮMoney. В этой статье поделюсь своим опытом перехода из одного направления в другое внутри компании и джуниорской рефлексией, с которой могут столкнуться те, кто меняет профиль. Расскажу, как не прошёл собеседование с первого раза, стажировался в двух командах, не бросая работу в хелпдеске, и чуть не выгорел от такой нагрузки.

До перехода во фронтенд я работал в отделе хелпдеск — занимался поддержкой пользователей и части инфраструктурных сервисов, таких как СКУД (система контроля доступа) SCCM, управлял клиентскими приложениями антивирусов, поддерживал локальные и внешние мероприятия, которые организовывала компания.

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

Пока я работал в хелпдеске, шестеро из девяти моих коллег нашли себя в смежных сферах внутри компании: в информационной безопасности, тестировании, разработке, DevOps и других.

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

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

Мне нужно было написать сервис прогноза погоды по текущей геопозиции пользователя с использованием клиентской и серверной частей фронтового приложения. Так как у меня совсем не было опыта, надо было показать, что я владею хотя бы базовыми навыками, необходимыми для работы в отделе разработки интерфейсов.

Базовые навыки я получил в команде хелпдеск, когда писал на Bash и Powershell скрипты по автоматизации настройки macOS и Windows.

Примерно в то время, когда я получил тестовое, у меня появился наставник из отдела разработки интерфейсов. Он работал с ЮKassa (наше b2b-направление), и ему хотелось обучать новичков, делиться своими знаниями.

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

Что я изучал перед собеседованием и тестовым заданием

В качестве базы я взял JavaScript Learn, читал и изучал работу с CSS in JavaScript. В двух задачах, которые упоминал выше, я старался использовать TypeScript: второй проект to-do list писал уже на нём с использованием React и NEST.

Тестовое задание с приложением погоды и проект to-do list помогли мне понять фронтенд-разработку.

Я залил готовые проекты на наш BitBucket и попросил руководителя отдела разработки интерфейсов посмотреть мой репозиторий. После меня пригласили на собеседование, где нужно было писать код в режиме реального времени и отвечать на вопросы в процессе. Увы, навыков для собеседования мне не хватило, я его завалил.

Лайвкодинг на глазах у всех — это стресс, тем более если это твой первый опыт. Побороть этот страх можно только со временем.

В итоге я решил пойти стажироваться в отдел разработки интерфейсов, но при этом продолжал работать хелпом. Хорошо, что в ЮMoney есть такая возможность: попробовать свои силы в новом направлении, но при этом не рисковать и не переходить сразу же в другой отдел. У меня был подробный roadmap (дорожная карта), по которому мне предстояло ближайшие три месяца поработать в двух разных командах b2c- и b2b- направлений — в свободное от основных задач время.

Вот что было в моей дорожной карте на три месяца стажировки:

  • Изучить подходы к разработке (релизный цикл задачи, GitHub Flow, работу с таск-трекером).

  • Познакомиться с продуктами компании, тестовой средой, Frontend Platform App, технологиями отдела (обзор репозиториев), клиентской архитектурой, клиентским стэком (React, Typescript, Jest).

  • Узнать больше о рабочих процессах в команде, о планировании, декомпозиции и оценке задач.

  • Изучить UI-библиотеки и поработать с ними.

  • Выполнить задачу на клиентский код и выложить в прод.

  • Освоить принципы работы с Java-бэкендом (Swagger, монорепозиторий), с Kibana и Grafana.

  • Самостоятельно провести релиз на бой, в том числе правки на Node.js

  • Вместе с наставником поработать над бизнес-задачами в течение двух спринтов (один спринт = две недели).

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

Во время стажировки в отделе разработки интерфейсов я продолжал работать в хелпдеске — мои задачи никуда не делись. Нагрузка возросла, и я понял, что мне не хватает времени на восстановление сил. С тех пор я усвоил: лучше на несколько дней отложить обучение, чтобы это «вино из одуванчиков не становилось пресным», а соскучившись, с новыми силами вернуться в строй.

Первой командой, куда я попал, были ребята из b2c-направления, которые занимаются денежными переводами. За месяц я познакомился с технологиями клиентской части приложения, выполнил ряд задач, связанных с вёрсткой, правкой текстов и добавлением новых разделов в мапу (это структура данных, которая содержит набор пар «ключ-значение»).

По итогам ревью на следующие два месяца стажировки меня перевели в другую команду из направления b2b. Там мне предстояло освоить серверную часть приложений и выполнять более сложные задачи — например, переносить приложения на новую версию Node.js.

По завершении стажировки мне сообщили, что я успешно её прошёл. Примерно через месяц в команде появилась подходящая вакансия фронтенд-разработчика. Я полностью перешёл в отдел разработки и уже больше года работаю над улучшением ЮKassa.

Что помогло мне быстрее адаптироваться

  1. Я изменил свою ленту новостей в соцсетях — настроил её так, чтобы там было больше информации о фронтенд-разработке. Это помогало оставаться в тонусе даже в свободное от работы и учёбы время. Вместо развлекательных роликов я смотрел видео с собеседованиями, разборами кода и тестовых заданий.

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

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

    Кстати, с софтами у меня всё хорошо, ведь в хелпдеске мне приходилось постоянно взаимодействовать с разными людьми. А вот над усидчивостью, которая важна для разработчика, пришлось поработать. Когда был хелпом, я часто делал несколько задач одновременно, и у меня в буквальном смысле развился синдром дефицита внимания и гиперактивности.

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

  1. Я не боялся обращаться к ментору с вопросами, даже если казалось, что буду выглядеть некомпетентным в его глазах. Не знать чего-то, особенно на этапе обучения или адаптации, — это нормально. На одном из ревью мне сказали то, чему я теперь стараюсь следовать: не бойся быть неудобным. Я стал приходить к наставнику с наработками или решениями по задаче, в которых сомневался, и мы обсуждали их вместе.

Если вы тоже хотите сменить специальность, важно понимать, что этот путь будет непростым. Но оно того стоит. Не позволяйте токсичным комментариям в соцсетях или под обучающими роликами отбить у вас это желание. Отодвиньте все сомнения в сторону и сделайте первый (или уже второй) шаг к мечте. Желаю успехов!


У вас остались вопросы? Задавайте их в комментариях, с удовольствием отвечу! Кстати, сейчас у нас в команде открыта вакансия JavaScript-разработчика — откликайтесь, будем рады пообщаться. А если вы ещё учитесь и готовы прийти на джуниорскую позицию, то ждём вас на стажировку.

Комментарии (2)


  1. artemfisher
    16.08.2024 08:47

    Я изменил свою ленту новостей в соцсетях — настроил её так, чтобы там было больше информации о фронтенд-разработке.

    Это как учить английский, поменяв язык на телефоне))


    1. dpbm
      16.08.2024 08:47

      Кстати, хороший вариант подкрепления знаний. Я так делаю с появлением у меня первого сотового телефона и до сих пор. И все приложения на компе только англоязычные, начиная с операционки.