Как получить должность разработчика в топовой компании

0
1330
views

Перевод статьи YK Sugi «How to Get a Software Engineer Job at Google and Other Top Tech Companies».

Как получить работу программного инженера

В нескольких своих видео я уже рассказывал о том, как получил работу программного инженера в Google.

Однако многие люди по-прежнему спрашивают меня о том, как это сделать. В данной статье я поясню, какой стратегией я бы пользовался.

Вы можете следовать советам этой статьи для получения работы не только в Google, но и в других топовых технологических компаниях, таких как Amazon, Microsoft и Facebook.

Я представлю вам 6-ступенчатый процесс получения работы в одной из подобных компаний. Мы затронем такие темы:

  • Как, для начала, научиться программировать.
  • Что изучать после того, как научился писать код.
  • Как получить первую программистскую работу или пройти стажировку.
  • Лучшие способы подать заявку на вакансию программного инженера.
  • Как лучше всего готовиться к техническим собеседованиям.
  • Важно ли наличие диплома?
  • Важно ли наличие диплома топового вуза?

ОК, приступим.

Шаг 1: научиться программировать

Это самое малое из квалификационных требований для должности программного инженера. Абсолютный минимум.

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

После этого, для изучения более продвинутых тем, я бы использовал обучающие видео ролики. Советую обратиться к таким сайтам как YouTube, Pluralsight, Lynda.com and Udemy. На этих сайтах вы можете найти руководства по таким темам (в зависимости от собственных интересов):

  • Веб-разработка
  • Мобильная разработка
  • Разработка игр

Но подождите, а какой же язык программирования учить первым?

Если ответить коротко, то я бы посоветовал выбирать между JavaScript и Python, но это действительно только от ваших интересов зависит. Более пространный ответ я дал в этом видео.

Шаг 2: работа над несколькими личными проектами

После того как вы освоите несколько руководств по программированию, вам стоит заняться личными проектами, чтобы попрактиковаться в использовании выученного.

Для этого я советую найти что-то, что вам было бы интересно создать.

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

Работая над проектом, для начала постройте как можно больше самостоятельно. Затем, если застряли, обратитесь за помощью. Для этого подойдут как онлайн, так и офлайн ресурсы. Например, вы можете задать конкретные технические вопросы на Stack Overflow, если у вас возникла заминка с чем-то, имеющим отношение к программированию.

Шаг 3: получить первую работу или пройти стажировку

Создав несколько личных проектов, вы можете пытаться получить первую работу или устроиться стажером. Таким образом, когда вы пойдете на собеседование в топовую технологическую компанию, у вас уже будет какой-то опыт работы.

Конечно, можно получить первую работу сразу в топовой компании, но гораздо легче (и чаще случается) устроиться сначала не в такую известную фирму.

Лучшие способы подать заявку по вакансии

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

Вместо этого я бы посоветовал для получения первой работы использовать LinkedIn и личные знакомства.

На LinkedIn для начала найдите рекрутеров компании, где вам было бы интересно работать. Затем спросите их, подойдет ли ваш уровень квалификации на позицию, которая вам приглянулась. Если окажется, что знаний у вас пока недостаточно, то стоит спросить, как вам лучше подготовиться.

Что касается личных связей, я бы посоветовал такие сайты как Meetup. Там можно познакомиться с инженерами и рекрутерами местных компаний.

Погодите, погодите, это еще не все

Использование LinkedIn и личных знакомств отлично работает, если вы хотите попасть в маленькую или среднюю фирму. Но я обнаружил, что эти стратегии менее эффективны, когда речь заходит о более популярных компаниях, таких как Google и Facebook.

Для таких больших компаний я бы посоветовал комбинировать следующие три стратегии:

  1. Посещать ярмарки вакансий и рекрутинговые мероприятия в местных университетах.
  2. Получить рекомендаций друзей, работающих в этих компаниях.
  3. Просто подавать заявки онлайн.

Сочетание этих подходов поможет вам повысить шансы попасть на собеседование в одну из топовых компаний.

Кстати, я не знаю, почему LinkedIn не столь эффективен в случае с большими компаниями. Думаю, это потому, что они получают слишком много сообщений. В общем, они слишком популярны.

Шаг 4: изучение структур данных и алгоритмов

Топовые тех-компании, такие как Google и Microsoft , часто на собеседованиях задают вопросы по структурам данных и алгоритмам. Так что, если вы эти темы не изучали, то стоит это сделать.

Для изучения основ я рекомендую собственные видео по структурам данных и алгоритмам. Все они есть на YouTube. Я их записал, чтобы как можно более облегчить изучение этих тем.

