Старт IT‑карьеры: как попасть на стажировку в крупную компанию
Опытный лид из «Яндекса» рассказал о стажировках в крупных компаниях, а также объяснил, как их пройти и получить работу.
Иллюстрация: Polina Vari для Skillbox Media
Илья Кучумов
Руководитель службы разработки поиска по товарам в «Яндексе». Во время обучения в университете Илья стажировался в Европе в Google.
Работая в «Яндексе», провёл больше сотни собеседований со стажёрами и разработчиками, а на позиции руководителя службы разработки обучал участников своей команды проводить собеседования и отбирать лучших кандидатов.
Зачем нужны стажировки и когда надо заявляться на них
Стажировка для программиста — это отличный способ поработать над реальными задачами и проектами. Она помогает понять, какие навыки нужны в реальной работе, а также даёт полезные знакомства, весомую строчку в резюме, деньги и интересно проведённое лето.
Хочу развеять миф о том, что разработчики-стажёры занимаются скучными задачами. Приведу пример: стажёр под моим руководством исследовал, какие методы извлечения главного содержания из статей в интернете существуют и как это можно использовать на практике. За три месяца нам удалось реализовать качественный прототип алгоритма. Он даже получил собственное название «Автопарсер».
В дальнейшем в моём отделе выросла целая команда программистов, которая теперь занимается исключительно развитием этой технологии. Мы научили «Автопарсер» получать любые структурированные данные с веб-страниц, и он стал ключевым компонентом нашего сервиса.
Обычно компании заинтересованы в долгосрочном росте, поэтому готовы брать мотивированных ребят без опыта работы и вкладываться в их обучение. Я рекомендую уже после второго курса университета подаваться на стажировки. Однако самый распространённый кейс — когда ребята приходят после третьего курса, пробуют себя в практических задачах, осознают свои слабые стороны и за следующий год обучения подтягивают их. А после защиты диплома возвращаются в команду и очень быстро вливаются в работу.
Опытный руководитель понимает, что из талантливых и трудолюбивых стажёров часто вырастают сильные разработчики и будущие руководители. Например, в моей службе один из руководителей группы и три старших разработчика когда-то пришли в «Яндекс» на стажировку — а сейчас они решают ключевые задачи нашего сервиса.
Не нужно бояться стажировок и после университета, даже если вы начали заниматься программированием совсем недавно. Например, мы брали разработчика с физическим образованием и минимальным опытом разработки. Он показал высокие результаты всего за полгода — так что важны чёткая цель и желание.
Как программистам находить интересные варианты для стажировки
Обычно стажировки проходят летом. Российские компании начинают наём зимой-весной, иностранные — осенью. Например, в Google я подавался в октябре-ноябре, при этом стажировка началась в июне следующего года.
Информация о стажировках для разработчиков в наших топ-компаниях есть прямо на их сайтах. Средние компании со стажировками проще всего искать на ресурсах типа Superjob или HeadHunter — ближе к лету там появляется бесконечное число вакансий.
Ещё два интересных варианта — друзья, знакомые и LinkedIn. В первом случае всё просто: вы смотрите социальные сети или вспоминаете, кто где работает. В LinkedIn я рекомендую искать выпускников своего университета или ребят из своего города (лучше всего работает в случае небольших городов). Сервис активно показывает их на вкладке Network в разделах «Вы можете знать» и «Выпускники из вашего вуза». Просто напишите им, расспросите о компании, расскажите о себе, вышлите резюме и попросите порекомендовать вас на стажировку.
В современных реалиях правила и возможности иностранных стажировок постоянно меняются, поэтому могу порекомендовать программистам удалённые стажировки на levels.fyi. BigTech-компании проводят стажировки всегда — пытаться попасть на стажировку точно стоит, но нужно быть готовым к отказам, особенно из-за невозможности получить визу. Также я рекомендую Google Summer of Code. Это отличная возможность поработать над open-source-проектами под руководством опытных разработчиков и получить весомую строчку в резюме.
Шансы значительно увеличатся, если вы найдёте внутри компании человека, который вас порекомендует. На иностранные стажировки ребята из России довольно охотно рекомендуют своих земляков, даже если до этого друг друга не знали.
Неплохими «заменителями» стажировок для программистов я считаю школы крупных компаний — например, школу «Яндекса». В отличие от стажировки, во время обучения в школе гораздо больше времени уделяется именно обучению. В результате вы вместе с командой сделаете проект, очень похожий на реальные задачи.
Как подготовиться к собеседованию на стажировку
Онлайн-курсы. Если вам не хватает глубины университетской программы, учитесь сами. Сейчас очень много качественных ресурсов, посвящённых алгоритмам, и базовых курсов для разработчиков (языки программирования, сети, базы данных). К тому же курс по алгоритмам будет полезен как для карьеры программиста в целом, потому что задаёт правильное мышление, так и для прохождения собеседований.
Резюме. Разработчику в резюме стоит уделить больше внимания следующим аспектам: языки программирования, известные вам технологии, проекты, над которыми работали, вуз, пройденные курсы, тема диплома или курсовой, достижения вроде олимпиад (даже в других областях), участие в хакатонах, публичные выступления.
Краткосрочная подготовка. Для краткосрочной подготовки, то есть подготовки непосредственно перед собеседованиями, я рекомендую ресурс LeetCode, где много алгоритмических задач различной сложности и даже есть подборки задач для собеседований. Вот пара примеров задач для программистов, которые с большой долей вероятности могут встретиться вам на собеседованиях: задача №1, задача №2.
Ещё полезно прочитать книгу Cracking the Coding Interview — она исчерпывающе объясняет суть технических интервью — и изучить публичные ресурсы компаний по подготовке к собеседованиям.
Интервью. На собеседованиях очень сильный упор делается на знании основ языка и базовых алгоритмов, на способности быстро и качественно написать решение задачи на выбранном языке и умении это решение объяснить. На финальном интервью важно рассказать, что вы умеете, привести примеры выполненных проектов, обосновать свою мотивацию на стажировку и что вы хотите от стажировки в компании. Также необходимо задать вопросы компании, команде и расспросить о будущих проектах.
Усиление. Чтобы программисту увеличить шансы прохождения интервью как на стажировки, так и на вакансии разработчика в будущем, стоит участвовать в олимпиадах и хакатонах. Необязательно делать это на профессиональном уровне. Например, для хорошего выступления на ICPC наша команда тренировалась по 30–40 часов в неделю и ездила на множество сборов. Конечно, это помогло в дальнейшем легче проходить собеседования — но даже на любительском уровне без особого ущерба для учёбы можно заниматься раз в неделю и периодически участвовать в соревнованиях. Это уже даст свои плоды.
Резюме
Главное — получайте удовольствие от стажировки. Это новый этап в вашей жизни с новыми задачами, знакомствами и возможностями. Не бойтесь ошибаться — и тем более не бойтесь вставать на этот путь. Помните, что каждый когда-то начинал этот путь — а значит, ваш будущий руководитель прекрасно вас понимает и сделает всё возможное, чтобы у вас была отличная стажировка.