Всем привет!
На этой неделе я проходила техническое собеседование в Google и хочу поделиться опытом в этой статье.
HR из Google вышла на меня сама. Мне 25 лет, Junior Android developer, у меня есть свой простой сайт-визитка, 3 опубликованных довольно примитивных приложения в маркете, живой гитхаб профиль и 2к репутации на StackOverflow. Как именно меня нашли я не знаю. 1 раз я сама подавалась на вакансию к ним, давно — может это повлияло. Кроме этого я часто программирую для удовольствия — я гуглю очень много по теме и возможно мои поисковые запросы складывают обо мне хорошее впечатление. Остается только догадываться.
Первое собеседование с HR было очень легко пройти. Мы прошлись по моему резюме, она указывала на мои сильные стороны, а мне нужно было просто поддакивать. Ей понравилась что я люблю open-source разработку, Android и что у меня математическое
Она рассказала про процес отбора.
Следующий этап это Phone-screen интервью. Оно может проходить через телефонный звонок+экран монитора или через Hangouts+экран монитора.
Мне сообщили, что в случае успеха я смогу выбрать страну (только EMEA) и город, где смогу работать, а следовательно и проект. Google вначале набирает сотрудников, а потом распределяет.
Так же сказали, что я сколько угодно долго могу готовиться к техническому интервью, но рекомендуют 2 недели. Я попросила 6 недель. Дату и время испытуемый выбирает сам. В Google готовы подстраиваться под Вас.
Для подготовки HR посоветовала прочесть книгу Cracking the Coding Interview Steve Yegge's Blogspot
Кроме этого меня попросили записаться на 1 часовой online тренинг для кандидатов — как правильно отвечать на вопросы тех интервью. Этот тренинг называется Coaching session. Он проходит 1 раз в 7 дней, кажется, и на нем присутствует тренер инженер Google и около 7 кандидатов. Опять через Hangouts. На этом тренинге рассматривается одна задача, все думают вслух, потом тренер предлагает шаблон как отвечать по задаче. У нас была задача по графам.
Тренинг действительно полезная штука.
Нормально и даже хорошо, если вы вначале предлагаете наивное (не эфективное) решение задачи. Вы сообщаете о проблемах вашего решения, назваете Run-time (Big-O) алгоритма и предлагаете улучшения.
Важно сразу писать код (в Google doc). Несколько раз было сказано, что код должен быть компилируемым. Псевдокод не подойдет.
В переписке с HR я спросила про зарплату, зависит ли она от страны, которую я выберу. Мне не называли сумм, но сказали что разочарована я не буду, что компания входит в топ по зарплатам для всех стран.
Вот в этом посте тема зарплат раскрыта более полно, и вообще хороший блог от сотрудника Google.
На техническом интервью было 2 вопроса. Один совсем простой про работу со String. По сложности — 1 курс универа. Второй вопрос сложнее (я предлагала Бинарный поиск и прочее) — субъективно 3 курс универа. Вопросы на сообразительность, но в целом довольно простые, что меня удивило.
Мне показалось, что я отвечала хорошо, хотя собеседование я не прошла. Сказали, что не хватает знаний в алгоритмах.
Вот выводы, которые я сделала:
Хорошо перед собеседованием прочесть книгу, что советует HR (я читала лишь первые 20 страниц).
Хорошо пройти пару курсов на Coursera по «Алгоритмам и структурам данных» — это дает ещё и технический английский.
На тренинг нужно записаться как можно раньше, Ваши знания на нем, наверное, не оценивают, зато Вы получите больше времени для правильной подготовки.
Самые важные темы — Big-O notation, алгоритмы, графы, большие данные. Это не полный список.
Если Вы проходите phone-screen интервью, следующий этап — 5 интервью в офисе Google в 1 день с перерывом на обед.
Отбор очень жесткий. Давайте посчитаем. Если вы хорошо готовились к каждому интервью и имеете шансы на каждом собеседовании 80% из 100, что очень круто, то по теории вероятности после 6 технических интервью Ваши шансы равны 0.8^6 = 0.26. Короче Вас скорее не возьмут, чем возьмут. Но все равно пробовать стоит.
Следующая попытка собеседоваться может быть только через 1 год. Вот такие ограничения.
Автор: ashomokdev