Как улучшить навыки разработчика и подготовиться к собеседованию в Google - обсуждение на Quora
Один из пользователей сервиса Quora поинтересовался, стоит ли ему бросить позицию разработчика мобильных приложений в стартапе ради возможности целый год совершенствовать навыки, чтобы пройти собеседование в Google. Редакция выбрала наиболее интересные ответы.
По словам автора, он работает уже несколько лет, но из-за высокой нагрузки у него остается мало времени на изучение алгоритмов - как в свободное, так и в рабочее время. Поэтому он собирается уволиться и посвятить год теоретической подготовке.
По мнению автора, даже если он не получит работу мечты, он все равно сделает большой прогресс и получит ценные навыки, которые пригодятся ему в дальнейшей карьере. Впрочем, нынешний сотрудник Google Майк Базилян посоветовал ему не бросать работу, особенно на такой продолжительный срок.
«Как вы объясните разрыв в стаже потенциальному работодателю? "Я целый год изучал алгоритмы", - звучит неубедительно, я бы не поверил. К тому же невозможно целыми днями зубрить алгоритмы», - уверен Базилян.
В качестве альтернативы он предложил не уходить с работы, а по выходным смотреть и выполнять уроки с сервиса Coursera или читать главы из классического учебника CLRS («Алгоритмы: построение или анализ»): «Поговорите с вашим начальником, расскажите ему о своем желании расти и развиваться. Вдруг у него есть подходящая работа?».
Если же автор принял твердое решение уйти, Базилян посоветовал ему поступить в магистратуру, связанную с изучением компьютерных наук: «Выберите теорию вычислительных процессов, прикладную математику и анализ данных в качестве профильных курсов. Обучение займет больше времени, чем год, зато будущий работодатель будет уверен, что вы потратили его не в пустую».
Другая сотрудница Google, Сунлинг Янг, напротив, поддержала автора. Она сама ушла с работы и посвятила освободившееся время занятиям. Однако она предупредила, что тратить на это год - контрпродуктивно.
По мнению Янг, необходимо не просто получать новые навыки, но готовиться именно к собеседованию, где могут задавать вопросы о квалификации, или сразу же дать тестовое задание.
«Я проработала все проблемные места по книге Cracking the Code Interview и Coding Interview Questions. Кроме того, я писала на Python, Java и прогоняла код через Eclipse чтобы убедиться, что он работает должным образом. Это важно для Google и Amazon, потому что они заинтересованы в соискателях, которые могут сразу же написать рабочий код», - пояснила Янг.
Кроме того, она порекомендовала почитать книги по теме - «Алгоритмы. Руководство по разработке» Стивена Скиены, а также Programming Pearls Джона Бентли и «Приемы объектно-ориентированного проектирования. Паттерны проектирования», написанная «Бандой четырех».
«Также я рекомендую найти единомышленника. Мой бывший коллега тоже решил устроиться в ИТ-корпорацию. Мы занимались вместе, к тому же он надоумил меня изучить ключевые системы - Bittorrent (p2p), Google BigTable, Google GFS, Google Spanner и Amazon Dynamo. Эти знания пригодились мне, когда на собеседовании меня спросили про проектирование систем», - посоветовала Янг.
Бывший руководитель отдела разработки сервиса Box Сохам Мехта предложил автору найти знакомых в Google, которые могли бы оценить его нынешние навыки и дать рекомендации по развитию.
«Если вы собираетесь прожить целый год на накопления, то вы лишитесь не только их, но и зарплаты. Если вы живете в Кремниевой долине, то сумма ваших потерь может запросто перевалить за $200 тысяч. Даже если вы устроитесь в Google, вам потребуется несколько лет, чтобы поправить свое финансовое положение», - предупреждает он.
Чтобы развить навыки программирования, Мехта посоветовал автору решать задачи на время: «Поставьте себе ограничение: 45 минут. За это время у вас уже должен быть написан работающий код. Такие стресс-тесты очень помогают на собеседованиях».
Для тренировки он посоветовал воспользоваться такими сервисами, как TopCoder, Codeforces, HackerRank или Leetcode. Также Мехта предупредил, что во время собеседования интервьюер может вызвать автора к доске и предложить написать свой вариант кода: «В этом нет ничего страшного, если у вас за плечами хорошая практика».
Так же Мехта посоветовал автору не зацикливаться на Google, а стараться стать мастером своего дела: «Возможно это покажется вам непродуктивным, но нужно оттачивать профессиональное мастерство и умение преподнести свои навыки - тогда вами заинтересуется не только Google, но и другие компании. И даже если вас не возьмут в Google, упорная работа, план и постоянная практика так или иначе помогут вам и помогут там, где вы ждали этого меньше всего».