Найти в Дзене
machine learning engineer

Философия Яндекса. Что я понял после 10 интервью на позицию разработчика-стажера

Оглавление

Тип статьи: [Опыт] (смотрите Карту блога)

Введение

Сначала вкратце об алгоритме рассмотрения вашей заявки на абстрактную позицию, связанную с разработкой в Яндекс.

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

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

Через какое-то время вы получите фидбек о результатах. Если вы справились успешно, то вас пригласят на серию очных интервью в офис Яндекса в вашем городе. Их обычно три: каждое длится час. Два из них похожи на те, что были по скайпу, третье чисто по алгоритмам - вам нужно решить 2 задачи и написать код решения в редакторе текста/на листике.

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

Попытки попасть в Яндекс я начал предпринимать ещё на 2 курсе университета.

Спустя 3 года у меня, в общей сложности, было около 10 собеседований в Яндекс. В данный момент я приостановил активность в этом направлении (последняя попытка была год назад), т.к. времени маловато. Однако я планирую продолжить свои попытки в будущем.

Я добирался максимум до последней стадии, т.е. до интервью с командами. Но оффер не получал.

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

Философия Яндекса

1) Какие ваши источники информации

Вопросы

Какими ресурсами вы пользуетесь для получения новых знаний или поиска ответов на вопросы.

Ответ в идеале

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

2) Алгоритмы

В Яндекс считают очень важным знание алгоритмов и умение применять их для решения практических задач. Алгоритмы лежат в основе умения решать задачи оптимально.

Также, вам нужно знать стандартные структуры данных: списки, очереди, деревья поиска, хэш-таблицы, кучи. Знать скорость выполнения (согласно O-нотации ) основных операций (вставка, чтение) и детали реализации этих структур данных в используемом вами языке программирования. Например, разница между скорость вставки элемента в ArrayList и LinkedList в java.

Вопросы

Можете ли вы оценить оптимальность вашего решение. Насколько быстро выполняется код (согласно O-нотации). Можно ли как-то улучшить ваше решение.

3) Как вы ищете проблему

Варианты ответов

Логирование, фреймворки по типу Яндекс.Метрики, тестирование, тулзы для профилирования кода.

Примечание

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

4) Дополнительные советы

  • Если в процессе интервью вы не видите оптимальное решение - реализуйте как сможете, т.к. лучше решить не оптимально, чем не решить вообще.
  • Нужно озвучивать свои мысли. Во-первых, вы продемонстрируете ход своих мыслей. Во-вторых, интервьюер сможет задать наводящие вопросы и помочь вам с решением задачи.
  • Уделите внимание многопоточности. В Яндекс очень любят эту тему.
  • Потренируйтесь писать код на листике. Зачем это вообще нужно? Это просто тест, чтобы проверить: кодите ли вы регулярно хотя бы на вашем языке программирования т.к. только в таком случае в памяти откладываются все мелкие детали.

Послесловие

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

p.s Дерзайте :)

Спасибо за прочтение статьи. Если понравилось - ставьте лайк, если хотите ещё - подписывайтесь на канал. До скорых встреч :)

Обо мне