Подготовка к интервью в Google. Неожиданные вопросы от Гугл. Пример нестандартной задачи от Google

Те, кто хотел бы работать в Google должны знать, что:

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

Хуже того, если вы подходите по всем этим параметрам, вам все равно надо проходить собеседование.

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

Позиция: Менеджер проекта

Ответ

Это один из вопросов, которые в Google спрашивают, чтобы посмотреть, каким образом соискатель ищет решение проблемы.

Читатель Мэт Бьючамп (Matt Beauchamp) нашёл хороший ответ:

Я представил стандартный школьный автобус шириной 8 футов, высотой 6 футов и длиной 20 футов - я знаю это из-за тысяч часов, проведённых в автобусе во время пробок.

Это значит 960 кубических футов, 1728 кубических дюймов в кубическом футе, а это значит около 1.6 миллионов кубических дюймов.

Я подсчитал, что объём мяча для гольфа около 2.5 кубических дюймов (4/3 * pi * .85), так как радиус мяча - .85 дюймов.

Разделив 1,6 миллиона на 2,5 кубических дюйма, мы получим 660 000 шаров. Однако, поскольку там есть еще сиденья и прочая ерунда, занимающая свободное место, а также сферическая форма мяча означает, что будет достаточно много свободного места между ними. Я уменьшил значение до 500 000 шаров.

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

Конечно, если бы мы говорили об автобусе, на котором ездил Джордж Буш в школу, это было бы половина… или 250 000 шаров.

Позиция: Менеджер проекта

Ответ

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

Позиция: Менеджер проекта

Ответ

Ответ на этот вопрос вызвал споры, но мы пришли к следующему решению:

  • Представьте, что есть 10 семей, у которых 10 детей. 5 были бы девочками, 5 - мальчиками (всего - 10)
  • 5 пар, у которых девочки, родят ещё пятерых. Половина (2.5) будут девочками. Половина (2.5) будут мальчиками. Добавляем 2,5 мальчика к уже имеющимся в наличии 5 и 2,5 девочки к остальным 5. (всего детей: 15, из которых 7.5 - мальчики и 7.5 - девочки)
  • Теперь 2,5 парам надо родить 2,5 ребёнка. Половина (1.25) будут мальчиками и половина (1.25) - девочками. Добавляем 1.25 мальчика к уже имеющимся 7.5 и 1.25 девочку к тем 7.5. (Всего детей: 17.5, из которых мальчиков 8.75 и девочек - 8.75)
  • Ну и так далее, придерживаясь принципа 50/50

Позиция: Менеджер проекта

Ответ

Мы бы ответили так: «В зависимости от количества. Если пианино надо настраивать раз в неделю, и это занимает один час, а настройщик работает 8 часов в день в течение 5 дней в неделю, то получается, что 40 пианино требуют настройки каждую неделю. Наш ответ: один для 40 пианино»

Позиция: Разработчик ПО

Ответ

Чтобы она не падала внутрь люка.

Позиция: Менеджер продукта

Ответ

Позиция: Менеджер продукта

Ответ

22 раза. Из WikiAnswers:

00:00
1:05
2:11
3:16
4:22
5:27
6:33
7:38
8:44
9:49
10:55
12:00
13:05
14:11
15:16
16:22
17:27
18:33
19:38
20:44
21:49
22:55

Объясните значение выражения “dead beef”

Позиция: Разработчик ПО

Ответ

Наш (неправильный) ответ: Кусок мяса (beef) уже не живой. Но это неправильно для разработчика.

Правильный ответ от читателя:

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

“0xDEADBEAF” (“dead beef”) использовался система IBM RS/6000, Mac OS на 32-битном процессоре PowerPC и Commodore Amiga в качестве волшебного значения для дебага. На Solaris от Sun Microsystem, это значение обозначало свободную память ядра. На OpenVMS, работающей на процессорах Alpha, DEAD_BEEF можно увидеть, нажав CTRL-T.

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

Позиция: Разработчик ПО

Ответ

Он застрял на бордюре. (Неприятно, правда?)

Вам надо проверить, правильно ли записан ваш телефон у Боба…

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

Позиция: Разработчик ПО

Ответ

Поскольку вы всего лишь «проверяете», попросите его позвонить в определённое время. Если он не сделает этого, значит у него нет вашего номера.

Слишком просто? Ответ от читателя: «В этом случае, надо использовать контрольную сумму. Пускай Боб сложит все числа вашего номера и напишет на листе результат, затем передаст вам обратно.»

Вы — капитан пиратского судна…

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

Позиция: Технический Менеджер

Ответ

Надо разделить добычу равномерно среди 51% от всей команды.

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

Позиция: Менеджер продукта

Ответ

