- Пройдите собеседование в Google, выбрав нужный язык
- Обзор собеседований Google
- В чем уникальность собеседований Google?
- Что Google ищет в кандидате?
- Шаг 1: перед собеседованием
- Шаг 2. Предварительный просмотр с сотрудником Google
- Собеседования на месте
- Предложение/нет предложения
- Продолжайте практиковать свой предпочитаемый язык.
- 15 самых популярных вопросов на собеседовании по кодированию в Google
- План подготовки на 12 недель
- Советы по отработке задач программирования
- Чего ожидать из поведенческого интервью Google
- Как подготовиться к поведенческим интервью
- 10 распространенных поведенческих вопросов на собеседовании
- Продолжить чтение о подготовке к собеседованию
Серия интервью по кодированию в Google
-
Полное руководство по подготовке к процессу собеседования
-
Объяснение основных вопросов по кодированию в Google
Прохождение собеседования в Google — мечта любого разработчика программного обеспечения. Это интервью является окончательным испытанием вашего технического мастерства и требует не удач или ярлыков, но тяжелую работу и подготовки. К счастью, Google очень прозрачно выражает свои ожидания от кандидатов. Чем больше вы знаете о процессах и корпоративной культуре Google, тем больше у вас шансов на успех. Итак, сегодня мы глубоко погрузимся в процесс их собеседования по программированию и поведению, чтобы показать вам, как его взломать.
Сегодня мы рассмотрим следующее:
- Обзор интервью и часто задаваемые вопросы
- Процесс собеседования в Google
- Руководство по вопросам собеседования по кодированию
- Руководство по вопросам поведенческого интервью
- Руководство по ресурсам
Пройдите собеседование в Google, выбрав нужный язык
Практикуйте десятки практических вопросы собеседования на предпочитаемом вами языке.
C ++, Java, JS или Python

Обзор собеседований Google
Весь процесс собеседования занимает от 2 до 2,5 месяцев. Интервью Google для разработчиков программного обеспечения состоит из 5-7 собеседований. Это включает в себя первый экран телефона с рекрутером Google, за которым следует от 4 до 6 собеседований на месте с различными сотрудниками Google. Все задачи по кодированию выполняются на доске, в Документах Google или на Chromebook.
Google обычно нанимает сотрудников на уровне T3, где T11 является высотой уровней. T3 — инженер-программист начального уровня, работающий полный рабочий день, со степенью бакалавра или магистра. Средняя зарплата сотрудника T3 составляет 117 000 долларов в год. Google предпочитает следующие языки программирования: Java, C ++, C Go и Python.