Поскольку у меня их всего 7, вам понадобится больше материала для изучения более продвинутых тем.

Есть несколько популярных вариантов:

Стоит попробовать несколько и продолжить тот курс, который понравится больше.

Шаг 5: подготовка к техническим собеседованиям

Технические собеседования в компаниях вроде Google и Microsoft сложны, но к ним можно подготовиться.

Когда у вас уже есть хорошее понимание темы структур данных и алгоритмов, я рекомендую попрактиковаться с помощью этих трех ресурсов:

  • Leetcode  – интерактивная платформа для практики в решении задач технических собеседований.
  • Cracking the Coding Interview  – популярная книга о технических собеседованиях.
  • Daily Coding Problem  – рассылка, присылающая вам по задаче в день.

Попрактиковавшись самостоятельно несколько недель, вы можете приступить к моделированию ситуации собеседования.

Как это делается

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

Затем решайте каждую проблему на бумаге или в Google doc. Поясняйте свое решение вашему другу.

Старайтесь практиковаться как в роли интервьюируемого, так и интервьюера, чтобы понять, как выглядит собеседование для последнего.

Проведя около 20 тренировочных собеседований, вы должны быть готовы начать процесс собеседований в компаниях, где хотите работать.

Шаг 6: подавайте заявки снова и снова 🙂

Используйте три стратегии, о которых я говорил выше, чтобы подавать заявки в топовые тех-компании:

  • рекрутинговые мероприятия / ярмарки вакансий
  • рекомендации друзей
  • онлайн-заявки.

Если с первого раза не получится, не переживайте. На самом деле вам стоит ожидать некоторое количество отказов, поскольку в этих компаниях высокая конкуренция.

Что касается меня, мне пришлось подавать заявку в Google 5 раз, прежде чем получить там работу.

Вот и все! Быстрое повторение:

  • Шаг 1: научиться программировать
  • Шаг 2: работать над личными проектами
  • Шаг 3: получить первую работу или стажировку
  • Шаг 4: изучить структуры данных и алгоритмы
  • Шаг 5: подготовиться к техническим собеседованиям
  • Шаг 6: подавать заявки снова и снова.

Погодите, все на самом деле так просто?

Да, именно так. Но прохождение этих шагов требует много времени и решимости.

Еще несколько замечаний:

Нужно ли иметь диплом по информатике?

Короткий ответ: нет. Однако, получение высшего образования по компьютерным наукам очень помогает. Если у вас хорошая программа на курсе, то она практически покрывает шаги 1,2,3 и 4 (изучение программирования, личные проекты, первая работа или стажировка, а также изучение структур данных и алгоритмов).

Если у вас нет высшего образования, вам просто придется больше учиться самостоятельно.

Также прошу заметить, что даже имея диплом по «компьютерной» специальности, получить работу программного инженера в одной из топовых компаний все равно нелегко.

Нужно ли учиться в топовых университетах, таких как MIT (Массачусетский технологический институт), Стэнфорд, Карнеги-Меллон?

И снова коротким ответом будет «нет». Наверное, это немного помогает, но это совершенно не обязательно.

Ласло Бок, бывший старший вице-президент по человеческим операциям в Google, тоже с этим согласен.

В книге, которую он написал, «Work Rules!», говорится, что Google предпочитает лучше всего подготовленных студентов из менее известных школ середнячкам из топовых вузов вроде MIT.

Я думаю, что в этом есть смысл, потому что если вы умны и увлечены своим делом, то место вашей учебы не должно иметь значения.

Нужно ли иметь высокие оценки?

Краткий ответ: нет. Опять.

Высокие оценки, возможно, немного помогают попасть на собеседование. Но куда важнее иметь хороший практический опыт и интересные проекты, отраженные в резюме.

На самом деле, если верить «Work Rules!», раньше в Google обращали внимание на средний балл. Но они поняли, что в долгосрочной перспективе нет прямой зависимости между высокими оценками и хорошей производительностью труда на рабочем месте. После этого они перестали делать упор на высокие оценки.

А что тогда нужно?

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

Все это вы сможете получить, пройдя описанные мной 6 шагов.

Погодите, а как написать хорошее резюме?

Если хотите, можете использовать в качестве шаблона резюме, которое я подавал в Google.

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

Дополнительные ресурсы для написания резюме:

  • Хороший обзор по этой теме есть на CareerCup.
  • Мой друг Zhia Hwa Chong, программный инженер в Twitter, тоже написал об этом хорошую статью.

Ну что же… Удачи и спасибо за чтение этой статьи!



ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here