Возьмите 6 из 8 мячей и положите по 3 на каждую сторону весов. Если тяжёлый мяч в этой группе шаров, у вас есть ещё 2, которые надо положить на весы и решить задачу. Если тяжёлый шар в первой группе из 6 шаров, берите 3, которые тяжелее. Из этих трёх два положите на весы. Если один перевесит — то вы его нашли. Если они весят одинаково, то значит ваш мяч — тот, который вы отложили.

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

Позиция: Менеджер продукта

Ответ

Наибольшее количество попыток - 14 раз.

Вместо того, чтобы разбивать этажи по 10, надо начать с 14-го, затем подняться на 13 этажей, затем на 12, затем на 11, затем 10, 9, 8, 7, 6, 5, 4 до тех пор, пока не дойдёте до 99-го. Если бы яйцо разбилось на 100-ом этаже, получилось бы 12 попыток (или 11, если вы предположите, что яйцо разобьётся на 100-ом этаже).

Предположим, для примера, что мы выяснили, что 49-ый — самый верхний этаж, где яйцо не разбилось, тогда наши попытки: 14-ый, 27-ой, 39-ый, 50-ый (яйцо разбилось на 50-ом этаже), плюс 40, 41, 42, 43, 44, 45, 46. 47, 48 и 49 этаж, всего 14 попыток.

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

Позиция: Менеджер продукта

Ответ

Основная цель здесь оценить возможность соискателя перевести сложную идею на простой язык. Вот наша попытка: «База Данных — это машина, которая помнит большое количество информации о разных штуках. Люди используют её, что вспомнить эту информацию. Пошли поиграем в футбол.»

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

Позиция: Менеджер продукта

Разработчик 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, вуху!

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

Между тем, указанные вопросы обращены в основном к таким способностям, как Вычисления и Абстрактная логика (если использовать терминологию методик интеллектуальной диагностики нашей лаборатории). Реальная бизнес-среда предъявляет требования в том числе к развитию Памяти, Эрудиции, Лексики, Обработки информации и Пространственного мышления - разумеется, в разной степени, однако в нашем тесте "Бизнес-IQ" они могут быть проанализированы внутри одного профиля респондента, а его задания перекликаются с методологией "Google", являясь отражением современной организационной действительности.

Редакция сайт

Если в России большинство соискателей хотели бы работать в "Газпроме", то в мире несколько лет подобный рейтинг возглавляет Google. Отбор новых сотрудников в инновационную компанию довольно жесткий; к интервью готовятся за несколько месяцев, как к сложнейшему экзамену.

Вот несколько фактов. Google предпочитает набирать работников среди выпускников восьми частных американских вузов ("Лиги плюща"): Браунского университета, Гарварда, Принстона, Пенсильванского университета, Дартмутского колледжа, Йельского университета, Колумбийского университета, Корнельского университета.

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

Ниже приводятся 15 вопросов, которые вы могли бы услышать, придя на собеседование в офис Google.

1. Сколько шариков для гольфа поместится в школьный автобус?

Это один из вопросов, которые задают в компании, чтобы посмотреть, каким образом соискатель ищет решение проблемы. Один из соискателей нашел хороший ответ: "Я представил стандартный школьный автобус шириной 8 футов, высотой 6 футов и длиной 20 футов: это примерные размеры, основанные на моих наблюдениях во время долгого стояния в пробках позади школьного автобуса. Это значит 960 кубических футов, 1728 кубических дюймов в кубическом футе, а это значит около 1,6 миллиона кубических дюймов. Я подсчитал, что объем мяча для гольфа около 2,5 кубического дюйма (4/3 * pi * 0.85), так как радиус мяча - 0,85 дюйма. Разделив 1,6 миллиона на 2,5 кубического дюйма, получится 660 тыс. шаров для гольфа. Однако, учитывая сиденья в автобусе и прочие вещи, занимающие свободное место, а также сферическую форма мяча, я предположил, что между ними будет достаточно много свободного места. И я округлил значение до 500 тыс. шаров".

2. За какую сумму денег вы помоете все окна в Сиэтле?

Позиция: менеджер по продукции

Это один из тех вопросов, где надо призвать на помощь смекалку и дать самый простой ответ. Мы бы ответили: "10$ за окно".

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

Позиция: менеджер по продукции

