Привет! Меня зовут Александр Солтанович и я разработчик в компании Wargaming. В команде Acquisition Tools мы работаем над Tracking Engine – проектом, который помогает собирать и анализировать данные по привлечению игроков во Вселенную Wargaming.

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

Поступление и тестовое задание

Все началось, когда в начале 2019 года я наткнулся на новость о том, что компания Wargaming будет проводить бесплатные обучающие курсы для всех желающих. Самых успешных выпускников обещали принять в свои ряды. Одним из представленных на курсах направлений был Front-End. Стоит отметить, что на тот момент я не был абсолютным новичком. Помимо моей обычной профессии у меня уже имелся довольно большой опыт в верстке в качестве фрилансера, а также знание некоторых основ JavaScript, которое позволяло мне добавлять кое-какое интерактивное безумие на страницу с помощью jQuery, если этого желал заказчик. Время шло, я с огромным интересом наблюдал за тем, как развивается JS-сообщество, как много появляется новых фреймворков и библиотек, а тут ещё и Node, full-stack и вот это всё. Постепенно роль наблюдателя перестала меня устраивать, вопрос о смене профессии назрел сам собой. Поэтому информация о курсах пришлась очень кстати.

Для того, чтобы стать участником программы, необходимо было выполнить небольшое, но довольно интересное тестовое задание: реализовать функционал по просмотру биллинговой информации пользователей. Интересным оно мне показалось потому, что подразумевало решение реальной задачи.  Думаю, всем знакомы эти крайности при обучении: либо делаем TODO-лист, либо пилим клон Фейсбука за 2 часа. Каждый из этих вариантов имеет очень мало общего с реальной работой и может привести новичка к фрустрации, задрав ещё выше порог вхождения в профессию. Тут все было по-другому: есть конкретные требования, продиктованные реальными кейсами из бизнеса, ну или по крайней мере что-то близкое. Как раз это и придавало дополнительной мотивации. 

При этом одним из условий было реализовать все на чистом JS. Я же на тот момент был увлечен React, поэтому не мог упустить возможность использовать его, о чем и сообщил организаторам в примечании при отправке готового задания. Репозиторий с заданием форкнуло более 130 человек. Я попал в число 20 счастливчиков, чьи решения показались организаторам наиболее убедительными.

Обучение

Сами курсы длились около трех месяцев и представляли из себя теоретические занятия два раза в неделю с соответствующими домашними заданиями к ним. Это не был пересказ книги Дэвида Флэнагана или спецификаций – преподаватели постарались сфокусироваться на некоторых ключевых основах языка, показать, как вещи работают «под капотом». Были и интересные занятия по верстке, Node, Webpack. Примеры в основном были подкреплены кейсами из личной практики преподавателей.

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

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

Звучит не слишком сложно, правда? Но по мере погружения в проект помимо таких вполне тривиальных для разработчика задач, как создание SPA, авторизация, REST API, настройка Telegram-бота, проектирование БД, возникали и вполне сложные бизнесовые проблемы и вопросы технической реализации: как должен работать балансировщик, чтобы пользователю, подписанному на слишком много топиков, встречи не предлагались слишком часто? Как организовать систему блокировки и разблокировки пользователей, которые слишком часто отклоняют встречи? Как правильно организовать рассылку с оповещениями и напоминаниями о встрече? Как избежать коллизий, если рассылка через бота дала сбой?

В качестве стека был выбран MERN. Поначалу срок в 4 недели казался совершенно нереалистичным - не столько в силу сложности проекта, сколько ввиду отсутствия у каждого из нас серьезного опыта взаимодействия внутри команды. Лично для меня (да и подозреваю, что для большинства моих коллег по команде) эта часть обучения стала не только самой сложной, но и самой ценной. Мы прошли через огромное количество споров по поводу того, как именно должны работать те или иные части приложения, где чья зона ответственности. Некоторые куски функциональности переписывались по несколько раз. Подружить фронт с бэком за день до дедлайна оказалось тоже не так-то просто :-)

В итоге в день презентации мы представили заказчику работающий сервис и даже сняли небольшой промо-ролик. Все желающие смогли успешно протестировать функциональность и подобрать себе собеседника. Можно было выдохнуть, немного расслабиться и, как минимум, отоспаться. Правда, на следующий день наступило небольшое опустошение: «Это что, все? А что дальше?». Но и уверенности в своих силах прибавилось, ведь за плечами уже имелся опыт работы над серьезным проектом. Очень хотелось продолжать и ввязаться во что-нибудь новое. А уже через несколько дней мне позвонили и позвали на собеседование.

Оффер и работа в Wargaming

По итогам программы несколько человек (в том числе и я) стали полноценными сотрудниками Wargaming. Мы работаем в разных командах над серьезными и крупными проектами: например Premium Store, который позволяет пользователям делать внутриигровые покупки. По каким критериям выбрали именно нас - я могу только гадать, но с уверенностью могу сказать, что это не только и не столько технические навыки (но это конечно не будет лишним), сколько целеустремленность при решении проблемы, умение взять инициативу в свои руки, тяга к обучению и стремление делиться знаниями, умение работать в команде и вместе находить общее решение. В общем-то, я бы мог описать всё это одним выражением: любовь к программированию.

***

Подводя итог, могу сказать, что Wargaming Forge – это отличное программа для тех, кто уже обладает определенными знаниями и навыками в IT и хочет сделать следующий шаг. Если что-то из моей истории показалось вам знакомым – вам обязательно стоит попробовать.