"Заметки на полях" о собеседовании в Яндекс - одной из крупнейших компаний российского рынка IT из первых уст.
Яндекс - это такой большой стартап. Когда ты идёшь туда, например, на js-разработчика, тебя могут прособеседовать люди из совершенно разных команд. Одни могут быть заинтересованы в твоем знании Vanilla.js и DOM, другим может понадобиться React (что совершенно не отменяет необходимости в Vanilla.js), третьи спросят про алгоритмы, или node.js, или canvas.
Никаких строгих ограничений относительно формы резюме нет, поэтому старайтесь указывать там все, что умеете, и в особенности то, что умеете хорошо.
О форме собеседования
Собеседование делится на секции по часу. Каждая секция может иметь свою тематику, и на каждой собеседуют разные люди. В последнее время была введена дополнительная секция, на которой проверяют именно способность программировать.
О вопросах (и немножко об ответах)
Началось все с его вопроса "Расскажи о себе в плане программирования, в каких проектах участвовал, что интересно?". Автор честно рассказал весь почти 9-летний свой опыт и любовь к написанию велосипедов (что, кстати, как потом отметил hr, огромный плюс).
Далее следовали стандартные вопросы по js (достаточно простые), например, "Приходилось ли использовать разные code-style?", "Были ли совместные проекты с кем-нибудь?", "Какие инструменты используешь для написания кода?".
Была пара вопросов по тестовому заданию, а также общие вопросы из серии "С какими API работал?", "Самое фундаментальное отличие FF и Chrome" (спойлер: движок, Gecko и WebKit).
Второй собеседующий сначала погонял автора по простым вопросам по js (отличия var и let, arrow functions), а затем дал код, где был класс и одни и те же методы, объявленные разными способами (два варианта — внутри конструктора, два - в прототипе), и попросил рассказать отличия, преимущества и недостатки.
Он же спрашивал по работе движков js с памятью. Была задачка, где нужно было увидеть переполнение стека вызовов, и сказать, что с ним делать.
На вопрос, почему в js сложные структуры данных (вроде бинарного дерева) реализуются плохо, автор ответить не смог. Тогда собеседующий просто рассказал ему это. Оказывается, JS не умеет работать с памятью линейно, и даже массив на самом деле может быть разбросан по памяти кусками.
Третья часть мерлезонского балета была посвящена алгоритмам. Всё началось с вопроса, что такое сложность алгоритмов и какой сложностью обычно обладают алгоритмы сортировки.
Затем автор написал на доске маркером алгоритм сортировки пузырьком. Собеседующий сразу сказал: "пиши, что приходит в голову, а дальше будем разбираться, что неправильно". Автор написал. Он посмотрел, сказал, что это работать не должно и начал думать. В итоге надумал, что работать, хоть и не должно, но будет.
Эпилог
О том, был ли принят пожелавший остаться неизвестным рассказчик в Яндекс, история умалчивает.
Комментарии