Есть три типа проблем с кодированием, которые вы можете ожидать увидеть в интервью Google..
-
Вопросы по проектированию системы: эти вопросы позволяют оценить вашу способность управлять высокоуровневым проектированием системы с учетом масштабируемости.
-
Проблемы собеседования по программированию: эти вопросы позволяют оценить ваши знания структур данных и алгоритмов для оптимизации решения общих проблем.
-
Общие вопросы анализа: эти вопросы позволяют оценить ваш мыслительный процесс с помощью математических вопросов или вопросов, основанных на мнении
В чем уникальность собеседований Google?
Хотя собеседования по кодированию в Google похожи на собеседования в других крупных технологических компаниях, есть некоторые уникальные аспекты их процесс. Итак, в чем разница?
Ясные ожидания: Google не стесняется своего собеседования, поэтому можно не гадать, когда дело касается подготовки или ожиданий. Google предоставляет всю подробную информацию о том, чего ожидать на своей странице «Карьера».
Кодирование в Google Docs: Во время первого экрана телефона вы должны будете код в Google Документах. Важно научиться правильно писать код на этой платформе, так как это может потребовать некоторой практики. Прочтите здесь, как настроить Документы Google для технического собеседования.
Комитет по найму: Google стремится беспристрастно проверять кандидатов, поэтому они используют комитет по найму для всех кандидатов.
Шкала оценок: каждый интервьюер оценивается по шкале от 1 до 4 на основе четырех критериев приема на работу, где 3 — пороговое значение для найма по сравнению с отсутствием нанять.
Четыре критерия приема на работу: Google фокусируется на когнитивных способностях, «гуглости», лидерских и технических навыках в процессе рассмотрения своих кандидатов. Давайте разберем это в следующем разделе.
Что Google ищет в кандидате?
Когнитивные способности. Общие когнитивные способности связаны с вашими навыками решения проблем, абстрактным мышлением, любопытством и т. д. и готовность учиться. Google ищет умных людей, которые могут комплексно думать о себе, своей команде и своих проектах.
Googleyness. Как и все организации, Google имеет особую корпоративную культуру, и они ищут кандидатов, которые хорошо согласуются с их ценностями. Основное внимание Google уделяет людям; они заботятся об инклюзивности и улучшении жизни человека, оставаясь при этом этичными. Google известен своими небольшими командами и непринужденной обстановкой, способствующей творчеству, инновациям и открытому общению.
Лидерские навыки. Google нанимает кандидатов с новыми лидерскими качествами. Для Google лидерство — это способность решать сложные проблемы, когда в вас есть необходимость, при этом обеспечивая соблюдение этических норм и правил безопасности. Google также ищет тех, кто дает другим возможность самоорганизовываться и способствовать открытому общению.
Технические навыки. Google нанимает кандидатов с самыми сильными способностями к программированию, и они оценивают технические навыки главным образом на основе концептуального понимания, а не запоминания. Они оценивают навыки программирования по следующим темам:
- Алгоритмы
- Сортировка
- Структуры данных
- Графики
- Рекурсия
- Объектно-ориентированное программирование
- Нотация Big-O
- API
- Как проверить свой код
- Математика (, например программы n-select-k )

Шаг 1: перед собеседованием
Подготовка. Подготовка к собеседованию по кодированию — длительный процесс. Я рекомендую подготовиться за три месяца вперед. Вам нужен план подготовки, чтобы не сбиться с пути. Взгляните на наш трехмесячный учебный курс по подготовке к собеседованию по программированию, чтобы узнать о плане, созданном настоящими менеджерами по найму. Обязательно используйте язык, который предпочитает Google, например C ++, Java, Python, Go или C.
Обновите свое резюме. Ваше резюме должно быть привлечь внимание рекрутера Google за шесть секунд или меньше . Одна из наиболее частых причин, по которой талантливые соискатели не проходят собеседование, — это плохо составленное резюме. Потратьте некоторое время на обновление своего резюме.
Если ваше резюме прошло проверку, они назначат звонок, чтобы узнать больше о ваших навыках и опыте. Пройдет примерно неделя, прежде чем вы получите известие от рекрутера.
Совет от профессионалов: используйте описание на основе показателей. Попробуйте использовать формулу «Выполнено X, измеряемое Y при выполнении Z».
Например: если в вашем резюме указано: «Уменьшено время ответа на запрос сервера».
перефразируйте это как
«Уменьшение времени ответа на запрос сервера на 15 процентов за счет реструктуризации нашего API».

Шаг 2. Предварительный просмотр с сотрудником Google
Экран вашего телефона прослужит от 45 до 60 минут, вероятно, в Google Hangouts. Сотрудник Google проверит вас с помощью вопросов по кодированию, связанных со структурами данных и алгоритмами. Вы решите их в Google Doc, используя около 20-30 строк кода.
Важно передавать свой мыслительный процесс во время работы; именно так они оценивают ваши общие когнитивные способности.
Вы можете ожидать, что вызов программирования будет открытым. Задавать дополнительные вопросы для уточнения — отличный способ продемонстрировать навыки решения проблем.. Если вы закончите до истечения времени, поищите способы оптимизации и проверьте наличие ошибок. Всегда учитывайте угловые и крайние случаи.
Чтобы получить советы по телефонным интервью, ознакомьтесь с этим руководством по телефонным интервью для разработчиков программного обеспечения.
Собеседования на месте
Если вы пройдете предварительную проверку, вас пригласят на собеседование на месте. Вы встретитесь с 4-6 сотрудниками Google по 45 минут каждый.
Эти собеседования на месте будут в значительной степени сосредоточены на программировании с упором на структуры данных и алгоритмы. Вы будете писать код либо на доске, либо на Chromebook, который вам предоставят. Рекомендуется заранее спросить рекрутера, чтобы вы могли правильно попрактиковаться.
На собеседовании на месте также есть вопросы поведенческого собеседования, чтобы оценить, кем вы являетесь как потенциальный сотрудник. Google хочет убедиться, что вы соответствуете ценностям их компании, поэтому обязательно подготовьтесь к поведенческим собеседованиям. Мы обсудим это позже.

