Майбутнє інтерв'ю Google, шукаючи поради щодо підготовки [закрито]


29

Ну я б’є книги, куди можу. У мене співбесіда, спочатку по телефону, на посаду інженера-програміста. Я прочитав усі публікації в блозі, я прочитав усі розповіді про інтерв'ю (деякі досить старі), а сама Google навіть запропонувала список книг для читання, жодна з яких тут нікого не здивує. Проте, пройшовши якийсь час, я не можу похитнутись від того почуття, що є така велика земля, яку слід прикрити, і я ніколи не впевнений, чи варто йти з глибиною чи вшир. Я виявив, що я вивчаю цілу область компсі, тільки щоб забути більшість тонких деталей, переходячи до іншої.

Отже, я не знаю, що на це питання є хороша відповідь, але я шукаю будь-які практичні поради щодо вирішення решти тижнів до інтерв'ю. Частина мого мозку втомилася від зубріння, і, звичайно, решту треба використати для вирішення важких проблем у моєму теперішньому місці роботи.


3
Це може бути більше підходить на сайті careeroverflow.com IMHO. Крім того, ви не говорите про рівень посади, такий як початківець, старший і т. Д., І ваш досвід, залишаючи багато для припущення.
vpit3833

3
@Fast Fish: Скажи що, просто застуди. Зробіть тест на IQ, і якщо ви набрали 135+ Google або немає Google, ви знаєте, що у вас є.
Fanatic23

9
Тут чудово, як це стосується програмістів ??? Чому люди з вищим представником люблять класифікувати та організовувати речі до кварка?
Джонатан.

3
Уже є багато запитань щодо співбесіди. Чим ваше питання відрізняється? Якщо ваша відповідь - «Google», то тут це не так. Існує незліченна кількість сайтів, що займаються інтерв'ю Google, багато з них отримають кращу інформацію, ніж ця.
Ніколь

2
І ви припускаєте, що ваш майбутній інтерв'ю не ховається на P.SE? :)
haylem

Відповіді:


30

Речі, які ви повинні знати

  • Google хоче вас найняти!

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

  • Google зробить найкраще, щоб оцінити вас якомога точніше. Це їхня робота.

    Google - компанія, керована даними. Рішення про прийняття на роботу не приймає керівник фіат. Натомість кожен інтерв'юер під час інтерв'ю робить широкі записки, які поєднуються в пакет. Потім цей пакет буде переглянуто окремим комітетом , який врешті-решт прийме рішення. Тож якщо ви просто не «гуляли» з одним із своїх інтерв'юерів, не хвилюйтесь! Важливим є те, наскільки добре ви працюєте на співбесіді.

Навички, які ви повинні мати

Перед інтерв'ю обов'язково ознайомтеся з наступними навичками / прийомами. Навіть якщо ви прямо не запитаєте про них, перегляд їх, безумовно, може привести вас до правильного мислення.

  • Структури даних

    Яка різниця між масивом та пов'язаним списком? Дерево та графік? Коли ви використовуєте одне над іншим? Як це вплине на швидкість / компроміс пам'яті?

    Питання для інтерв'ю не закінчується робочим рішенням. Будьте в змозі пояснити тривалість вашого підходу і які ви можете робити компроміси. Наприклад, "якби я кеширував все, це знадобило б X гігів оперативної пам'яті, але виконувало б швидше, тому що ...". Або "якби я тримав бінарне дерево сортуванням під час виконання операцій X, було б повільніше, Y було б швидше і т.д."

  • Алгоритми

    Основні алгоритми переходу графіків, алгоритми обходу дерев та два хороших підходи до сортування чисел.

    Обов’язково практикуйте розв’язування нетривіальної задачі за допомогою динамічного програмування. Це твій туз у норі, коли мова йде про складні питання інтерв'ю!

  • Хеш-столи

    Це величезне. Знайте все, що потрібно знати про хеш-таблиці, від того, щоб мати можливість реалізувати їх самостійно, до того, як знати про функції хешування, до того, чому кількість відра повинна бути простим числом. Концепції, що стосуються хеш-таблиць, актуальні майже для кожної галузі інформатики.

  • Розмови про себе

    Перші кілька хвилин спілкування з інтерв'юером - це важливий час для пояснення будь-якого досвіду, який роз'єднує вас. Відповідні проекти, значні технічні досягнення тощо. Пам'ятайте, людина, яка проводила інтерв'ю, опитала десятки, якщо не сотні розумних людей, як ви. То що ви можете сказати, що здивувало б їх?

    Наприклад, в інтерв'ю я розмовляв з інтерв'юером про програму, яку я написав, щоб грати в гру Go в коледжі. Дуже важко написати AI для гри Go, і у мене є жахливий Go-бот, щоб довести це! Суть - це ти сам, а не лише якась розумна людина, яка вміє програмувати.

Не наголошуйте занадто сильно, це просто інтерв'ю, як і будь-яке інше. Будьте впевнені, що ніхто не задасть вам дурних питань щодо кришок люків або гори. Фуджі.


7

Розслабтесь

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

