Вопросы которые задают для принятия в гугл. Подготовка к интервью в Google. Сколько шариков для гольфа поместятся в школьный автобус

03.07.2019 Виды

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

О чём нужно позаботиться перед собеседованием

  • Имейте копию зачётной книжки;
  • Выберите как минимум 3 дня и время (включая часовой пояс), в течение которого вы будете доступны для технического собеседования по телефону в формате дата-время-часовой пояс, для которого вы указали время;
  • Выберите язык программирования, который вы хотели бы использовать для собеседования: Java, C++, C или Python;
  • Предоставьте актуальные контактные данные, чтобы до вас могли дозвониться в день собеседования.

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

Планируйте заранее

Инженеры Google, которые будут вас собеседовать, весьма ограничены во времени. Поэтому найдите время и в своём расписании тоже! Также держите под рукой ручку и лист бумаги на случай, если вам скажут что-нибудь записать.

Чего ожидать

Техническое собеседование может длиться до 45 минут. Интервьюера будут интересовать ваши знания принципов Computer Science (структуры данных, алгоритмы и т.д.) и как вы их можете применить в решении задач.

Ваши знания Computer Science оставляют желать лучшего? Тогда загляните в , чтобы восполнить этот пробел.

Вопросы на собеседовании

На собеседовании может затрагиваться всё, что указано в вашем резюме (особенно если вы отметили, что вы в этом эксперт!), вайтбординг (это когда вас заставляют писать код на доске или листике), разработка сложных алгоритмов и анализ их производительности, логические задачи, системное проектирование и основы Computer Science - хеш-таблицы, стек, массивы и т.д. Из-за сложности и глобального масштаба проектов, в которых вы будете участвовать, основы Computer Science являются необходимыми для всех инженерных должностей в Google вне зависимости от вашего стажа.

Как добиться успеха

В Google ценят совместную работу и обмен идеями. Поэтому вам понадобится больше информации от интервьюера, чтобы проанализировать поставленный вопрос и развёрнуто на него ответить.

  • Это нормально задавать вопросы интервьюеру.
  • Когда вас просят решить задачу, сначала сформулируйте, как вы её понимаете.
  • Если вам что-то непонятно - попросите помочь или объяснить.
  • Если у вас есть какое-то предположение, проговорите его, чтобы убедиться в правильности своих суждений!
  • Опишите, как вы собираетесь решить каждую часть задачи.
  • Всегда давайте интервьюеру следить за ходом вашей мысли, так как для него это не менее важно, чем конечное решение. Кроме того, если вы вдруг зависнете, то он сможет помочь советом.
  • Наконец, слушайте - не пропустите подсказку мимо ушей, если интервьюер пытается вам помочь!

Кто нужен Google?

Нам нужны не просто инженеры, которые будут решать знакомые им задачи; мы ищем тех, кто сможет найти ответы на вопросы, которые не встречались им ранее.

Интервьюерам важен подход к вопросу не меньше, чем сам ответ:

  • Слушал ли кандидат внимательно и понял ли он вопрос?
  • Задал ли он правильные вопросы, прежде чем приступить? (важно!)
  • Решил ли он задачу перебором? (нехорошо!)
  • Делаются ли какие-либо предположения без предварительной проверки? (нехорошо!)
  • Услышал ли кандидат подсказки и прислушался ли он к ним?
  • Кандидат медленно вникает/решает задачу? (нехорошо!)
  • Предпочитает ли кандидат найти несколько возможных решений, прежде чем выбрать лучшее?
  • Ищет ли он новые пути решения задачи?
  • Является ли кандидат изобретательным и гибким в своих решениях и открыт ли он для новых идей?
  • Возможен ли переход к решению более сложных задач в процессе собеседования?

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

Задавайте больше вопросов!

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

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

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

Готовимся техническому собеседованию