Предложение/нет предложения
Вы получите оценку по шкале от 1 до 4, где 3 — порог наем или без найма. После завершения собеседования отзывы будут отправлены в комитет по найму для принятия окончательного решения. Этот процесс может занять несколько недель, и если прошло слишком много времени, можно отправить дружеское электронное письмо.
Если вы получите предложение, будьте готовы обсудить зарплату и дату начала, так что это хорошая идея, чтобы освежить навыки ведения переговоров. Если вы не получите предложение, вам, возможно, придется подождать шесть месяцев, чтобы подать повторную заявку, что дает вам достаточно времени, чтобы подготовиться и изучить свои слабые места.
Продолжайте практиковать свой предпочитаемый язык.
Овладение выбранным вами языком необходимо для успешного ответа на вопросы Google на собеседовании. Программа Educative’s Paths предлагает множество практических задач в браузере, которые помогут отточить ваши навыки программирования.
C ++, Java, JS или Python

Практика написания вопросов требует много времени, усилий и внимания. Давайте разберем основные вопросы по программированию в Google, а также дадим практические советы для подготовки.
Мы выделим 15 основных вопросов по кодированию, чтобы вы познакомились с типами вопросов, которые от вас ждут. Чтобы увидеть подробные ответы, ознакомьтесь со второй частью этой серии, Вопросы на собеседовании по кодированию в Google: объяснение 18 основных вопросов.
15 самых популярных вопросов на собеседовании по кодированию в Google
Найдите k-й по величине элемент в числовом потоке
Постановка задачи: спроектируйте класс для эффективного поиска K-го по величине элемента в числовом потоке. Класс должен иметь следующие две вещи:
-
Конструктор класса должен принимать целочисленный массив, содержащий начальные числа из потока и целое число ‘K ‘.
-
Класс должен предоставлять функцию add (int num), которая сохранит заданное число и вернет K-е наибольшее число.
Найти «k» ближайших чисел
Постановка задачи: учитывая отсортированный числовой массив и два целых числа «K» и «X», найдите «K» ближайших чисел к «X» в массиве. Вернуть числа в отсортированном порядке. «X» не обязательно присутствует в массиве.
Удалить узел с заданным ключом
Формулировка проблемы: вам дается глава связанного списка и ключ. Вы должны удалить узел, содержащий данный ключ.
Копировать связанный список с произвольным указателем
Формулировка проблемы: вам дан связанный список, в котором узел имеет два указателя. Первый — это обычный указатель «следующий». Второй указатель называется «произвольный_поинтер», и он может указывать на любой узел в связанном списке.
Ваша задача — написать код для создания полной копии данного связанного списка. Здесь глубокое копирование означает, что любые операции с исходным списком (вставка, изменение и удаление) не должны влиять на скопированный список.
Зеркальное отражение двоичных деревьев
Формулировка проблемы: учитывая корневой узел двоичного дерева, поменяйте местами «левые» и «правые» дочерние элементы для каждого узла.
Найти все пути для суммы
Постановка задачи: для двоичного дерева и числа ‘S’ найти все пути от корня к листу такие, что сумма всех значений узлов каждого пути равна ‘S’.
Самая длинная подстрока, содержащая не более ‘k’ различных символов
Формулировка проблемы: для данной строки найдите в ней длину самой длинной подстроки, содержащей не более K различных символов.
Самая длинная подстрока без повторяющихся символов
Формулировка проблемы: для данной строки найдите, можно ли переставить ее буквы таким образом, чтобы два одинаковых символа не шли рядом друг с другом..
Разделение суммы равных подмножеств
Постановка задачи: учитывая набор положительных чисел, найдите, можем ли мы разделите его на два подмножества так, чтобы сумма элементов в обоих подмножествах была равной.
Определите, является ли число действительным
Формулировка проблемы: учитывая входную строку, определите, является ли она действительным числом или нет. Для простоты предположим, что во входных данных нет пробелов.
Печать сбалансированных комбинаций скобок
Постановка задачи: выведите все комбинации фигурных скобок для заданного значения ‘N’, чтобы они были сбалансированы.
Учитывая количество задач, определите, могут ли они все быть запланированным
Формулировка проблемы: Есть ‘N’ задач, помеченных от ‘0’ до ‘N-1’. Каждая задача может иметь несколько предварительных задач, которые необходимо выполнить, прежде чем ее можно будет запланировать. Учитывая количество задач и список пар предварительных требований, выясните, можно ли запланировать все задачи.
Реализовать кеш LRU
Формулировка проблемы: Наименее недавно использовавшиеся (LRU) это распространенная стратегия кэширования. Он определяет политику удаления элементов из кеша, чтобы освободить место для новых элементов, когда кеш заполнен, что означает, что сначала отбрасываются наименее использованные элементы.
Найдите верхний и нижний индекс.
Постановка задачи: учитывая отсортированный массив целых чисел, вернуть нижний и верхний индекс данного ключа. Вернуть -1, если не найден. Длина массива может составлять миллионы со множеством дубликатов.
Объединить перекрывающиеся интервалы
Постановка проблемы: Вам предоставляется массив (список) пар интервалов в качестве входных данных, где каждый интервал имеет отметку времени начала и окончания. Входной массив сортируется по начальным отметкам времени. Вам необходимо объединить перекрывающиеся интервалы и вернуть выходной массив (список).
Нравится статья? Прокрутите вниз до подпишитесь на нашу бесплатную новостную рассылку два раза в месяц.

