Привет, меня зовут Максим Ражнов. На момент написания статьи я уже являюсь разработчиком в компании Wargaming. Я работаю в команде Operation & Support Tools, успел поучаствовать в работе нескольких команд. В нынешней команде мы разрабатываем инструменты для сотрудников технической поддержки. В этой статье я бы хотел рассказать, каким был мой путь от студента 3-го курса до разработчика в Wargaming.
Предыстория
С игрой World of Tanks я познакомился ещё в школе. Мы с друзьями следили за ивентами в игре, катались взводами и участвовали в командных боях, старались следовать тактикам топовых команд и дополнять их своими замечаниями и наблюдениями. В нашей школе ежегодно проводился фестиваль «Computerland», где были различные конкурсы, связанные с информатикой, и так как популярность игры росла с каждым годом, нам предложили устроить турнир внутри школы. Главным призом тогда была поездка в минский офис Wargaming. Наша команда заняла первое место, и именно нам посчастливилось получить памятные подарки от компании и сделать фотографии с Golden Joystick.
На следующий год победившей команде предложили поехать на TIBO (крупнейшая выставка информационных технологий в Беларуси) и посоревноваться с лучшей командой чемпионата университетов. Наша команда выиграла — и мы вышли играть против взрослых дядек. До сих пор помню, как нас встречали с презрением и криками «школота», однако у них быстро пропали улыбки, когда группа школьников выиграла бой. Выйдя на улицу, мы увидели, как вся их уверенность быстро испарилась и они нервно стояли и курили, обсуждая стратегии. Тогда нам победить не удалось, но это был незабываемый момент и опыт.
Поступление
О Wargaming Forge я узнал в универе — ментор курса Maintenance Дмитрий Курьянович приходил рассказать студентам о том, как попасть на это направление. Уже тогда я собирался на курсы от Wargaming, но ещё не знал, что откроют набор именно по той специальности, которой я интересуюсь.
Набор на курсы Wargaming Forge начался весной 2019 года. На выбор у меня было два основных направления: Backend и Frontend. Я выбрал Frontend, потому что увлекался им в свободное время и хотел связать свою карьеру именно с этим направлением. Приходилось совмещать подготовку к экзаменам и обучение на курсах.
Сам этап отбора на курсы был сложным. Он состоял из технического задания и мотивационного письма. Оценивались знания по JavaScript, умение писать и обдумывать написанный код. Составители заданий хотели понять, насколько будущий студент курса разбирается в языке программирования, поэтому просили выполнять задание без использования фреймворков.
На курсы было подано порядка 140 заявок, в итоге выбрали только 16 человек. Я в первый же вечер после открытия набора сделал 4 задания из 9. Ещё за неделю доделал все основные задания, проревьюил код и перешёл к трём дополнительным задачам. Были трудности с заданиями, где было необходимо провести сортировку таблиц по колонкам и реализовать поиск по нужным столбцам, но, посидев несколько вечеров, справился.
Учёба
Обучение проходило по следующей схеме: мы выполняли задания от менторов, разбирали основные фишки JavaScript, изучали его историю и искали методы наиболее правильного и изящного применения. Мы разбирали как различные элементы работают «под капотом» и как им находят применение в современном мире. Изучали базовые методы языка JavaScript, стандарты языка и его ежегодные нововведения. Нам подробно объясняли, как язык работает с асинхронными функциями и показывали примеры их использования в реальном проекте. Были занятия по вёрстке, node js webpack. Важные особенности курсов, которые мне запомнились — менторы приводили примеры из реальных проектов и показывали несколько реализаций одной функциональности.
Через месяц после начала занятий нам предложили идею для проекта — приложение, которое позволяло бы сотрудникам компании встречаться внутри и за её пределами, обсуждать насущные проблемы или новости в мире за чашечкой кофе. Название мы долго не выбирали, на ум сразу пришло Random Coffee: случайные люди встречаются со случайными людьми. Это был учебный проект, поэтому дизайн приложения нам предоставили, и мы начали работу.
Внутри команды мы разбились на две подкоманды: Backend и Frontend. Backend разрабатывал серверную часть, подключал базу данных, занимался разработкой и подключением Telegram-бота для общения приложения с пользователем. Frontend-команда воплощала дизайн в реальность, разрабатывала UI-компоненты таким образом, чтобы можно было в дальнейшем использовать их и в других приложениях, продумывала взаимодействие пользователя с приложением. Ещё мы делали клиентскую часть приложения для пользователя и для администратора, который бы настраивал само приложение. У нас был месяц на реализацию проекта и это всё казалось непосильной задачей.
Сложнее всего было наладить коммуникацию внутри команды. Нужно было разбивать задачи, делегировать их, выстраивать процесс разработки. Времени для обсуждения на занятиях не хватало, поэтому мы собирались в кафе, на квартирах, программировали вместе. Время пролетело молниеносно. Выходные проходили за разработкой, мы учились слушать друг друга, обсуждать идеи и находить компромисс.
Для меня дополнительной сложностью стало то, что пришлось совмещать учёбу в университете и в Wargaming Forge. Было непросто, я не высыпался, но результат стоил приложенных усилий. Помню, как перед презентацией чистил баги. Уже была ночь, а утром надо было ехать на экзамен в университете. Садился, учил необходимое по предмету, спал три часа и в путь-дорогу. После экзамена сразу отправлялся в кафе рядом с офисом обсуждать с ребятами, как мы будем представлять наш проект.
После бесконечных ночей работы с кодом наконец многое начало получаться. Мы сделали интеграцию Backend с Frontend, но расслабляться было рано. В проекте осталось много багов, которые в итоге мы устраняли даже в день презентации.
На презентации мы рассказали менторам, какие технологии были выбраны и почему, провели демонстрацию проекта, дали возможность «пощупать» его всем присутствующим. Презентация проходила на первом этаже минского центра разработки Wargaming, и к нам в гости заглядывали все желающие сотрудники компании. Под пиццу обсудили презентацию и разошлись по домам, считая минуты до собеседования. Очень хотелось работать в таком сплочённом коллективе, но большой уверенности, что на собеседование позовут именно меня, не было.
Спустя пару дней меня пригласили на собеседование. Оно прошло хорошо: обсуждали технические навыки, чем я занимался во время обучения в универе и в свободное время. В компанию я пришёл уже спустя несколько месяцев — меня забрали на военные сборы, устроил себе мини-отпуск перед плодотворной работой.
Итоги
Что, как студенту, мне дали курсы Wargaming Forge:
Общение с профессионалами своего дела.
Понимание того, как выстраиваются процессы в рамках разработки продукта. Мы научились конструировать компоненты интерфейса для пользователя и внедрять их в приложение, продумывать архитектуру приложения и логику взаимодействия пользователя и приложения, делать пользовательскую авторизацию через Telegram, организовывать интеграцию серверного и пользовательского функционала.
Умение грамотно и эффективно общаться с коллегами, находить решение в любой ситуации.
Опыт разработки полноценного функционирующего приложения в команде под руководством менторов. Для разработки нашего приложения мы использовали стек технологий MERN. M – MongoDB, E – Express js, R – React, N – Node js, а ещё мы отдельно разрабатывали Telegram-бота для отправки пользователю уведомлений.
Я рад, что в итоге мне удалось стать частью отличной команды. Думаю, дело в том, что я старался подходить к делу серьёзно и качественно, не боялся задавать глупых вопросов, что и вам советую. Учитывайте, что не обязательно быть студентом-айтишником для участия в Wargaming Forge — программа подходит, например, и людям, которые хотят сменить профессию. Действуйте и не сомневайтесь, всё в ваших руках!