Как проходит собеседование в Google. Ничего себе. Как подготовиться к собеседованию в Google и не пройти его. Дважды

В этой статье рассказано о том, как один разработчик учился в течение 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, решая поистине большие проблемы. А это значит, что я должен знать алгоритмы, которые будут экономно расходовать вычислительные ресурсы.

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

Заключение

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

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

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

Вот некоторые вопросы, которые задают при собеседовании в Microsoft и Google.

1. Как сделать так, чтобы разрезать прямоугольный торт на два равных куска, если из него кто-то вырезал прямоугольный кусок?

2. Вас уменьшили до размера монеты и вы попали в блендер. Ваша масса уменьшилась таким образом, что ваша плотность осталась прежней. Лопасти блендера закрутятся через 60 секунд. Что вы будете делать для того, чтобы остаться в живых?
{Позиция: Менеджер продукта}.

3. Вы сидите в автомобиле. В салоне находится воздушный шар, наполненный гелием, привязанный на веревочке. В машине закрыты все окна. Что произойдет с шариком, если нажать на педаль газа:
- он качнется вперед,
- он качнется назад,
- он останется неподвижным?
{Позиция: Менеджер продукта}.


Ответы на вопросы:

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

Поскольку разрез проходит через центры обоих прямоугольников, площадь двух кусков будет такова: половина площади торта минус половина площади вырезанного из торта куска. Другими словами, площадь двух кусков будет одинаковой. Это будет верным, несмотря на то, что форма кусков может быть различной.
Альтернативное решение — резать торт не вертикально, а горизонтально, чтобы получить куски, толщина которых будет в два раза меньше, чем у целого торта, и в каждом не будет хватать одинакового по форме и площади куска.

2. Здесь важнее не сам ответ, а то, как соискатель обдумывает и обосновывает самые популярные ответы:
1) лежать под лезвиями
2) стоять вплотную к стенке блендера
3) держаться в середине между лезвиями...
4) ещё один условно "правильный" ответ - зацепка "ваша плотность осталась прежней". Ваши мышцы станут гораздо меньше, но ваш вес станет намного меньше. Вы сможете просто выпрыгнуть из блендера. Как блоха.

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

Другие вопросы:

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

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

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

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

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

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

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

Зачем нужны такие вопросы?

Для каждого задаваемого вопроса существует три ключевых фактора:
1. Как кандидат обосновывает решение или логически рассуждает при ответе.
2. Насколько ясно кандидат излагает свои мысли.
3. Насколько ответ соответствует вопросу и как он классифицируется.

Пояснения HR из Microsoft:
1. Мы можем понять, каким образом возникает у кандидата ответ на заданный вопрос, или набор вопросов. Когда кандидат отвечает на вопрос, его ответ рассказывает очень полно и подробно о том, что за человек, и полностью характеризует его образ мышления.
Этот метод анализа мотивировки ответов дает возможность выявить ключевые характеристики кандидата.

2. Способен ли кандидат к мышлению по аналогии? Только 15% населения способны думать аналогиями и/или понимать аналогии. 10% из этих 15% способны сразу же получить аналогию из вопроса типа "Как Вы опишите базу данных для вашего...." - это требует мышления аналогиями.
Мы также смотрим, насколько качественно был сообщен ответ. Из одних приходится вытаскивать ответ клещами, другие способны всё объяснить на пальцах.
Также - насколько уверен в своем ответе кандидат, демонстрирует ли он железную уверенностью, или отвечает с дрожью в коленях.
Очевидно, можно найти еще много интересующих нас вещей в том, как это было сообщено. Тон, дикция, представление. И т.д.