План подготовки на 12 недель
Подготовка к собеседование по кодированию в Google является стратегическим. Чтобы усвоить правильные концепции и развить уверенность, требуются месяцы подготовки и практики. Давайте посмотрим на окончательный 12-недельный план подготовки, который помог кандидатам найти работу в крупных компаниях.
Неделя 0. Выберите язык программирования на основе ожиданий Google и ваши предпочтения.
Неделя 1. Изучите основы вашего языка программирования.. Если вы освежите в памяти основы, у вас меньше шансов споткнуться во время собеседования. Просмотрите такие концепции, как чтение ввода с консоли; как объявлять и использовать 2D-массивы.
Неделя 2 и 3. Ознакомьтесь со структурами данных и алгоритмами. Они необходимы для написания кода интервью с Google.
Структуры данных, которые вы должны знать:
- Массивы
- Связанные списки
- Стеки
- Очереди
- Деревья
- Графики
- Кучи
- Хеш-наборы
- Хеш-карты/таблицы
Алгоритмы, которые вы должны знать:
- Поиск в ширину
- Поиск в глубину
- Бинарный поиск
- Quicksort
- Mergesort
- A *
- Динамическое программирование
- Разделяй и властвуй
Неделя 4 и 5. Практикуйте структуру данных и алгоритмические задачи с такими сайтами, как Educative или Leetcode. Начните заниматься простыми задачами кодирования. Так в дальнейшем будет легче решать более сложные вопросы.
Недели 6–8. Практикуйте сложные задачи кодирования и начните рассчитывать время самостоятельно. Для каждого решения важно учитывать время выполнения и сложность памяти. Чтобы получить практические и автоматизированные задачи вместе с интерактивными решениями, см. Grokking the Coding Interview: шаблоны для вопросов кодирования
недели 9 и 10. Изучите 10 лучших систем проектирования Вопросы на собеседовании. Теперь они являются неотъемлемой частью процесса собеседования и влияют на ваш уровень приема на работу .
Неделя 11. Изучение ОС и параллелизма концепции. Эти вопросы используются для оценки вашего уровня найма. Освоите основы многопоточности, чтобы выделиться на более высоких ступенях в рейтинге Google.
Неделя 12. Изучите объектно-ориентированное программирование и вопросы дизайна. Эти вопросы определяют ваше критическое мышление и навыки решения проблем на основе проектов. Взгляните на Grokking the Object-Oriented Design Interview, чтобы узнать больше о вопросах, которые обычно задают во время собеседований OOD.
Для более подробного изучения каждого шаг этого процесса, проверьте Coding Interview.
Советы по отработке задач программирования
Для отработки задач кодирования не существует ярлыка или волшебной палочки. Вот несколько основных советов, которые помогут вам на этапе подготовки.
Помните о времени. Собеседование по кодированию будет рассчитано по времени, поэтому важно подготовиться с этим в уме. Если вы привыкли готовиться в ограниченное время, во время собеседования будет гораздо меньше стресса.
Знайте свои слабые места. Во время подготовки возьмите обратите внимание на свои слабые места. Они есть у всех. Google заявил, что им небезразличен ваш мыслительный процесс, поэтому, если вы натолкнетесь на слабое место, поговорите через него. Это продемонстрирует ваше стремление к совершенствованию.
Знайте общие подводные камни. Когда дело доходит до собеседования в Google, есть три больших подводных камня: незнание Большого О сложность алгоритма, незнание ожиданий Google и отсутствие четкой формулировки процесса решения проблем. Помните об этих подводных камнях во время работы.
Четко сформулируйте свой процесс. Google хочет услышать о вашем мыслительном процессе. По мере практики привыкайте объяснять, почему и что вы делаете. Особо выделяются те, у кого есть четкое представление о том, как они работают.

