Из студента в стажёры и разработчики: мой опыт стажировки

qqcs2gbcl1squefjxdufzjijgo0.jpeg

В нашей компании существует программа стажировки, благодаря которой студенты могут не только получить опыт работы над серьёзными проектами, но и сразу трудоустроиться в рамках интересующего IT-направления. В качестве примера хочу привести свою историю, как я к 21 году, ещё не успев закончить университет и программу обучения Технопарка, уже стал штатным разработчиком в проекте Почта Mail.Ru и выступил с докладом в главном зале на РИТ++. Но обо всём по порядку.
Началом моей карьеры стала фриланс-разработка сайтов, я занимался этим с 11 класса. Взаимодействовал с различными исполнителями и заказчиками. Что-то делал сам, что-то отдавал на аутсорс. Создавал с нуля: дизайн, разработка, вёрстка, программирование, настройка CMS, потом настройка SEО и так далее. На втором курсе университета услышал о Технопарке, меня это заинтересовало, решил поступать. Вообще, это было спонтанное решение, совсем не подготовился, подал заявку за один день до конца отбора. Прошёл онлайн-отбор, но завалился на очном собеседовании. Самое забавное, что именно тот человек, который меня собеседовал и не взял в Технопарк, позднее взял на работу в Почту.

Через полгода, в следующий набор, я снова решил попытать счастья. Заранее подготовился, понимал, куда и зачем иду. В результате успешно поступил на двухгодичную программу обучения по специальности «системный архитектор». В тот момент я был на втором курсе университета.

Первый семестр был очень интересный, я его закончил на отлично. Преподавали алгоритмы и структуры данных, это основа основ всего программирования. Потом был интересный базовый курс по веб-программированию. И третий — программирование на С++.

Второй семестр тоже закончил почти на отлично, в это время я уже параллельно стажировался и учился в МГТУ им. Баумана. Собственно, я всё ещё студент и в университете, и в Технопарке.

Стажироваться я начал в лаборатории Технопарка, которая занимается проектами образовательного направления (обучающая платформа проектов и разработка чемпионатов) Mail.Ru Group. Увидел вакансию на внутреннем сайте, пришёл на собеседование и за два дня выполнил тестовое задание — сделал обычный to-do-list, с бэкендом и фронтендом, с аккуратным дизайном. После чего меня взяли на стажировку.

В лаборатории я занимался фронтенд-разработкой сайтов. А через три месяца меня пригласили на работу в Почту Mail.Ru. Это было чуть больше года назад. Сейчас работаю фронтенд-разработчиком в Почте Mail.Ru. У нас в бизнес-подразделении три команды: «Альфа», «Браво» и «Чарли». Первая разрабатывает фичи, вторая — новую Почту, третья занимается инфраструктурой. Почти половина разработчиков в нашем бизнес-подразделении — это выпускники и стажёры Технопарка.

Сегодня около 80% новых разработчиков приходят к нам именно из стажёрской программы.


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

ja4fnxakczscxydaf862e3v-2s8.png

rern5z25staodpvmtp5r_uavu2a.png

1qoyjjdamztcgxxzhblu4xhf98y.png

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

at98bkbv9p_sz-ytfxxnnhpq9dw.jpeg

zvllr3awhbclgrr2ob7hfdowo3o.jpeg

Также я отвечаю за развитие и поддержку библиотеки UI-компонентов для Почты: всякие кнопки, панели, выпадающие меню. Очень тяжело этим заниматься, потому что люди хотят разрабатывать как можно проще, а у этой библиотеки очень сложная инфраструктура. Скриншотится каждое состояние компонента — при нажатии, при hover, про focus. Нужно полностью покрывать код автотестами, на это тоже уходит много времени. Я стараюсь оптимизировать процессы, чтобы работала кодогенерация тестов; чтобы люди могли как можно быстрее разрабатывать с помощью библиотеки свои компоненты.

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

То есть фронтенд-разработчики работают с большим количеством технологических слоёв проекта. По крайней мере, в Mail.Ru Group. Некоторые из нас начинают писать свои сервисы на Go, потому что этого требует задача. Так что если вы придёте к нам заниматься фронтендом, то получите огромный спектр технических знаний, но точно не будете заниматься одной вёрсткой.

Крайне важно выстраивать взаимодействия между многочисленными командами различных подразделений. Когда я пришёл в Почту, здесь не использовали React. Сказал, что хочу его применять, согласились попробовать. В результате сейчас во многих командах используют React. И ещё стоит отметить, в большинстве проектов, что я разрабатываю, применяется Webview на iOS/Android. То есть приходится учитывать специфику мобильных устройств.