3. Насколько ответ соответствует той позиции, которую Вы желаете занять? Если Вы ищете место в отделе Маркетинга, Ваши ответы должны продемонстрировать имеющиеся способности в маркетинге в рамках этих трудных и неоднозначных вопросов.
Если Вы претендуете на вакансию программиста, Вы также должны увязывать свои ответы с тем что эта позиция предполагает, это показывает, что Вы думаете о требованиях, которые предъявляются к человеку на этой позиции.
Кроме того, как тот ответ классифицируется? Неопределенный, Детальный, Сверхдетальный, Творческий, Нетворческий. И т.д. Часто, мы назначаем три категории на специфический ответ. Если Вы слишком неопределенны, или слишком детальный - Вы пропустили пункт вопроса.

  • Перевод

«Диагноз - не конец, а начало дела».
Мартин Х. Фишер.

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

Для ясности: я начал заниматься программированием 37 лет назад (мне тогда было 11 лет) и постоянно занимаюсь этим. Кроме того, 24 года назад (мне было 24) я был назначен директором по исследованиям и развитию ; с тех пор среди многих других работ мною были проведены НИОКР по наиболее ответственным частям проектов TWD - все они поставляются, как коммерческие продукты:

Обновление: журнал «Business Insider» опубликовал эту историю (25 000 прочтений на настоящий момент).

Обновление: LinkedIn отцензурировал эту историю (опубликованную тремя разными людьми), и все поддерживающие комментарии были написаны техническими специалистами (я не знаю большинства из них).

Обновление: пост в блоге сотрудника Google , успешно размещённый на LinkedIn и использующий несвязный «мусорный» лексикон (очевидно, нацеленный на ассоциации оскорбительных слов с моим именем в поисковых системах), был написан кем-то, кто выглядит как подставное лицо (оранжевым подчёркнут текст, работающий на Гугл, красным - бессвязные злобные выражения):

Профиль в LinkedIn для Марсии Пинейро показывает, что она работает в… Гугл. Если это - реальный человек (она же имеет 3 аккаунта ), то мне грустно за неё - ей приходится поливать грязью людей, чтобы зарабатывать себе на жизнь. Если Гугл действительно нанял её (или «его», спрятанного за фальшивой личностью), то это великолепный способ оставить за собой последнее слово. Гугл придерживается проповедуемого им принципа «Не делай зла» ?

Обновление: LinkedIn, в конце концов, разместил мой пост, хотя и без комментариев читателей и с задержкой в 12 часов. Три других поста, написанных техническими специалистами, которые послали мне подтверждение просмотра, оказались не столь удачливыми.

Обновление: журнал «Business Insider» опубликовал (очень хорошую) статью, рассматривающую впечатляющие провалы Гугл с наймом персонала и содержащую интересное понимание проблем опытными техническими специалистами. Очень рекомендую прочитать (даже сотрудникам Гугл).

Теги:

  • найм персонала
  • Гугл
  • собеседование
  • вопросы на собеседовании
Добавить метки

Разработчик G-WAN.

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