Основные пункты, по которым следует пройтись инженерам для успешного прохождения собеседования в Google:

  • Сложность алгоритмов . Очень важно понимать анализ сложности в нотации «О-большое» . Попробуйте разобраться с этим на практике.
  • Сортировка . Знайте, как сортировать. Не пузырьком. Следует знать в деталях как минимум один алгоритм сортировки сложности O(n log n) , желательно два, например, быструю сортировку и сортировку слиянием . Последняя может быть крайне полезна в ситуациях, когда использовать быструю сортировку нецелесообразно, поэтому обратите на неё внимание.
  • Хеш-таблицы . Пожалуй, самая важная структура данных , известная человечеству. Вы обязательно должны знать, как они работают. Будьте готовы во время собеседования предоставить свою реализацию с помощью массивов на вашем любимом языке.
  • Деревья . Имейте представление о деревьях, знайте базовые алгоритмы построения, обхода и управления деревьями. Ознакомьтесь с двоичными , n-ичнымии и префиксными деревьями. Также нужно знать хотя бы один вид сбалансированного двоичного дерева, будь то красно-чёрное , расширяющееся или АВЛ-дерево , и как его реализовать. Разберитесь в алгоритмах обхода дерева: поиске в ширину и глубину , и узнайте разницу между прямым, симметричным и обратным обходами.
  • Графы . Графы имеют большое значение в Google. Есть три основных способа представить граф в памяти: объекты и указатели, матрица и список смежности; ознакомьтесь с каждым представлением и его преимуществами и недостатками. Вы должны знать основные алгоритмы обхода графа: поиск в ширину и поиск в глубину. Знайте их вычислительную сложность, преимущества и недостатки и как их реализовать с помощью кода. По возможности попробуйте изучить более интересные экземпляры вроде алгоритма Дейкстры и .
  • Математика . Некоторые интервьюеры задают вопросы по основам дискретной математики. В Google на это обращают больше внимания, чем в других компаниях, из-за характера задач, с которыми там работают. Потратьте немного времени перед интервью на повторение (или изучение) основ комбинаторики и теории вероятностей. Вы должны знать о задачах сочетаний из n по k и ей подобных - чем больше, тем лучше.
  • Операционные системы . Ознакомьтесь с процессами, потоками и параллелизмом . Необходимо знать, что такое блокировка, мьютекс , семафор и монитор и как они работают. Узнайте, что такое взаимная блокировка и livelock и как их избежать. Имейте представление о том, какие ресурсы нужны процессам и потокам, как работает

Управляющий директор коммуникационного агентства Needle Николай Сюсько написал для сайт колонку о своем опыте прохождения собеседований в Google. Он рассказал, на что стоит обратить внимание во время общения с представителями компании и какие уроки стоит извлечь из неудачного опыта.

В закладки

Существует распространенное мнение: работа в международных компаниях – пик карьеры. В таких компаниях как Google, Apple, Nike хотят работать миллионы. Их HR-бренд – продукт, глава компании и рабочая культура. Пару лет тому назад я прошел пять интервью и в Google. Подобные поражения способны научить не меньше, нежели победы.

Прежде всего, собеседования в компании помогают посмотреть на себя со стороны. Рекрутеры и интервьюеры – люди, не знакомые с вашими сильными или слабыми сторонами. Тем не менее, они должны решить, подходите ли вы на эту роль из тысяч других кандидатов. Для специалиста подобный опыт крайне полезен. Он помогает сфокусировать развитие карьеры, обновить свое резюме, а также более эффективно позиционированить себя на рынке труда.

Оценка вакансии

Мой опыт прохождения собеседования в Google начался с публикации в одной из групп на Facebook: «Кто хочет работать в ключевом дублинском офисе Google в Европе?». Вопрос задала сотрудница компании, некогда переехавшая в Ирландию из Казахстана. Большой плюс для всех нас (выходцев из СССР) – возможность общения украинца, россиянина, казаха и белоруса на одном языке. Некая общность прошлого магическим образом воздействует на нас до сих пор, поэтому, когда я написал ей, то незамедлительно получил ответ.

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

