Как я проходил собеседования в Яндекс: мой непростой, но успешный опыт

от автора

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

А еще год назад у меня в жизни была вроде бы похожая, но в то же время совсем другая ситуация — времени на хобби не хватало, задач было много, но они не приносили мне никакого удовольствия. В итоге я решился на перемены. На самом деле, эта позиция в Яндексе не была первой, которую я рассматривал. За то время, которое прошло до моего первого рабочего дня, я освежил в голове очень много тем. И перед финальным собеседованием мне пришлось взяться ещё за несколько. Сейчас я понимаю, какие ошибки совершил в этом процессе, поэтому хочу поделиться своим опытом с вами. Буду рад, если кому-то это будет полезно. Хочу сказать, что это не официальные рецепты от рекрутеров Яндекса, а только мои собственные выводы. В конце поста я поделюсь списком литературы, которая мне помогла в подготовке и еще добавлю те источники, которые считаю полезными, оглядываясь назад.

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

А ещё опытные космические волки наверняка замечали, что процесс сборки звездолёта из кусочков канализационных систем и прочих подручных средств имеет определённое сходство с подготовкой к собеседованиям и другим важным событиям человеческой жизни. Задумывался ли я об этом, когда прошлой осенью впервые припланетился в офисе Яндекса?

You look so tired and unhappyКонечно, не задумывался. В Яндексе тогда работал mkot, а мой собственный звездолет в то время я случайно припарковал в одной небольшой компании, занимавшейся разработкой микроконтроллерных систем сбора данных. На собеседовании я просто показал, чем занимаюсь в свободное время, и меня взяли. Каждый день, как любой обычный пилот межгалактического крейсера разработчик, я работал с утра до ночи, а иногда и во сне. Руководство требовало невозможного, мечтало о производственных подвигах, и я старался изо всех сил.

Понимание вреда ежедневных подвигов для здоровья пришло не сразу. Сначала я обнаружил, что мне не хватает времени на хобби, потом начался цикл бессмысленных командировок, и времени не осталось даже на жизнь. Спустя месяцы я (наконец!) понял, что цели руководства (заработать побольше денег) не совпадают с моими собственными (сделать людей счастливее). Ощущение пустоты собственной жизни не может компенсировать никакая зарплата. Я был полон решимости завести трактор звездолет, даже купил чемоданы, вот только не знал, куда направиться. И тут у меня зазвонил телефон.

I’m gonna put on a iron shirtЗвонок IT-рекрутера выбил меня из колеи. Я был настолько поглощен мыслями об увольнении с текущей работы, что даже и не думал о поиске новой. Рекрутер искал кого-то для Лаборатории Касперского, и я решил, что было бы интересно попробовать свои силы. IT-рекрутер очень настаивал на необходимости представить резюме, которого у меня, конечно же, не было, в течение ближайших двух часов. Я послушал его, и допустил самую значительную и одновременно самую счастливую ошибку в этой истории: сделал некачественное резюме на скорую руку. Из ЛК мне так и не позвонили.

Трудно было не сделать два простых вывода. Первый: я могу работать там, где пожелаю, если постараюсь. Второй: нужно хорошее резюме. На несколько недель я погрузился в раздумья. Наконец, в голове щелкнуло: «Я очень-очень хочу работать в Яндексе». И я принялся за составление серьёзного резюме. Потратил на него, кажется, целый день. Выбрал самую интересную вакансию, отправил заявку, и уже на следующий день получил приглашение на скайп-собеседование.

И вот тут я впервые превратился в космического дальнобойщика. У меня было три недели на подготовку к собеседованию, и огромное количество тем, которые нужно было освежить в памяти: *nix, shell-скриптинг, Python, awk, системы контроля версий, TCP/IP, тестирование, алгоритмы и структуры данных (почти полный список в конце этой статьи). Я не знал, что из этого более важно, а потому постарался «нахватать как можно больше разных блоков». Возможно, это не лучшая идея, но других у меня не было.

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

На следующий день (14 мая) я получил письмо:
Приглашаем Вас на собеседование в пятницу, 23 мая в 12-00. Место встречи — офис Яндекса на улице Льва Толстого.

Eight tons of armored steel and any weapon you will needНа подготовку к очному собеседованию оставалось меньше двух недель, и я вновь принялся собирать свой «космический корабль» из знаний. На этот раз я решил сфокусироваться на «Advanced BASH scripting», «Алгоритмах» Кормена и «Python» Лутца. Какое-то руководство по администрированию Linux-систем я читал уже в самолете.

Вот что я написал в своём блоге на следующий день:
Подъём в 4 утра, такси до аэропорта, взлёт, посадка, аэроэкспресс, метро — всё стандартно, и всё по расписанию. Я надеялся посидеть с 10 до 12 в каком-нибудь кафе, и очень рассчитывал на Cабвей, отмеченный на картах Яндекса. К сожалению, Сабвея не оказалось, и пришлось идти в Макдоналдс. Заполнив желудок тонной джанк-фуда, я отправился к офису Яндекса пешком — и оказался там на час раньше назначенного времени. Очень неловко получилось, в общем. Пришлось подождать немного, меня встретила Ольга из отдела персонала (или как он правильно называется?), и началось очное собеседование.