Сначала небольшое отступление обо мне: я программирую 37 лет (начиная с 11-летнего возраста), в 24 года был назначен R&D директором и участвовал в создании самых ответственных частей следующих проектов:

  • Global-Wan (распределенный VPN, работающий на уровне ядра и использующий наше собственное пост-квантовое шифрование);
  • G-Wan (весящий 200 КБ сервер приложений, поддерживающий 17 языков программирования - C/C++, C#, Objective-C, Java, Go, PHP и другие);
  • Remote-Anything (патентованное решение для управления сетью предприятия, было продано 280 миллионов копий).

Представитель Google заявил, что от претендента требуются навыки и кодинга, и управления (редкое сочетание). Но опыта в 40 и 20 лет соответственно оказалось недостаточно - ведь я не сумел дать «правильные ответы». Может, Google слишком задирает планку? Или их HR не обладают навыками, необходимыми для грамотной оценки способностей претендентов? Сейчас увидите сами.

Собеседование

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

Какая функция в С противоположна функции malloc()?

Мой ответ:
free() .
Рекрутер:
Верно.

Вот он - тот самый редкий момент, когда ты гордишься тем, что 35 лет программируешь на языке, существующем 40 лет.

Какая функция в Unix позволяет сокету принимать соединения?

Мой ответ:
listen() .
Рекрутер:
Верно.

Как много байт требуется для хранения MAC-адреса?

Мой ответ:
6.
Рекрутер:
Верно.

У меня уже есть медаль в номинации «Ethernet»?

Отсортируйте по требуемому времени: чтение регистра CPU, обращение к диску, переключение контекста, чтение системной памяти.

Мой ответ:
Чтение регистра CPU, чтение системной памяти, переключение контекста, обращение к диску.
Рекрутер:
Верно.

Типичная университетская лекция по Computer Science за 1 курс.

Что такое индексный дескриптор в Linux?

Мой ответ:
Уникальный файловый идентификатор для любой файловой системы.
Рекрутер:
Нет, это метаданные файла.
Я:
Индексный дескриптор - это индекс, идентифицирующий файл в файловой системе. Из него можно вычленить атрибуты файла - размер, время, владелец, права. В некоторых файловых системах даже можно добавлять собственные атрибуты
Рекрутер:
Нет, это не «атрибуты», а «метаданные».

«Метаданные» - это ведь куда информативнее, чем «атрибуты», правда?

Какая функция в Linux принимает путь и возвращает файловый идентификатор?

Мой ответ:
Я написал свой LIBC для нашего сервера приложений, но не помню ни одного системного вызова, который бы возвращал файловый идентификатор.
Рекрутер:
stat() .
Я:
stat() , fstat() , lstat() , fstatat() - все они возвращают код ошибки, но не файловый идентификатор. Эти функции заполняют статическую структуру, содержащую обсужденные ранее атрибуты файла, а не только файловый индентификатор.
Рекрутер:
Это не ответ. Файловый идентификатор содержит все метаданные.

В Google что, тайно лицензировали мерзкого бота Tay от Microsoft?

Какое имя имеет сигнал KILL ?

Мой ответ:
SIGKILL , значение его #define - 9 .
Рекрутер:
Нет, это TERMINATE .
Я: SIGTERM (15) и KILL (9) - это разные понятия.
Рекрутер:
У меня в бумагах записан не такой ответ.

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

Почему быстрая сортировка - лучший метод сортировки?

Мой ответ:
Это не всегда так, иногда он вообще не подходит.
Рекрутер:
У быстрой сортировки лучшее время исполнения (временная сложность, или коэффициент O).
Я:
Временная сложность игнорирует латентность хранения данных, топологию, объем доступной памяти и даже вычислительные затраты процессора на каждую команду - она просто подсчитывает число алгоритмических операций! Этот коэффициент - полезный показатель при разработке алгоритма, но все равно эффективность и масштабируемость решения сильно зависит от конкретных ограничений конкретной проблемы и окружающей среды.
Рекрутер:
Неверно, нужно было просто сказать, какой коэффициент O у быстрой сортировки.

Когда медицинская страховка начнет покрывать ущерб, причиненный психическому здоровью? Ядро Linux (к которому так трепетно относится Google) предпочло пирамидальную сортировку быстрой ради меньшнего потребления памяти и меньшего времени на выполнение.

Дан массив из 10000 16-битных значений, каков наиболее эффективный способ подсчитать биты?

Мой ответ:
Сдвинуть биты вправо по 64-битным словам - все по заветам Кернигана.
Рекрутер:
Нет.
Я:
Есть и более быстрые способы обработки 64-битных слов с применением масок, но по телефону я объяснить их не смогу, нужно писать код.
Рекрутер:
Верный ответ - использовать таблицу соответствий и просуммировать результаты.
Я:
Это на каком виде CPU? А давайте проведем бенчмарки вашего и моего кода?
Рекрутер:
Это не входит в задачи теста.
Я:
А что в них входит?
Рекрутер:
Проверить, насколько хорошо вы знаете правильные ответы .

Долго еще будет продолжаться этот бред? Поиск по 8-битной таблице соответствий будет обрабатывать байты один за другим, а вот метод 64-битных масок будет обрабатывать 8-байтовые слова одновременно (а современные процессоры даже смогут обрабатывать 128-битные слова с десятикратным приростом скорости). Поиск по 64-битной таблице соответствий пока что находится за гранью способностей современных компьютеров - так что сразу понятно, что будет быстрее.

Какой тип пакетов требуется для установления TCP-соединения?

Я:
В шестнадцатиричном виде - 0x02 , 0x12 , 0x10 , а словами - «синхронизация» («synchronize») и «подтверждение» («acknowledge»).
Рекрутер:
Неверно, это SYN , SYN-ACK и ACK . Если Google вдруг упадет, вам потребуется это знание, чтобы понять, в чем проблема. На этом мы можем закончить - очевидно, что вы не обладаете достаточными умениями, чтобы писать и поддерживать приложения для работы с сетями. Если вы хотите позже пройти собеседование еще раз - вам стоит почитать о функциях Linux, о принципах работы TCP/IP и о том, что означает коэффициент О. Всего хорошего, до свидания.

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

Я набрал целых 4 балла из 10, это мой лучший результат у Google, вуху!

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

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

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

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

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

Однако через неделю мне написали, что этот этап я тоже прошел, и меня ждут сразу 4 интервью. Кстати, позиция была открыта в Дублине, поэтому мне были готовы оплатить билеты, проживание. Однако, не готовы были помочь с визой. К сожалению, карточки ВНЖ у меня к тому времени не было (ее и сейчас не сделали, провал полный). Т.е. пришлось проходить эти интервью по хэнгаутс, аналогу скайпа от гугла.

Дали около недели на подготовку. Заслали материалы. Я прочитал книжку «Работа рулит» от Ласло Бока, директора по кадрам в гугле. Очень интересно написано. И я лучше понимал, что такое гугл и чего ждать на собеседованиях 🙂 Пока готовился, как-то свыкся с мыслью, что я уже там.

Уже готов был прямо переезжать, изучил все об Ирландии, чуть ли ирландский язык не выучил 🙂

Кстати, в этом этапе 4 собеседования.

Первое - на так называемую гугловость. Они это объясняют так, что хотят только тех людей, которые подойдут им в культурном плане. Почитав об этом я понял, что, пожалуй, основным качеством, которое они ищут является понятие «intellectual humility», которого в русском даже нет. Это такая способность сомневаться в своих знаниях и догмах. Т.е. им совершенно не нужен человек, который знает «абсолютно лучший способ сделать котлетки», им нужен человек, который будет активно пробовать делать котлетки и совершать ошибки, пока не найдет самый подходящий способ. Говорят, на этом горят очень много народу, которые где-то в универе научились делать одну вещь хорошо и будут ее задрачивать до посинения.

Второе - на лидерство. Да-да, на каждой, даже самой простой позиции им нужен человек-лидер. Но есть одно но. Им не нужен человек, который будет командовать 100% времени. Нужен «ситуационный лидер», т.е. который сегодня все берет в свои руки, а завтра отдает пальму первенства другому, потому что считает, что завтра кто-то справится лучше.

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

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

Итак, как это все прошло. Каждое собеседование длилось по 45 минут.

Первым было лидерство. На нем меня спрашивали вопросы типа «дайте пример того, как вы справились на работе с тем, что кто-то вам не нравился». Было достаточно просто, т.к. я отвечал честно и на реальных примерах из жизни.

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

Третье было о технической части. На нем было реально мало прямых технических вопросов. Скорее опять вопросы типа «а что бы вы сделали в такой-то ситуации». Должен отметить, что это часть была довольно скучной, а, может быть, просто начал уставать.

Последнее было как раз о том, насколько я умный. И оно началось сразу неожиданно - пошли вопросы, в основном, на тему продукт-менеджерства. Типа, представить себе продукт, который мне не нравится. Встать на место менеджера продукта и описать шаги, как сделать его лучше. Как собирать отзывы, на что тратить больше ресурсов и т.д. Короче, вопросы были совершенно неожиданны. Что странно, в книге про собеседования написано, что основной задачей интервьюера является не найти ваши слабые стороны, а помочь с сильными. Т.е. если вы «неправильно» отвечаете, он будет пытаться вас отвести в правильное направление. Однако в этом случае этого не происходило, хотя я даже сам пытался перевести тему или спросить подсказки 🙁 В общем, уже во время самого интервью понял, что вот от этого человека вряд ли будет позитивный фидбек.

Что интересно, первые два интервью (гугловость и лидерство) проводил человек на реально высокой должности, технику - ваш прямой коллега, а ум - менеджер команды.

Дальше все интервьюеры должны написать отзыв и послать их на комиссию. Комиссия - это такие опытные тридцатилетние деды и бабки, которые просматривают фидбек и решают, брать или не брать. Именно поэтому каждый интервьюер вечно что-то печатает и почти на вас не смотрит. Это, конечно, печалька. Хорошая новость - комиссия достаточно опытна, чтобы не обращать внимания на «ковырялся в носу, очень плохой кандидат». Но она так же не будет обращать внимания на «отлично знает сиплюсплюс, великолепный малый», если этот сиплюсплюс вообще на этой позиции не нужен. Вообще, в книге сказано, что все десять кругов ада созданы для того, чтобы в гугле не оказалось хоть немного «не тех» людей. Т.е. если вас берут - почти гарантированно вы не будете самым умным.

Здесь я достаточно долго ждал отзывов. Позвонили через пару недель, и без особых деталей сказали, что дальше я не прошел 🙁 Мне пришлось копать, сказали, что получил нейтральную (читай «не позитивную») оценку по технике и по умственным способностям, поэтому дальше я не иду. Имею права подаваться на любую другую позицию сразу же. Если бы был хоть один негативный фидбек - мог бы подаваться только через год.

Какие выводы?

  1. Подготовка решает. Я проделал большую домашнюю работу и это помогло. Провалился я там, где или не угадал, или не мог угадать, к чему готовиться.
  2. Когда пытаешься пройти в такие компании, сильно привязываешься. Как я сказал, в голове я уже в Дублин переехал. Не знаю, плохо это или хорошо. Мне не мешало, но будьте готовы.
  3. Сильно повышается самооценка. Когда прошел даже 60-70% пути, чувствуешь силу своих возможностей. Многим даже не ответят на резюме.
  4. Я понял, что мне все еще хочется пожить в англоговорящей стране. Это сильно меня мотивировало.
  5. По возможности собеседоваться стоит лично, на месте. Я уверен, что мог бы перевести последнее собеседование в русло, которое было бы удобно мне, если бы сидел с реальным человеком, а не экраном.
  6. Чем сложнее процесс выбора, тем больше гарантия того, что вокруг вас на работе будет мало идиотов. Поэтому если видите сложный корпоративный процесс собеседований - это к лучшему.
  7. Такие собеседования заставляют пересмотреть ваше сегодняшнее положение дел. Вы устраиваете гугл в плане лидерства, а на вашей работе вам хер че доверят? Стоит задуматься. Вас пытаются заполучить большие компании, а сейчас вам платят мало со словами «больше не можем»? Опять же, задумайтесь почему.
  8. Отдельная история, это, конечно, как себя ведут эйчары. Когда у вас хорошие шансы пройти (читай «когда эйчар имеет большую возможность получить за вас комиссию») - вам быстро отвечают, готовы со всем помочь. Когда вы где-то провалились - все резко меняется. Отвечают медленно, не вдаются в подробности, все нужно вытягивать. Ну а что самое интересное - вот уже прошло месяца 3, а мне больше никто ни разу не написал. Неужели нет более подходящей позиции судя по фидбеку? Им же виднее то, в чем я хорош, тем более можно сэкономить кучу времени. Хз.

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