В Google были две вакансии: SMB manager в Ирландию и Business Acquisition Manager в Москву. Гуглер подала мое резюме на обе вакансии. Признаться, я сильно удивился, когда вместо Ирландии мне пришло уведомление о назначении собеседования в московский офис. Я понимал, что прошел отбор среди многочисленных кандидатов: можно проработать год в Москве, а потом перебраться в офис Google в другой стране. Изнутри это сделать гораздо легче, нежели пытаясь сразу подать резюме на вакансии в привлекательных странах.

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

В каком-то смысле оно похоже на ваше резюме: сглаженные углы, немного приукрашено, красиво подано. Более того, такие компании как Google часто указывают rocket science на сайте, а в работе вы будете обслуживать рекламные кампании AdWords врача, специализирующегося на кодировании алкоголиков (правдивая история).

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

Прохождение собеседования

В моем случае красочные вопросы на сообразительность, которыми проверяет Google соискателей, – миф. Пятеро человек, с которыми я общался во время интервью, не задали ни одного вопроса в стиле «сколько мячиков для пинг-понга помещается в самолет?».

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

Её стратегия общения была относительно простой: пробежаться по релевантному опыту резюме, опросить меня по знанию AdWords. При этом рекрутер глубоко не вникал в рекламный инструментарий Google. Если честно, я ненавижу AdWords, и моей карьерной стратегией с Google было попадание в офис, демонстрация высоких показателей эффективности и смена направления деятельности (крайне приветствуется и поощряется в компании).

Во время общения рекрутер обратила внимание на мой опыт работы в ИТ-компании (пусть и 7-летней давности), спросила, что привело меня в Google и дала задачку по AdWords на тему креатива (условно: есть клиент из автомобильной сферы, популярные ключевые слова крайне дорогие, какое решение ты предложишь). В общении важно отвечать быстро, находчиво и со знанием дела. Это собеседование я проходил, сидя в квартире друзей в Вене. При желании мог подглядывать в экран ноутбука или смартфона.

Через некоторое время меня поздравили по электронной почте и объявили о следующем интервью с сотрудником Google. Второй фильтр работает по принципу: соответствую ли я понятию компании о «гуглерах», насколько понимаю вакансию и с каким багажом приду к ним.

Интересно, что если вы спросите конкретику о «гуглерах» – редко кто ответить что-то по существу. Это некий образ коллеги-друга, созданный в рамках HR-бренда Google. Да, у него может существовать описание, но написанное на бумаге не всегда соответствует действительности – образу в голове у других гуглеров. Для себя понял, что гуглер – открытый, доброжелательный, интересный и простой человек. По большому счету, этакий приятель, с которым всегда можно поддержать разговор.

На собеседовании эти качества проявляются просто: насколько вам легко найти общий язык с человеком, которого вы впервые слышите по телефону. Да ещё и на английском, а родом из Греции. Google – мультикультурная компания, поэтому важно с пониманием относиться к особенностям различных культур и народов.

Признаюсь честно, я думал, что второй интервьюер меня завалит на специализированных вопросах по Google Analytics или AdWords. Оказалось, что он ничего не спросил о продуктах компании. Скорее всего потому, что когда ты попадаешь в Google, то проходишь месяц интенсивной подготовки. Там тебя научат понимать продукт компании, её бренд, миссию и ценность для клиентов.

Перекрестный допрос

Прошло несколько недель, и мне объявили карт-бланш на финальные три интервью. Причем все они должны были состояться с разными людьми, но в отрезке нескольких дней. Не похоже на стресс-тест, но интенсивность не позволяла как следует подготовиться. Важный момент – вы будете общаться с людьми из разных отделов, разных возрастных групп и гендеров. В данном вопросе нужно быть абсолютно толерантным. Тем более, что вы общаетесь по Hangouts – слышите и видите друг друга.

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

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

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

