Яндекс. Собеседование в 2019 на должность Java разработчика.

Mikhail Aleksseev
3 min readSep 15, 2019

--

Проработав год в небольшой компании и устав от тотальной неорганизованности, появилось желание работать в компании с правильно выстроенными рабочими процессами. Решив не мелочиться, я выбрал наиболее крупные компании с интересными проектами: Сбербанк, Райффайзен, Тинькофф и Яндекс. К вопросу о том, где искать вакансии, мной они были найдены на сайтах компаний или на hh. В целом, процесс собеседования во всех компаниях выглядел схожим образом. Сбербанк и Райффайзен имеют только одну встречу в офисе, на которой обсуждаются сразу все темы, процесс прохождения собеседований в Тинькофф очень близок к процессу в Яндексе. О нем и будет эта статья. Процесс собеседования занял примерно две недели с момента отклика на вакансию до получения итогового ответа.

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

Интервью по скайпу

Интервью по большей части состояло из вопросов по теории, их было много на разные темы.

Началось оно с обсуждения наиболее популярных алгоритмов сортировки, их сложности и описания принципа работы. Java Collections Framework, из чего состоит, как устроены коллекции, какую сложность имеют и где какие лучше применять. Самые основы многопоточности: для чего используется ключевое слово volatile, способы создания потоков и какие есть методы для работы с ними. По Spring были заданы совсем стандартные вопросы: типы бинов, этапы формирования контекста и как происходит связывание компонентов. Немного о JDBC и базах данных: способы защиты от sql инъекций, как устроены индексы в БД, виды оператора JOIN и чем отличается HAVING от WHERE.

После теоретических вопросов интервьюер прислал ссылку на YandexCode.

YandexCode представляет собой простой браузерный текстовый редактор с подсветкой синтаксиса, но без автокомплита.

Было две задачки:

  1. Написать метод для удаления всех нулей из массива
  2. Обход графа в глубину

Собеседование проходило чуть меньше часа. На следующий день пришло письмо с подтверждением встречи в офисе.

Собеседование в офисе

Проходило в офисе Яндекса на Садовнической улице. Состояло из двух встреч подряд, на каждую был выделен ровно один час.

Алгоритмическая секция

Вся алгоритмическая секция состояла из задачки «Реализовать систему отслеживания событий пользователей и поиска роботов. Робот — пользователь совершающий больше 5000 событий в час.»

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

Java core

Часть по Java core несколько дублировала интервью по скайпу. Началась она с вопросов про коллекции, аналогичных в части по скайпу. Многие вопросы были подкреплены задачками, вроде «Реализовать поиск дубликатов в массиве». Далее следовала часть про многопоточность, сводящаяся к обсуждению пакета java.util.concurrent, которой было уделено на удивление много времени. Завершали собеседование контракты переопределения equals и hashСode и стандартные вопросы про ООП.

Резюмируя

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

--

--

No responses yet