?

Log in

No account? Create an account

Previous Entry | Next Entry

Продолжаю писать про мой недавний опыт поиска работы в Китченере-Ватерло. Устраивалась я разработчиком.
Предыстория здесь.
Про процесс подачи -- здесь.

Сегодня рассказываю про собеседования.

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

* Обычные собеседования состояли из разговоров с рекрутерами, членами команды и менеджерами. Soft questions, technical questions, много обсуждений проектов, в которых я участвовала и которые я писала. Какие-то компании любят проходить по резюме от начала и до конца (очень утомительно). В Гугле отдельный процесс. Там тоже сначала нужно немного поговорить с рекрутерами, но потом просто идут часы и часы решения задач. Задачи задаются разными людьми, не обязательно теми, с которыми потом работать. По резюме на этом этапе не проходят, им пофиг.

* Для четырёх из пяти компаний задачи нужно было решать на доске.

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

* Типы технических интервью:
- В местном Гугле мне выдали две задачи на алгоритмы, две на написание кода (алгоритмы там попроще) плюс один вопрос systems design. По сорок пять минут на задачу, пятнадцать минут вопросов/перерыва, посередине обед. Если кто пришёл с не особо большим опытом разработки систем, вопрос systems design, насколько я знаю, могут и не задать.
- Интересное из другого интервью: парное программирование. Интервьюер предлагает почитать в Википедии описание определённого алгоритма и потом вместе написать для него код, с тестами, комментариями и т.д.
- В остальном классические задачи и вопросы. От четырёх из пяти компаний получила задачу на systems design. Задачи на алгоритмы и написание кода в основном были проще, чем у Гугла. Некоторые компании задавали вопросы по своей специфике, какой-нибудь там SQL.
- Что любопытно, пусть в этот раз я в Гугл прошла (но решила туда не идти), в следующий раз, если он будет, могу и не пройти. Из всех компаний, в которые я проходила собеседования, в Гугле самый некалиброванный процесс интервью.

* О чём спрашивают, помимо технических задач:
- Собственные проекты. Это спрашивают везде. Если проект не суперкрутой и не лежит на Гитхабе, не беда -- главное быть в состоянии рассказать, что в нём к чему и зачем.
- Вопросы на то, как вы ориентируетесь в общем пространстве разработки. "Какие технологии вы использовали на работе и в собственных проектах? А почему именно эти? А с какими технологиями вы хотели бы поработать?"
- Вопросы на опыт, вменяемость и прочее. "Какие у вас мысли по поводу тестирования? А по поводу design patterns? Что вы думаете по поводу agile methodologies? А расскажите про какой-нибудь интересный баг, который вам встречался." В предыдущих раундах интервью мне обычно настолько открытые вопросы не встречались, но они не проблема -- их уточнят, если нужно.

* О чём технические задачи:
- Структуры данных, алгоритмы. Ни там, ни там ничего экзотического или просто повышенной сложности мне в этом раунде не понадобилось. Heap, Binary Search Tree - да, но какие-нибудь red-black tree или interval tree -- нет. Hash tables и их варианты лидируют в применимости к задачам на интервью. В алгоритмах -- dynamic programming и разный ad-hoc.
- Само собой, при написании кода всегда нужно просчитывать runtime.

* Как я готовилась:
- Повспоминала про проекты и интересные баги. Освежила в памяти некоторые языки, которые у меня в резюме есть, а в голове уже не очень, потому что я на них пять или больше лет не писала. Это пригодилось для некоторых философских бесед и для решения задач там, где очень хотели определённый язык, но в основном я писала всюду на Питоне. У меня и псевдокод уже выглядит как Питон.
- Решала задачи на бумаге, потом вбивала код, чтобы его проверить.
- Пока мы с М. ездили в Америку и на Ниагару, он задавал мне задачи, которые я решала вслух. Поездки на машине и походы по паркам таким образом засчитались за подготовку. Завтраки и обеды тоже: после нас на салфетках и бумажных скатертях оставались примеры графов и шаги алгоритма Флойда-Уоршелла.

* Материалы для подготовки:
- Самая полезная книга в этом раунде: Gayle Laakmann McDowell, Cracking the Coding Interview.
- СareerCup.com, как раз связанный с этой книгой. Оттуда М. брал некоторые задачи, которые мне потом задавал.
- Сайты по темам -- интерактивные обучалки SQL, например, мне пригодились, чтобы вспомнить некоторые детали.
- TopCoder, условно. Там многие задачи требуют написания скучного кода по вводу/выводу и форматированию, поэтому случайную задачу оттуда делать не пойдёшь. Можно поискать, какие задачи люди считают интересными, и идти решать их.
- Не в этом раунде, но в предыдущем: John Mongan and Noah Kindler, Programming Interviews Exposed.
- Не в этом раунде, но прикольно в принципе: The USA Computing Olympiad Training Gateway.

Comments

( 3 comments — Leave a comment )
xendy
Dec. 3rd, 2015 01:27 pm (UTC)
Очень позновательно и интересно!
А будет ли статья про муки выбора, потому как у меня это сейчас больной вопрос, на руках 3 офера. Очень трудно бывирать ....
be_unafraid
Dec. 4th, 2015 02:20 am (UTC)
О-о, с тремя офферами поздравляю! Это круто. А индустрия та же?

Про муки выбора писать не думала. Но сама я в результате выбрала предложение в верхней половине по зарплате и бенефитам, хотя и не самое верхнее, и такое, где самые интересные карьерные перспективы. И прежде, чем выбрать, говорила с людьми, которых я знаю в некоторых из компаний, о том, как им там работается. Очень интересные вещи узнала вот так за кофе. :)
xendy
Dec. 4th, 2015 03:32 am (UTC)
Спасибо за поздравления!)
Я завтра в 10 подписываю контракт, вроде бы определилась, выбрала так же по принципу зп и перспективности роста в профессии и еще месторасположения, как бы я не хотела, но пока нет "китченеровской прописки" никто на меня смотреть не хочет...поэтому выбрала Даунтаун Торонто. К сожалению я никого не знаю ни в одной из компаний. А отрасль таже, только я QA Dev :)
( 3 comments — Leave a comment )