Последний шаг

Пятое интервью мало чем отличалось от предыдущих. Старший менеджер, прекрасно осведомленный в делах найма и управления командой, задает тебе почти те же вопросы, что и остальные его коллеги. Отличия в деталях, но крайне важных. Так, я не смог назвать точную долю поискового трафика Яндекса в России. Сказал наугад, но «недобрал» 30%.

Растерялся, когда он спросил меня о подсчете выручки YouTube в России. Здесь гуглер хотел увидеть бизнес-ориентирование специалиста, понимание продукта. Как и предыдущие интервьюеры, в конце он дал мне возможность задать свои вопросы относительно Google.

#меняневзяли в Google

Москва. Корпоратив диджитал-агентства. Звонок из Ирландии. Рекрутер сообщает, что не сложилось, и если он чем-то может быть полезен – проси. Оглядываясь назад, я понимаю, где допустил ошибки:

Что бы я сделал иначе в следующий раз?

Досконально изучил бизнес Google

Не просто пообщался с креативными директорами, работавшими над проектами Google (как я сделал в Москве), а изучил модель их бизнеса, обязанности сотрудников в моем направлении.

Подготовил 10 тезисов на английском

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

Потренировался бы с рекрутером

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

Не делал бы собеседования в Google делом своей жизни

Нужно понять, что итоговую причину непопадания в Google вы никогда не узнаете. Тысячи людей пытаются устроиться в «компанию мечты». Однажды, если вы не попадете, нет никакого смысла расстраиваться. Ведь собеседования – бесплатные уроки от Google.

Меня не взяли в Google, а вместе с тем исследование вакансий на LinkedIn помогло узнать мне целый новый мир. Например, в Facebook часто требуют понимание методологии холократии. Для России это дремучий лес. Подобные примеры возможного прокачивания собственных знаний – положительный аспект интервью в крупную компанию. Воспринимайте ваши неудачи как опыт, тогда вы сможете прогрессировать, а не зацикливаться на отказах и закрытых дверях.

Собеседование в Гугл – это процесс, который оброс легендами о невероятных вопросах и их нескончаемом количестве.

Google – это та компания, которая ищет не только умных, но также креативных сотрудников, поэтому будущему участнику команды нужно обладать такими :

  1. Вы должны действительно хорошо обладать программирования.
  2. Кандидат должен легко обучаться. И тут речь не об интеллектуальном развитии, а о способности обрабатывать новую информацию практически моментально и с таким же успехом применять её.
  3. Лидерские качества – это то, на что особенно обращают внимание в Гугл. Но компания видит лидерство в другом, непривычном нам банальном ракурсе: лидерство – это решительность вмешаться со своим решением в момент, когда команда столкнётся с проблемой и, возможно, даже не осознает её.
  4. Интеллектуальная скромность – вы должны быть готовы учиться на своих ошибках и не зацикливаться на том, что уже знаете. То есть, вам не должно казаться, что вы уже достигли максимума.

Как проходит собеседование в Google

Собеседование в компанию многоэтапное – менеджеры могут проходить до шести этапов интервьюирования. Интервью может проходить как при личной встрече, так и удаленно через Google Hangouts.

Все собеседование делится на две части:

  1. Интервью с общими вопросами (об опыте работы, жизненных убеждениях и т.п.)
  2. Интервью с решением практических заданий и абстрактных задач (особенно, если вы претендуете на должность технического специалиста).

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

Неожиданные вопросы от Гугл

  • Разработайте план эвакуации в Сан-Франциско.

Будьте готовы к подобным вопросам, так как они предназначены выяснить, как вы подходите к проблемам. Ответить вы можете легко и иронично, например: «Какую конкретно мы с вами планируем катастрофу?».

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

  • Объясните своему 7-летнему племяннику, что такое база данных.

