Отзыв по интервью на Java Developer в Яндекс.
Часть 2. Секция алгоритмического кодинга
Продолжаю делиться опытом собеседований Первая часть: https://set.ki/post/cSMKmLs
Следующим и заключительным этапом для меня стала алгоритмическая секция - та самая, о которой чаще всего пишут и которой многие боятся, но обо всём по порядку.
Формат тот же: созвон с интервьюером, включаем камеру, подключаемся к онлайн-редактору и погнали. Расшаривать свой экран не обязательно: система отслеживает, если вы вдруг перейдёте на другую вкладку, всё честно.
Итак, первая задача на популярный паттерн "два указателя" или больше, если потребуется. Дан исходный массив и то, что ожидается на выходе - нужно написать метод преобразования.
Начинаю уточнять детали: правильно ли понял, что от меня хотят. Поняв суть задачи, начинаю накидывать код, как это можно реализовать. И поначалу мне казалось, что я корректно реализовал цикл с проверками, инкрементом указателей, но интервьюер дал понять, что решение нерабочее.
Действительно, присмотревшись, вижу, что где-то выхожу за границы массива, а в других местах не учёл краевые случаи. По привычке хочется запустить дебаг и посмотреть на значения переменных в моменте, но такой возможности нет. Поэтому начинаю просто построчно разбирать, что происходит на каждой итерации, какие значения в каждый момент, попутно объясняя свою логику. В итоге нахожу и исправляю оставшиеся недочёты, после чего интервьюер предлагает оценить сложность решения.
Первая задача достаточно простая, и конечно, во время подготовки я решал подобные, но во время интервью мне потребовалось гораздо больше времени, чтобы довести решение до приемлемого, и как итог, на вторую задачу уже не успевали. Интервьюер предложил заменить её на теоретические вопросы по HashMap - тут я всё подробно ответил, и вопросов не возникло.
На следующий день HR сообщила, что данную секцию я не прошёл, с чем я полностью согласен - мог справиться лучше. Также хочу отметить работу HR, которые не пропадали, как это обычно бывает после интервью, а давали фидбек по каждой секции и морально поддерживали.
В целом интервью прошло в дружелюбной атмосфере, и для первого раза оцениваю свой результат как положительный: - получил реальный опыт алгоритмического собеседования в крупной компании - сама подготовка была интересной: прокачал паттерны (sliding window, prefix sum, интервалы и другие) - потренировался писать код "под наблюдением" и в ограниченное время
Уверен, если готовиться более основательно к данной секции и тщательно отработать много задач на разные паттерны, то вполне можно пройти на следующий этап, чего всем хочу пожелать 🙂