Кандидаты в разработку программного обеспечения часто не обращают внимания на поведенческие собеседования . На самом деле это интервью, которое иногда делает или ломает вас как кандидата. Google глубоко заботится об их ценностях, поэтому, если вы не подготовитесь к этим вопросам, они это заметят.
Культурные и поведенческие интервью проводятся для того, чтобы отсеять людей, которые могут иметь навыки, но не умеют. у меня есть менталитет. Давайте погрузимся в поведенческие интервью Google.
Чего ожидать из поведенческого интервью Google
Поведенческие интервью в Google проверяют, как вы действуете в ситуациях или конфликтах, связанных с трудоустройством, как положительных, так и отрицательных. Поведенческие собеседования помогают работодателю решить, с кем он хочет работать. В ходе этих собеседований вас попросят поразмышлять о ваших прошлых достижениях и поведении, чтобы понять, как вы действуете под давлением и как вы понимаете профессионализм. Вы можете ожидать трех типов вопросов:
- Прошлый опыт
- Гипотетические ситуации
- На основе ценностей
Как подготовиться к поведенческим интервью
Google выделил 8 шагов для подготовки к вопросам поведенческого интервью. Изучите их и используйте их для формирования своей подготовки и ответов.
-
Предскажите будущее. Вы можете предвидеть большую часть вам будут заданы вопросы. У вас есть ресурсы для подготовки ответов. Ниже приведены 10 распространенных вопросов.
-
План. Запишите свои ответы. Практикуйтесь стратегически. Не задавайте вопросов о поведении.
-
Составьте запасной план. Google рекомендует давать по три ответа на вопрос. Это поможет вам подготовить разнообразные и интересные ответы.
-
Объясните. Google просит вас объяснить свой мыслительный процесс и процесс принятия решений. Четкое изложение ваших предположений и процессов поможет вам выделиться.
-
Управляйте данными. Google хочет получить ответы, которые напрямую касаются ощутимый рост, изменение или демонстрация навыков.
-
Уточнение. Вы можете использовать открытые вопросы, чтобы получить представление о ваша ценность как кандидата.
-
Улучшение. Google рекомендует вам всегда сосредотачиваться на улучшении. Вы можете начать с ответа методом грубой силы, а затем поработать над тем, как можно улучшить свой процесс.
-
Практика. Google призывает вас практиковаться вслух, чтобы составлять более четкие ответы.
Для получения подробного руководства по этапам подготовки взгляните на часть 3 моей статьи о поведенческих интервью.

