Подготовка к скайп интервью в Яндекс на Java разработчика 2020

Mikhail Aleksseev
3 min readOct 23, 2020

--

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

Теоретическая часть

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

Темы, по которым задавали вопросы: коллекции, исключения, алгоритмы, многопоточность, виды join. Из нового добавились вопросы про Stream Api и работу с терминалом.

  1. Коллекции
    Иерархия коллекций, интерфейсы и их имплементация. Более подробно спрашивали про ArrayList, LinkedList, HashMap. Как устроены, какие методы имеют, когда применять и какая у них временная сложность при различных операциях. Тут же спрашивают про контракт equals и hashCode.
    Материалы для подготовки:
    Справочник по Java Collections Framework
    Структуры данных в картинках. ArrayList
    Структуры данных в картинках. LinkedList
    Структуры данных в картинках. HashMap
    Разбираемся с hashCode() и equals()
    Методы класса Object в Java
  2. Исключения
    Иерархия коллекций, чем отличаются проверяемые и непроверяемые исключения.
    Материалы для подготовки:
    Исключения в Java
  3. Многопоточность
    Что содержит пакет java.util.concurrent, способы создания потока, с какими проблемами можно столкнуться: raceCondition, deadLock. Оба раза спрашивали про volatile и atomic*.
    Материалы для подготовки:
    Обзор java.util.concurrent.*
    Thread’ом Java не испортишь: Часть I — потоки, внизу статьи ссылка на продолжение в виде 5 частей, все они полезны. В третьей части как раз описываются проблемы Deadlock, Livelock, Starvation,
  4. Алгоритмы
    Наиболее популярные алгоритмы поиска и сортировки, их реализация и временная сложность. Оптимальный способ сортировки отсортированного массива и случайного.
    Материалы для подготовки:
    Пузырьковая сортировка и все-все-все
    Алгоритмы сортировки в теории и на практике
    Сортировки вставками
    Сортировки слиянием
    Знай сложности алгоритмов
    Описание алгоритмов сортировки и сравнение их производительности
  5. Stream Api
    Чем конвейерные операции отличаются от терминальных и какие из них чаще всего встречались.
    Материалы для подготовки:
    Шпаргалка Java программиста 4. Java Stream API
  6. SQL
    Виды Join и индексы в базах данных, как правильно использовать и их устройство.
    Материалы для подготовки:
    Индексация в Базах Данных
    Понимание джойнов сломано. Это точно не пересечение кругов, честно
    Многотабличные запросы, оператор JOIN
  7. Работа с терминалом
    Вывести список процессов, найти и прихлопнуть повисший процесс, прочитать данные из файла размером более 100МБ, вывести последние 5 строк файла с логами.
    Материалы для подготовки:
    Команды Linux которые вы должны знать
    Команда Tail Linux
    Команда Kill Linux
    Команда Ps Linux

Задача

Примерно в середине интервью мы перешли в Яндекс.Код — браузерный текстовый редактор. Мне была дана задача написать метод, приводящий строку aaaffccccd в 3a2f4cd. Решение заняло около 20 минут, было очень непривычно писать без автокомплита. Не везде получилось вспомнить точные названия методов и местами был псевдокод, максимально приближенный к реальному коду. Решение было засчитано.

На протяжении всего решения интервьюер молчал, никак не комментируя принимаемые решения и не давая подсказки. Скорее всего, в случае попадания в тупик, просто закончится время и собеседование объявят не состоявшимся.

Резюмируя

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

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

--

--