EDIT: Це було лише початкове інтерв'ю по телефону, я не знаю нічого іншого, ніж це ... і якщо б я, напевно, я не міг би сказати вам все одно!


2
Ви отримали роботу?
Manoj R

1
@Manoj: lol - ні, але це не в тому. Я насправді не хотів роботи, яку вони брали на інтерв'ю, але мені було цікаво про процес та які можливості. я не мав / не маю наміру переїжджати до Каліфорнії!
Стівен А. Лоу

2

Позичено наступну статтю з http://get-that-job-at-google.blogspot.in/

Кодування знань C / C ++ та Java є бажаними мовами програмування для Google Interviewers. Ви повинні добре знати принаймні одну з них. Від вас, як очікується, будете писати код в інтерв'ю на екрані телефону та в інтерв'ю на місці.

Рекомендовані книги для інтерв'ю з CS : Вступ до алгоритмів - Кормен

Програмовані інтерв'ю, що виставляються

Злаштування інтерв'ю з кодування

Алгоритми інтерв'ю

Рекомендовані веб-сайти для практики кодування : InterviewStreet, Topcoder

Big-O Це має стати відправною точкою при підготовці до алгоритмічного інтерв'ю. Ви не повинні боротися з базовим аналізом складності, оскільки це гарантуватиме не наймання на роботу. Ви повинні бути знайомими і розуміти позначення O, Θ і Ω. Рекомендую прочитати розділ про аналіз складності з книги даних та структури алгоритмів.

Сортування Ви повинні мати можливість легко писати такі алгоритми O (n * lgn), як QuickSort та MergeSort. Порівняйте та розумійте найкращі, найгірші та середні складності випадку. Я знайшов цю таблицю на вікі дуже зручною; в ньому перераховані важливі властивості всіх алгоритмів сортування. Не нехтуйте основними алгоритмами O (n ^ 2), такими як сортування бульбашок або сортування вставки, оскільки інші алгоритми покращуються над ними. Інтерв'ю стосується вдосконалення основної ідеї, алгоритми сортування допоможуть у цьому процесі.

Таблиці хешу Коли ви сумніваєтесь, придумайте хеш-таблиці. Вони корисні у більшості проблем і часто допомагають нам покращити складність у часі деяких проблем шляхом кешування результатів.

Дерева проходять основні алгоритми побудови дерев, обхід та маніпуляції. Ви повинні мати можливість реалізовувати алгоритми на основі двійкових дерев пошуку. Вам слід ознайомитись із збалансованими деревами, хоча від інтерв'ю не передбачається писати код для них: дерева AVL, червоно-чорні дерева, трійки, n-ary дерева і т.д. ми можемо вирішити багато проблем із деревом, зробивши прості модифікації одного з цих траверсалів.

Графіки Графіки - дуже важливе поняття в галузі інформатики. Практикуйте три основні подання графіків (об’єкти та покажчики, матриця та список суміжності) та ознайомтесь із їхніми плюсами та мінусами. Часу на співбесіді не так багато, тому не варто чекати чогось дуже складного. Однак основні алгоритми переходу графіків (DFS та BFS) є обов'язковими, ви повинні їх реалізувати у всіх основних уявленнях. Ви повинні мати можливість реалізувати алгоритми Дейкстра або Флойда-Варшалла, а також алгоритми мінімального діапазону дерев (Крускал і Прим). Дізнайтеся про топологічне сортування, оскільки це напрочуд дуже корисно у багатьох проблемах із замовленням.

Динамічне програмування Це, мабуть, найважливіший предмет, оскільки реалізації невеликі. Ви повинні мати можливість реалізовувати 2-3 динамічні алгоритми протягом 35-40 хвилин. Перевіряючи ресурси в цьому блозі або в Інтернеті, ви побачите, що вам слід очікувати принаймні одного питання щодо динамічного програмування за інтерв'ю.

Операційні системи Дізнайтеся про процеси, потоки та проблеми одночасності. Знайте про мутекси, семафори, монітори та про те, як вони працюють. Зрозумійте, що таке тупик та життєвий шлях, і як їх уникнути. Дізнайтеся про зміну контексту, планування тощо.

Математика Ви повинні ознайомитись із підрахунком, комбінаторикою та ймовірністю.

Публікації Google Прочитайте публікації Google, перелічені нижче, якщо у вас є час. Файлова система Google

Google Bigtable

Google MapReduce


Ви повинні опублікувати відповідний текст тут і уникати гниття посилань.
смертельна

Вибачте, я новачок на цьому форумі. Я покращив свою відповідь
chinmay

1
"... Java ... бажані мови програмування для Google" Я цього не знав. Пояснює, чому Chrome використовує 3x ресурси в якості інших браузерів. (Стук стукаю. Хто там? ... довга пауза ... Java!)
Джош Кемпбелл

1

Якщо ви провели останні кілька місяців на кар'єрі, ви можете дозволити собі відпочити. Те, що відбувається в цей момент в інтерв'ю, не можна планувати, а краще розслабитися і мати енергію, щоб тривати раунди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.