10 распространенных поведенческих вопросов на собеседовании
Google собрал собственные список поведенческих вопросов на собеседовании, которые их менеджеры по найму используют во время собеседований.
Давайте пройдемся по ним.
Опишите свой рабочий процесс для ____.
Пока нет неправильных ответов на Этот вопрос можно использовать для оценки того, как ваш опыт влияет на вашу повседневную жизнь как разработчика. Хороший ответ — это ваш рабочий процесс, инструменты и умение работать в команде.
Расскажите мне о случае, когда вы рискнули и потерпели неудачу .
Этот вопрос дает представление о том, как вы учитесь и подходите к трудностям. Хороший ответ демонстрирует честность и активное обучение перед лицом неудач.
Каким достижением вы гордитесь?
Этот вопрос используется для создания различных команд. Google ищет ваши особенности, чувство успеха и ваши ценности в долгосрочной перспективе. Хороший ответ выходит за рамки достижений и подсказывает, что это значит для вас как личности.
Что является самым сложным из того, о чем вы много знаете? Расскажите мне об этом.
В этом вопросе рассматриваются ваши навыки, коммуникативные навыки и способность объяснять сложность другим. Хороший ответ фокусируется не столько на информации, сколько на эффективности вашего стиля преподавания.
Если вы присоединитесь, как вы повлияете на свою команду?
В этом вопросе рассматривается ваша способность вписаться в структуру других людей. Хороший ответ показывает, что вы исследовали ценности Google.. Популярные ответы говорят о целях Google.
Расскажите мне о неструктурированной среде, над которой вы работали.
Этот вопрос определяет ваш стиль работы, определяя, что для вас означает неструктурированность. Хороший ответ соотносит ваш стиль работы с занимаемой должностью. Можете ли вы вписаться в предопределенную структуру?
Что вы хотите, чтобы я знал о вас, чего мы не обсуждали?
Хорошие ответы показывают, что у вас есть дополнительные навыки, которые могут быть полезны для Google. Они также будут искать мягкие навыки, чтобы узнать, есть ли у вас нетехнический опыт, который принесет пользу их командам.
Какой ваш любимый инструмент Google и как вы его улучшите?
Этот вопрос оценивает ваши знания о Google, креативность и готовность повлиять на изменения. Хороший ответ основан на данных, но не слишком технических; обязательно сосредоточьтесь на том, почему вы хотите что-то изменить. Помните: это должно облегчить жизнь людей.
Что для вас значит «быть гуглым»?
Этот вопрос — шанс продемонстрировать свои культурные ценности и ценности. Хороший ответ избегает излишнего жаргона, но говорит о ценностях, лежащих в основе культуры Google.
Что вас пугает?
Этот вопрос пытается увидеть ваши слабые места и факторы стресса. Хороший ответ является рефлексивным и направлен не просто на преодоление ваших страхов, а на то, чтобы понять, как они влияют на вас как на работника.

Теперь у вас есть хорошее представление о том, что такое собеседования в Google, чем они отличаются от других компаний и как их подготовить. Я составил список всех ресурсов, которые вам нужны для изучения, практики и укрепления уверенности, необходимой, чтобы преуспеть на собеседовании в Google. Прочтите часть 2, чтобы начать изучать вопросы к собеседованию по программированию!
Удачного обучения!
Продолжить чтение о подготовке к собеседованию
- Поведенческие интервью: как подготовиться и пройти собеседование
- Часто задаваемые вопросы о собеседовании по кодированию: подготовка, оценка и структура
- 5 проверенных и проверенных методов подготовки к собеседованию по кодированию