Чуть больше, чем через год работы, мне предложили выступать на РИТ++. Я согласился без раздумий, так как показалось, что это невероятно крутой опыт. На подготовку ушла куча времени. Текст доклада я переписывал целиком пять раз, он занимал шесть листов. Всегда можно было сделать ещё лучше, но для первого выступления получилось действительно очень хорошо. Я рассказывал об архитектуре Почты, как мы её строим на основе микросервисов, как всё выносим из монолита [Об этом будет отдельная публикация. — прим. ред.].

a6s5kbg79mzmdj0lmozafdolpec.jpeg

Дальнейшие планы: развиваться как разработчик, поддерживать и развивать библиотеку UI-компонентов Почты, надеюсь, она будет использоваться и в других подразделениях Mail.Ru Group. Взять себе стажера. Также через пару лет планирую поступить в магистратуру MIT (Массачусетский технологический институт).

В Mail.Ru Group множество возможностей: если хочешь много работать и делать карьеру, всегда найдутся задачи; если хочешь учиться, то можешь спокойно работать 20 часов в неделю. И если не понравится фронтенд, можно легко поменять направление: бэкенд, ML, мобильная разработка, у нас всегда много вакансий. Главное — работать и развиваться. Так что если хочешь попасть к нам на стажировку, а потом и в штат, то расскажу подробнее о нашей программе.

Программа действует уже шесть лет. У нас нет зимнего или летнего формата, стажёры — это полноценные сотрудники, которые работают над боевыми задачами. Единственное отличие от остальных сотрудников: стажёры могут работать 20 часов в неделю.

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

Наши образовательные проекты


Первым стал Технопарк на базе МГТУ им. Баумана с двумя форматами обучения: двухгодичной программой и семестровыми курсами. По двухгодичной программе готовят системных архитекторов, каждый семестр студенты изучают 3–4 предмета, и к выпуску получают полноценные знаниями обо всех направлениях в IT-разработке. Это очень важно, потому что приходя работать в компанию, выпускник работает с другими сотрудниками, с другими департаментами и должен обеспечивать высокий уровень коммуникации.

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

Сегодня Mail.Ru Group ведёт уже шесть образовательных проектов. Во всех из них программа построена по принципу Технопарка, но везде разная специализация. В Технопарке (МГТУ им. Баумана) преподают фронтенд- и iOS-разработку, программирование на С++, Java, Cuda, Perl, Go. В Техносфере (МГУ) учат работать с большими данными. В Технотреке (МФТИ) готовят Android-разработчиков. В Техноатоме (МИФИ) изучают C++, Java, Python, Perl и тестирование, а в Технополисе (СПбПУ) — Java. Также совсем недавно был запущен новый проект в Воронежском федеральном университете. Всего у нас преподаётся почти 70 дисциплин, и каждый семестр мы запускаем около 7 новых.

Ключевая особенность наших образовательных проектов — в них преподают только наши сотрудники, около 200 человек. Они передают те знания, которые сами непосредственно используют в работе.

Везде делается упор на практику, чисто лекционных занятий почти нет. Обучение интенсивное, и до конца доходит около 30% набранных студентов.

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

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

О программе стажировки


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

Каждый год к нам приходит примерно 100 стажёров. Они являются полноценными сотрудниками с достойной заработной платой и всеми сопутствующими преимуществами — полисом ДМС, возможностью участвовать в конференциях компании, доступом к спортивной и развлекательной инфраструктуре и т.д. По результатам стажировки самые сильные ребята могут остаться работать в команде уже как штатные разработчики. Сегодня около 80% новых разработчиков приходят к нам именно из стажёрской программы.

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

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

Стажировка как начало карьеры


После стажировки у нас человек становится специалистом по работе над высоконагруженными проектами. Например, Почта Mail.Ru — это высоконагруженный проект, его веб-интерфейсом в одну и ту же секунду пользуется около 3 млн человек и примерно столько же на мобильных платформах. Всего в почте более 100 млн активных ящиков.

Кроме того, это технологически крайне сложный проект, в него входят сотни различных компонентов. Поэтому когда реализуешь какую-то новую возможность для пользователей, нужно уметь соединить между собой множество компонентов и предусмотреть кучу сценариев отказа, чтобы сервис работал бесперебойно, 24/7, в праздники и выходные. Иные варианты нас не устраивают. Это тоже требует определенных навыков программирования и проектирования систем.

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

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

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

© Habrahabr.ru