Ответ на этот вопрос вызвал оживленные дискуссии, в результате мы пришли к следующему решению. Представьте, что есть 10 семей, у которых 10 детей: 5 девочек, 5 мальчиков (всего – 10). Далее 5 пар, у которых девочки, родят еще пятерых детей. Половина (2,5) будут девочками, половина (2,5) - мальчиками. Добавляем 2,5 мальчика к уже рожденным 5 и 2,5 девочки к имеющимся 5 (всего детей 15, из которых 7,5 – мальчики и 7,5 – девочки). Теперь 2,5 парам, у которых девочки, надо родить 2,5 ребенка. Половина (1,25) будут мальчиками и половина (1,25) – девочками. Добавляем 1,25 мальчика к уже имеющимся 7,5 и 1,25 девочку к тем 7,5. (Всего детей 17,5, из которых мальчиков 8,75 и девочек – 8,75.) И так далее, придерживаясь принципа 50/50.

4. Сколько настройщиков пианино во всем мире?

Позиция: менеджер по продукции

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

5. Почему крышка люка круглая?

Позиция: разработчик ПО

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

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

Позиция: менеджер по продукции

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

7. Сколько раз за сутки стрелки часов совпадают в одном положении?

Позиция: менеджер по продукции

Ответ. 22 раза. Из WikiAnswers: 00:00, 1:05, 2:11, 3:16, 4:22, 5:27, 6:33, 7:38, 8:44, 9:49, 10:55, 12:00, 13:05, 14:11, 15:16, 16:22, 17:27, 18:33,19:38, 20:44, 21:49, 22:55

8. Объясните значение выражения Dead beef (дословно: мертвое мясо)

Позиция: разработчик ПО

Ответ. DEADBEEF - шестнадцатиричное значение, которое использовалось для дебаггинга во времена больших мейнфреймов, потому что этот маркер было очень легко найти в шестнадцатиричных дампах. Большинство людей с компьютерным образованием должны были видеть это как минимум на уроках изучения ассемблера, вот почему в Google ожидают, что разработчик ПО знает об этом. 0xDEADBEAF (dead beef) использовался системами IBM RS/6000, Mac OS на 32-битном процессоре PowerPC и Commodore Amiga в качестве волшебного значения для дебага. На Solaris от Sun Microsystem это обозначало свободную память ядра. На OpenVMS, работающей на процессорах Alpha, DEAD_BEEF можно увидеть, нажав CTRL-T.

9. Человек направил свой автомобиль на отель, но потерпел неудачу. Что случилось?

Позиция: разработчик ПО

Ответ. Он застрял на бордюре. (Неприятно, правда?)

10. Вам надо проверить, правильно ли записан и записан ли вообще ваш телефон у вашего приятеля Боба. Но вы не можете его спросить об этом прямо. Вам надо написать вопрос на бумажке и отдать Еве, которая отнесет ее Бобу, а потом принесет обратно ответ от него. Что вы должны написать на бумажке (прямой вопрос нельзя) так, чтобы Боб смог понять сообщение, а Ева не смогла бы узнать ваш номер телефона?

Позиция: разработчик ПО

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

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

Позиция: технический менеджер

Ответ. Надо разделить награбленное поровну между 51% всей команды.

12. У вас есть 8 шаров одинакового размера. 7 из них одинакового веса, а один весит чуть больше остальных. Найдите мяч, который тяжелее остальных, используя весы, показывающие баланс, и только два взвешивания?

Позиция: менеджер по продукции

Ответ. Возьмите 6 из 8 мячей и положите по 3 на каждую сторону весов. Если тяжелый мяч не в этой группе шаров, у вас есть еще 2, которые надо положить на весы и решить задачу. Если тяжелый шар в первой группе из 6 шаров, берите 3, которые перевесили во время первого взвешивания. Из этих трех два положите на чаши весов. Если один перевесит, то вы его нашли. Если же они весят одинаково, то значит ваш мяч - тот, который вы отложили.

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

Позиция: менеджер по продукции

Ответ: Наибольшее количество попыток – 14 раз. Вместо того чтобы разбивать этажи по 10, надо начать с 14-го, затем подняться еще на 13 этажей, затем на 12, затем на 11, затем 10, 9, 8, 7, 6, 5, 4, до тех пор пока не дойдете до 99-го. Если бы яйцо разбилось на 100-м этаже, получилось бы 12 попыток (или 11, если вы предположите, что яйцо разобьется на 100-м этаже). Предположим, для примера, что мы выяснили, что 49-й - самый высокий этаж, где яйцо не разбилось, тогда наши попытки: 14-й, 27-й, 39-й, 50-й (яйцо разбилось на 50-м этаже) плюс 40, 41, 42, 43, 44, 45, 46, 47, 48 и 49 этаж - всего 14 попыток.

14. Объясните, что такое база данных в трех предложениях, чтобы понял ваш 8-летний племянник

Позиция: менеджер по продукции

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

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

Позиция: менеджер по продукции

Ответ. Этот вопрос оценивает креативность соискателя. Мы бы попробовали сломать электромотор.

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

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

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

Заключение

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

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

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