Вероятно, такой вопрос поможет понять, как хорошо соискатель может объяснять сложные идеи простыми и словами.

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

А если судить вообще и в целом, подборка дает хорошее представление о вопросах, которые могут попасться на интервью - как при приеме на работу, так и для поступления на грантовую программу, например.

Во-первых,

  • Google предпочитает людей из «Лиги Плюща»
  • Им интересны ваши оценки (в институте), даже если вам уже за 30
  • Они ищут людей, которые хотят изменить мир

Хуже того, если вы подходите по всем этим параметрам, вам все равно надо проходить собеседование. Льюис Пин (Lewis Pin), тренер по поиску работы из Сиэтла, собрал 140 вопросов, которые в Google спрашивали его клиентов.

Сколько шариков для гольфа поместится в школьный автобус?
Позиция: Менеджер проекта

За сколько денег вы помоете все окна в Сиэтле?
Позиция: Менеджер проекта

В стране, где люди хотят, чтобы у них были дети-мальчики…
… каждая семья продолжает рожать детей до тех пор, пока не появится мальчик. Если у них девочка, они заводят ещё одного ребёнка. Если у них мальчик, они останавливаются. Каково соотношение мальчиков и девочек в такой стране?
Позиция: Менеджер проекта

Сколько настройщиков пианино во всём мире?
Позиция: Менеджер проекта

Почему крышка люка круглая?
Позиция: Разработчик ПО

Разработайте план эвакуации из Сан Франциско
Позиция: Менеджер продукта

Сколько раз за день стрелки часов пересекаются?
Позиция: Менеджер продукта

Объясните значение выражения “dead beef”
Позиция: Разработчик ПО

Человек направил свой автомобиль на отель, но потерпел неудачу. Почему?
Позиция: Разработчик ПО

Вам надо проверить, правильно ли записан ваш телефон у Боба…
… но вы не можете его спросить об этом прямо. Вам надо написать вопрос на бумажке и отдать Еве, которая отнесёт её Бобу и принесёт обратно ответ от него. Что вы должны написать на бумажке, кроме прямого вопроса, так, чтобы Боб смог понять сообщение, а Ева не смогла узнать ваш номер телефона?
Позиция: Разработчик ПО

Вы - капитан пиратского судна…
… и ваша команда собирается голосовать, как разделить награбленное золото. Если с вами будет согласно меньше чем половина пиратов, вы умрёте. Как вы поделите золото, так, чтобы получить хорошую часть добычи, но всё же остаться в живых?
Позиция: Технический Менеджер

У вас есть 8 шаров одинакового размера…
...7 из них одинакового веса, а один весит чуть больше остальных. найти мяч, который тяжелее остальных, используя баланс и только два взвешивания?
Позиция: Менеджер продукта

У вас есть 2 яйца…
… и у вас есть доступ на 100-этажное здание. Яйца могут быть либо очень крепкими, либо очень хрупкими, это значит, что они могут разбиться, скинутые с первого этажа, либо не разбиться даже скинутые с 100-го этажа. Оба яйца абсолютно идентичные. Вам нужно выяснить самый высокий этаж 100-этажного здания, с которого яйца могут быть скинуты и не разбиться. Вопрос в том, сколько попыток вам надо сделать. Вы можете разбить только два яйца.
Позиция: Менеджер продукта

Объясните что такое База Данных в трёх предложениях, так как это сделал бы ваш 8-летний племянник
Позиция: Менеджер продукта

Вы были уменьшены до размеров 5-центовой монеты…

… и ваша масса была пропорционально уменьшена соответственно вашей плотности. Теперь вас бросили в пустой стакан блендера. Ножи начнут движение через 60 секунд. Что делать?
Позиция: Менеджер продукта