Сначала разговор на общие темы: как добрался, не проголодался ли, что делал на работе. Потом к разговору присоединились остальные интервьюеры. Сначала поговорили про «домашнее задание» — стыдно и забавно, что простую задачу я не смог решить на скайп-собеседовании. Хоть для нахождения правильного решения понадобилась всего минута, эта минута была уже после скайп-собеседования. Потом — пара задачек на сообразительность (и тервер).

Затем мне предложили пару приближенных к реальности задач. Задачи, как мне кажется, в первую очередь были темами для беседы. Боюсь, что отвечал я не очень хорошо — но, кажется, мои ответы всех более-менее устроили. Наконец, мне дали возможность реализовать решение задачи. Самоуверенно сказал, что «минут 40 мне хватит». Времени не засекал, но, кажется, копался вдвое дольше. Под конец допустил в коде несколько досадных ошибок — одну по незнанию lockfile, и две из-за невнимательности. В своё оправдание я могу сказать лишь, что к тому моменту был на ногах 12 часов, и очень устал. Хотя, такие ошибки можно пропустить и без перелета, просто невнимательно перечитывая написанный код.

Код я писал в абсолютном одиночестве; когда дописал — снова пришли интервьюеры (кстати, очень приятные люди), посмотрели на код, и сказали, что больше мучить меня не будут. Всё собеседование заняло примерно пять часов. Наконец, мне пообещали, что свяжутся со мной, и попрощались.
Сейчас у меня есть несколько комментариев к этой истории.

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

Вторая и третья ошибки связаны со временем. Совершенно случайно я пришёл в офис за час до назначенного времени, о чём сообщил HR’ам, и собеседование началось уже в 11:20. Гораздо полезнее было бы отдохнуть, расслабиться и порассматривать лошадок перед офисом, не говоря о том, что мне было стыдно из-за нарушения договоренностей и чужих планов. Когда я прикидывал, сколько времени мне понадобится на решение задачи, кажется, лучше было бы умножить оценку трудозатрат на два (а то и на три).

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

Enjoy yourself, it’s later than you thinkВ жизни любого космического дальнобойщика однажды наступает момент, когда его посудина оказывается в открытом космосе с единственным работающим двигателем. Так и я чувствовал себя, когда бесконечно долго ждал ответа от Яндекса. Лето, работа. Лето, работа.

Спустя месяц после собеседования я заметил в своём блоге:
Как бы не хотелось мне сказать «But if you try sometime you may find/You get what you need», сегодня не тот случай. Из Яндекса намекнули, что перспективы не очень радужные.
Да. Я старался, и получил вежливый отказ, что-то вроде «Мы бы хотели вас взять, но не можем». Возможно, это было связано с закрытием хостинга видео – я как раз собеседовался на вакансию в Видео. Возможно, это было связано с тем, как я показал себя на собеседовании. «Ну нет, так не пойдет! Чемоданы куплены, цель выбрана. Попробую ещё раз!» — решил я, и отправил заявку с резюме на соседнюю вакансию.

Знаете, что такое «сложность: хардкор» в испытании «сборка космического корабля из подручных средств»? Скайп-собеседование назначили через два дня, а мне было просто необходимо освежить в памяти знания C++, алгоритмов и структур данных, bash и методик тестирования.

Hold your breath and count to tenСпустя две недели после второго скайп-собеседования мне предложили работу мечты. Вот так:
Дмитрий, добрый день!
Давайте закрепим письмом наши предварительные договоренности. ООО «ЯНДЕКС» предлагает Вам должность Релиз-инженера в Группе обеспечения стабильности поиска.

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

All they’ve got’s imaginationКто-то (кажется, Костя Горский) сказал примерно следующее: «Первые полгода в Яндексе мне казалось, что я попал на космический корабль».

Но оглядываясь вокруг, я понимаю, что для меня Яндекс в первую очередь – это множество талантливых и интересных людей. И вот о чем я вдруг подумал: может быть, дело совсем не в модулях космического корабля, а в его пилоте?

Вместо постскриптума
Вот какие материалы я использовал, когда готовился к собеседованиям: Задачи на собеседованиях в Яндексе Лекции ШАД Яндекса Другие образовательные материалы Яндекса
М. Купер — «Advanced BASH scripting guide» Язык обработки структурированных текстов AWK Т. Кормен — «Алгоритмы. Построение и анализ» Б. Керниган, Р. Пайк — «Практика программирования» М. Лутц — «Изучаем Python» С. МакКоннел — «Совершенный код» Э. С. Реймонд — «Искусство программирования для UNIX» У. Стивенс, С. Раго — «UNIX. Профессиональное программирование» ISTQB Foundation level syllabus, Test Analyst Syllabus Learn Git branching Linux from scratch Книги про Linux-администрирование (много разных) Книги, manpages и RFC про TCP/IP и сетевые протоколы
Вот какие материалы я использовал бы для подготовки к собеседованиям, если бы знал о них: Лекции КИТ Яндекса Г. Саттер, А. Александреску — «Стандарты программирования на С++» http://habrahabr.ru/post/251715/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *