Стажировка для бэкендеров: как попасть без проблем и ошибок

Рассказываем об этапах отбора и предлагаем советы, которые помогут бэкенд-специалисту оказаться в Яндексе

Какие стажировки бывают в Яндексе

Компания предлагает три типа стажировок:

  • Стажировка в течение года. Устроиться можно с августа по январь, стажировка продлится три, четыре или шесть месяцев в зависимости от занятости.
  • Летняя стажировка. Заявки принимают с февраля по июль, длительность такая же — три, четыре или шесть месяцев в зависимости от занятости.
  • Программа Deep Dive по системе Bootcamp. Есть несколько запусков в течение года, длительность — три или четыре месяца в зависимости от занятости. По этой программе можно устроиться только в Яндекс Маркет на направления «Бэкенд», «Фронтенд» и «Мобильная разработка».

Занятость на стажировке может быть 20, 30 или 40 часов в неделю — от этого и зависит её длительность.

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

Этапы отбора на стажировку

Чтобы попасть на стажировку, нужно пройти три этапа отбора:

  1. Заполнить анкету. В ней кандидаты рассказывают о своих достижениях, например о победах на олимпиадах, участии в конференциях. При отборе тимлиды обращают на это внимание.
  2. Выполнить тестовое задание в течение недели после отправки анкеты. На него дают всего пять часов. Отсчёт начинается по нажатию кнопки «Стартовать виртуальное задание». Перед стартом можно попробовать свои силы на вкладке «Пробный контест». Решением любой задачи будет либо код, вставленный в соответствующее окно, либо файл с кодом. 

    Через пять часов система подсчитывает количество правильно решённых заданий (с вердиктом «ОК»), а потом специалисты Яндекса анализируют результат, резюме и другие факторы. О прохождении второго этапа кандидату сообщают в течение недели.
  3. Пройти технические интервью. На них приглашают тех, кто успешно преодолел первые два этапа. С кандидатом будут общаться разработчики Яндекса. Цель интервью — ещё раз проверить, действительно ли кандидат обладает необходимыми знаниями и навыками для стажировки в Яндексе. Здесь тоже попросят решить задачи, подробнее об их решении расскажем дальше в материале. Правда, они будут не очень сложными, чтобы можно было решить одну задачу в течение получаса.
  4. Пройти интервью с командой. Если третий этап пройден успешно, стажёру предложат выбрать команду, где он хотел бы провести ближайшие несколько месяцев. Можно взять несколько команд на выбор. С ними он пройдет дополнительный этап интервью, и если все будет успешно — станет частью их команды.

На что обращать внимание при решении задач на интервью

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

Начиная решать задачу, попробуйте в уме провести условия через тесты. Так вы лучше поймёте суть условий.

Авторы задач — обычные люди, и они пишут условия исходя из привычного всем жизненного опыта. То есть рабочая неделя будет начинаться с понедельника, а в феврале не будет 30 дней — и проверку на это не стоит заводить в ваш код. Старайтесь пользоваться здравым смыслом, помните, что задачи писали люди с похожим на ваш жизненным опытом.

Вячеслав Муравьёв, бэкенд-разработчик в Yandex Cloud, дежурный администратор на втором этапе отбора в бэкенд

Может ли быть в задаче или тестах ошибка? Конечно, ничтожная вероятность ошибки есть. Но если задача существует уже три месяца, значит, её можно решить.

При написании тестов к задаче всегда пишут валидатор для проверки тестов. Все проходят валидацию, так что с вероятностью 99,999% ошибки нет. Не стоит надеяться, что авторы задачи ошиблись.

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

Можно ли использовать стороннюю библиотеку для решения задачи? Нет, нельзя, даже если с её помощью задача очень круто решается. Стажёрские задачи обычно не подразумевают использования сторонних библиотек: доступны только библиотеки или модули, входящие в стандартную поставку компилятора.

Кстати, все авторские решения не содержат зубодробительных алгоритмов и структур данных на 200+ строк.

Решайте сначала те задачи, что вам решить проще. Не стоит три часа сидеть над одной задачей: у вас всего пять часов. Это пригодится вам в работе: то, что с ходу не получается, лучше отложить.

Вячеслав Муравьёв, бэкенд-разработчик в Yandex Cloud, дежурный администратор на втором этапе отбора в бэкенд

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

Не стоит спорить с собеседующим, пытаясь доказать его неправоту. Он может попросить вас переписать код, даже если ваш вариант рабочий. Здесь проверяют ваши софт-скиллы. Собеседующий смотрит, как вы реагируете на требования. В реальной компании код не всегда будет таким, как вы хотите. Умение подстраиваться под существующие условия — это плюс. Думайте о собеседующем как о менторе, а не как о сопернике.

Научитесь понимать, как работает код, без его запуска. В реальных проектах у вас не всегда получится запустить код, чтобы его проверить. Нужно уметь представлять это просто по коду. Если не умеете, надо потренироваться.

Не усложняйте логику в задачах на собеседовании. Задачи рассчитаны на полчаса, поэтому в них нет сверхсложной логики. Если вы пытаетесь написать код на двести строк, ваше решение неверно.

Советую пройти тренировки Яндекса по алгоритмам. Мы не даём каких-то слишком сложных тем, как на олимпиадах, но сложные задачи на базовые темы есть.

Повторите основы языков, на которых вы хотите стажироваться. Если вы идёте, например, на Java, а писали код на этом языке давно, найдите учебник, вспомните базовые вещи.

Вячеслав Муравьёв, бэкенд-разработчик в Yandex Cloud, дежурный администратор на втором этапе отбора в бэкенд