Прежде чем смотреть ответы, попробуйте догадаться сами! По меньшей мере, в половине случаев достаточно смекалки. Кое-где нужны специальные знания. Некоторые задачи требуют расчета.
_____
Ответы - можно найти и по ссылке на оригинал ниже. Также рекомендую Хабр для прочтения и небольшой медитации над вопросом о крышке люка:) Вообще, там в комментариях есть оригинальные ответы.

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

Моя доска, исписанная алгоритмом Дейкстры для нахождения кратчайшего пути.

Да-да, я потратил сотни часов на написание кода, чтение книг и просмотр видеолекций по анализу данных, и всё это для того, чтобы подготовиться к интервью в Google на должность разработчика ПО.

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

Как я к этому пришел

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

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

Перед тем, как покинуть армию, я попытался все-таки вернуться к программированию и был поражен тем, как это оказалось сложно. Я учил BASIC в средней школе и продолжил программировать на нём в колледже, но тут я начал обучение на С++ и понял, какой же большой пробел в моих знаниях.

Мне нравилось делать веб-сайты, но я использовал сервисы для их создания, а не верстал с нуля.

После армии я решил остаться в Корее ещё на год и преподавать там английский. Свои вечера и выходные я проводил, изучая веб-программирование с использованием Perl, HTML, CSS (который, кстати, к тому времени только появился), JavaScript и SQL. После года интенсивного изучения я устроился на работу в районе Сиэтла.

Работаю на балконе с видом на прекрасный Белвью.

15 лет я был веб-разработчиком. Я основал три компании, две из которых до сих пор существуют и имеют неплохую прибыль, работал как в больших, так и в маленьких компаниях, помогал запускать и продвигать стартапы, нанимал целые команды и управлял ими, я был менеджером по продукции, СЕО, дизайнером и маркетологом.
У меня была успешная карьера и я многому научился, но я еще не закончил!

В поисках перемен

Помните, как я не получил степень в сфере компьютерных наук? Это сыграло огромную роль.
Пару лет назад я думал, что меня с удовольствием примет на работу любая компания. Еще бы, мне казалось, что я был горячей штучкой: опытный full-stack разработчик, да ещё и с таким-то стажем! Но на протяжении моих поисков работы в 2013, я понял, что моих навыков было недостаточно. Я так увлекся погоней за деньгами, запуская стартапы в свободное время, что позволил моим навыкам попросту атрофироваться. Я не следил за новыми тенденциями и технологиями.

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

В начале 2016 я решил, что пришло время переквалифицироваться из веб-разработчика в разработчика ПО. Мне нужно было усердно учиться и много практиковать свои навыки, чтоб выучить всё, чему учат в университете, за пару месяцев. Но я понимал, что как только это сделаю, смогу начать новую карьеру.

Как всё началось

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

Я познакомился с человеком, работающим в Google и спросил об его впечатлениях о компании. Я читал «How Google Works » и был уже неплохо знаком с организацией работы в этой компании.

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

Почему Google?

У Google очень высокая планка при найме сотрудников, они хотят нанимать только лучших, поэтому, если я хочу достичь высот (работать в Google, например), то я буду очень востребованным разработчиком, даже если мне не удастся пройти собеседование в эту компанию.

Чем больше я узнавал о Google, тем больше я хотел там работать.

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

На собеседовании уже давно не задают головоломки. Сегодня кандидатов отбирают по их умению писать код, по техническим знаниям и «гугловости». Это слово означает много чего, поверьте.

На пути к своей мечте в 2015 я посетил Googleplex в Маунтин-Вью, Калифорния. Эта поездка посеяла мысли в моей голове.

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

Помните о тренировочных заметках, которые мне дал мой знакомый, где указано, что мне стоит учить? Список казался вполне выполнимым даже несмотря на то, что я ничего из того, что было в этом списке, не знал. Все темы из заметок я выписал в учебный план и начал дополнять его перечнем YouTube видео и лекциями из MIT и UC Berkeley. Список начал расти.

