Хочу работать в Google: Пошаговая интрукция для кандидатов в интерны
|Всем привет! Осталось всего пара месяцев до открытия набора на летнюю стажировку в Google. И сейчас самое время начинать готовиться, если вы планируете подаваться.
Кто может подаваться на стажировку?
- Для стажировки нужно быть студентом в 2018 году. Обычно это требование сформулировано так – “Быть студентом после возвращения со стажировки”. Формально сюда может подойти и случай, когда вы возвращаетесь и на следующий день перестаете быть студентом (почти так было у меня – я вернулась и в течение месяце сдала ГОСы, получила диплом, и поехала обратно уже работать на полную ставку). Но сейчас это требование немного ужесточили, и нужно вернуться в университет и реально учиться. Вы можете продлиться на семестр, например.
- Нужно не собеседоваться с Google примерно 12 месяцев. То есть, если вы собеседовались на осеннюю стажировку, там, в мае, то на летнюю вы подаваться уже не сможете. Так как самое раньшее когда Google вас будет готов пособеседовать опять – это в следующем мае. Тут, опять же, можно попробовать получить новый опыт – например, если вы между делом постажируетесь в Facebook – то, может, можно податься и пораньше под соусом “Я много чему научился за эти 3-4 месяца”. Думаю, тут могут сделать и исключение. Если же в вашей жизни ничего особо не происходило и вы просто продолжали учиться, то наверняка правило 12 месяцев на вас распространяется.
Как я узнаю, что пришло время подаваться?
Мониторьте сайт google.com/jobs на слово internship. Как только увидите открытые позиции, значит можно подаваться. Обычно позиции открываются в сентябре-октябре. Выглядеть позиция будет примерно вот так, только там будет написано Summer 2017
Как готовиться?
- Для начала подготовьте резюме. Написание резюме – это вообще отврезляющий опыт. Помогает понять, где именно не хватает достижений и, пока еще есть время, немного подправить ситуацию.
- Начните решать задачи online. Для начала hackerrank – разделы “Algorithms” и “Data structures”. На этом сайте очень удобный интерфейс, код можно писать прямо онлайн.
Там есть задачи уровня Easy, Medium, Hard. Начинайте с Easy (ну, разве что вы уже отлично решаете задачи и вообще олимпиадник-победитель по программированию), продолжайте через Medium и постепенно доходите до Hard. Решайте 10-15 задач в день.
И обязательно решите хотя бы 50 задач уровня Easy, даже если вам это кажется лишним. Это помогает “разогреться” и поднять уверенность в себе. - Когда вы уже более-менее уверенно будете поднимать задачи уровня Medium на hackerrank, переходите на leetcode. У них там есть Mock Interview – решение случайной задачи по таймеру.
Задачи там можно пропускать. Я так понимаю, что если вы задачу пропустите, то в другой раз она может попасться на Mock Interview снова. Решайте задачи уровня Medium, иногда Easy когда устали, если получится – пробуйте решать и Hard. Продолжайте решать 10-15 задач в день (если получится больше – вообще круто).
Кстати, не брезгуйте задачами уровня Easy. Там тоже бывают сюрпризы. Вот например, сегодня я пробовала что это вообще такое для статьи и решала задачу, где у меня упорно не проходил один тест. Я его крутила и так и сяк, вроде все просто, а он, зараза, возвращает 1 вместо 0. В итоге оказалось, что проблема в том, что abs(-2147483648)=-2147483648. Я немного офигела, но оказывается, что на самом деле abs(MIN_INT) is not defined. Раньше я с таким не сталкивалась, но буду иметь ввиду на будущее. В общем, никогда не знаете какие открытия вас ждут в простых задачах :). - Когда вы уже неплохо решаете задачи на моках leetcode, переходите на interviewbit. Там задачи довольно сложные, сразу я бы за них браться не советовала, а вот после подготовки на предыдущих сайтах вполне можно.
- До интервью постарайтесь набрать 500-1000 задач, причем чтобы как минимум половина из них была medium/hard уровня.
- Обязательно посмотрите другие типы вопросов, которые задают на интервью, и которые не решение задач на алгоритмы. Это можно сделать на careercup и geeksforgeeks:
Дело в том, что на интервью могут спросить и общие вопросы – про потоки и мьютексы, как работает DNS и всякое такое прочее. Почитайте вопросы которые задавали другим и удостоверьтесь, что вы хотя бы в общих чертах знаете, о чем идет речь. - По вечерам перед сном или сидя в туалете можете читать Programming Pearls. Она вам поможет настроить свой мозг на правильную волну.
Как поднять свои шансы?
- Написать хорошее резюме, где по максимуму описать ваш опыт программирования. Если есть, дать ссылку на github.
- Постарайтесь поучаствовать в проекте, где вы напишете хотя бы 10 000 строк кода в каком-нибудь гугловом языке – C++ или Java. На крайняк Python. JavaScript тоже подойдет.
- Плюс, учтите, что рекрутер у вас будет спрашивать сколько кода вы написали. Поэтому пишите код, много кода пока есть время. Код решения задач на сайтах тоже считается. Чем больше опыта кодинга у вас будет, тем больше будут ваши шансы. Причем буквально – кандидат у которого написано, что у него 10 000+ строчек кода на Java выглядит интереснее того, у кого написано, что у него 2000-5000 строчек кода на Java (всю эту информацию вы будете предоставлять рекрутеру). Врать не надо, просто постарайтесь, чтобы когда придет время Ч, кода у вас было много. Если код будет на разных языках (10k+ на Java, 10k+ на JavaScrips), то вообще крутняк.
- Подавайтесь как можно раньше. Если вы подаетесь в самом начале, то количество хостов, которые вас увидят во много раз больше, чем если подаваться в конце.
- Хорошо готовьтесь (я написала выше как). Начните вот прямо сейчас.
- Подавайтесь через реферрала. Я могу быть вашим реферралом – можете мне написать на allagentis@gmail.com. Если вы решите подаваться через меня, то пишите сразу, не надо подаваться через сайт, а потом еще писать мне.
- Если есть возможность, то начните работать программистом. Хотя бы на частичную занятость. Кандидаты, у которых есть опыт работы, имеют больше шансов.
- Подавайтесь каждый год начиная со второго курса. Возможно, в первый год вы не пройдете потому, что хосты предпочитают более опытных кандидатов. Мой идеальный кандидат вот – PhD, который окончил университет 10 лет назад, потом работал программистом на проектах схожих с моими, потом ему стукнуло опять пойти учиться, и сейчас он идет стажироваться. Правда, я пока такого не нашла, но уверена, что он бы был нарасхват :). В любом случае – больше опыта (или лет обучения в университете) лучше, чем меньше.
- Не проходите интервью “вхолостую”. Хосты видят довольно много информации, включая результаты предыдущих интервью. Плюс, предыдущие интервью учитываются в среднем балле – то есть если вы в прошлом году прошли интервью ужасно, зато в этом круто, ваше среднее все равно будет считаться по прошлому году тоже. Готовьтесь в любом случае. Лучше не пройти, чуть-чуть не дотянув, чем “вообще ни в зуб ногой”.
- Удостоверьтесь, что в интернете у вас все нормально и нет компромата. Я, например, гуглю кандидатов перед тем как назначать им host matching. Пытаюсь понять, что они за люди, сработаемся ли.