Я опубликовал мой список на GitHub, так как мне нужно было сделать портфолио. Изначально, этот проект я назвал «Проект 9894». Google запустили 4 сентября 1998 года. Отсюда, собственно, и название. Чуть позже, я переименовал его в “Подготовка к интервью в Google ”.
Через какое-то время я добавил еще пару тем, которые мне были интересны и оказались полезными на моём пути.

Мой список летнего чтения и не только.

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

Мой маленький GitHub проект попал в ежедневный список трендов GitHub. Он был №1 в этом списке несколько дней.

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

Сейчас там более 21 000 оценок.
Я до сих пор не могу в это поверить.

А что, если я не получу работу?

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

Не учитесь так много, как я

Да, у меня это заняло всего 8 месяцев. Но я мог ещё сократить процесс. Как и со всем, что мы начинаем делать, имея большие планы и цели, я делал ошибки и тратил время впустую. Есть много вещей, которые бы я сделал иначе, будь у меня возможность!

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

Я потратил три недели, читая книгу по С++. Я не помню ни одной из 1000 страниц, но зато теперь знаю немного об этом языке. Так вышло, что во время интервью я использовал Python, а не С++. Мне казалось, что мне нужно знать С++, С или Java, но я ошибался. Нужно спрашивать, а не предполагать.

Я прочёл гораздо больше книг, чем мне нужно было. Мне понадобились знания только из трёх-четырёх книг. У меня был каталог из сотен алгоритмов для изучения, большинство из которых я даже не ожидал опробовать во время интервью. Не делайте то, что вам не нужно!

Набор алгоритмов, распечатанных для просмотра.

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

Распределенное повторение - ключ к запоминанию.

Когда вы что-то выучили, повторите это чуть позже, а потом снова, ещё чуть позже. С каждым повторением вы укрепляете свои знания. Трата десятков часов за раз на освоение чего-то одного не сделает вас экспертом. Им вы станете только после повторения через какое-то время. Если вы попробуете, то сами увидите, как придете к тому, что со временем перестанете забывать даже детали.

Чтоб легче было запоминать, я сделал 1 792 электронные карточки, на которых были разнообразные вопросы на многие темы. Я пересматривал их на моем телефоне или планшете каждый раз, когда у меня была свободная минутка. Повторение по карточкам и распределенное повторение идут нога в ногу. Если я правильно ответил на вопрос с карточки, то я всё равно не помечаю её как «выученную». Я оставляю её как есть и только когда отвечу на нее правильно много раз, тогда уже и помечу соответственно.

Моё чувство страха («А что, если они спросят меня о красно-чёрных деревьях?») заставило меня выучить гораздо больше тем, чем мне нужно было.
Но я не просто хотел подготовиться к интервью, я хотел подготовиться к карьере в Google, решая поистине большие проблемы. А это значит, что я должен знать алгоритмы, которые будут экономно расходовать вычислительные ресурсы.

Мне может никогда и не понадобиться алгоритм Форда - Фалкерсона (решает задачу нахождения максимального потока в транспортной сети - прим. переводчика), но приятно осознавать, что у меня есть эти знания на случай, если они понадобятся.

Заключение

С самого начала я, конечно же, хотел пропустить все обучение и просто побежать на интервью, и чтобы меня приняли, чтобы сразу же учить языки и осваивать инструменты, нужные команде, в которую я бы попал. Но на протяжении этих восьми месяцев я осознал, насколько же важны знания, которые я получил. И даже несмотря на то, что я не могу применять все приобретённые навыки каждый день, я все равно рад, что когда-то приложил усилия, чтобы выучить все это. У меня появилось новое понимание о работе компьютера, достижения в освоении этих знаний, в освоении структур данных и алгоритмов. Я знаю теперь, как они друг друга дополняют и как работает компьютер на низком уровне. Я прошел долгий путь - почти год.

У меня впереди потрясающее будущее.
Спасибо, что уделили время, на прочтение моей истории!

Перевод: Роман Мирзоян