Досвід телефонної співбесіди в Google, демонструє неспроможність процесу найму

«Діагноз — не кінець, а початок справи».
Мартін Х. Фішер.

Нещодавно я проходив телефонна співбесіда з кадровиком з Google. Оскільки я відповідав критеріям на таке (добровільне) співбесіду, але не зміг пройти тест, в цьому пості перераховані питання і передбачувані відповіді на них. Цей пост може бути корисним тим, кому в один прекрасний день зателефонують з Гугла.

Для ясності: я почав займатися програмуванням 37 років тому (мені тоді було 11 років) і постійно займаюся цим. Крім того, 24 роки тому (мені було 24) я був призначений директором з досліджень і розвитку; з тих пір серед багатьох інших робіт мною були проведені НДДКР за найбільш відповідальним частин проектів TWD — всі вони поставляються, як комерційні продукти:

Представник Гугла підкреслив, що потрібно досвід управління, так сучасного програмування (рідкісне поєднання). Але наявність більше 20 років досвіду у першому і майже 40 років у другому виявилося недостатнім — я не зміг дати «правильні відповіді». Чи означає це, що Гугл занадто високо піднімає планку або що у його кадровиків самих не вистачає знань, які вони, як передбачається, повинні оцінювати?

Давайте подивимося!

Питання-відповіді по тесту Google на позицію «Технічного директора»
Тут питання, що потребують «високої технічної кваліфікації», та мої відповіді на них — до тих пір, поки тест не був перерваний, оскільки стало очевидно, що я не відповідаю завдання:
1. Яка функція є протилежною для malloc() C?
Я: free().
Кадровик: правильно.
Примітка: уявляю собі, що в ці рідкісні моменти ви, можна припустити, відчуєте гордість за ваші 35 років програмування на мові С, яким більше 40 років.
2. Яка функція Unix дозволяє сокету отримати з'єднання?
Я: listen().
Кадровик: правильно.
Примітка: це дійсно кваліфікує мене як фахівця з мереж?
3. Скільки байтів потрібно для збереження MAC-адреси?
Я: шість.
Кадровик: правильно.
Примітка: вважаю, що тільки що отримав бейджик [Ethernet] ...
4. Розташуйте за витратами часу: читання регістра ЦП, пошук на диску, перемикання контексту, читання системної пам'яті.
Я: читання регістра ЦП, читання системної пам'яті, переключення контексту, пошук на диску.
Кадровик: правильно.
Примітка: звичайні лекції з обчислювальної техніки на першому курсі університету.
5. Що таке індексний дескриптор Linux?
Я: унікальний ідентифікатор файлу для будь-якої даної файлової системи.
Кадровик: неправильно, це — метадані файлу.
Я: індексний дескриптор є індексом, що однозначно ідентифікує файл в даній файлової системи, і можна переглянути цей індекс для вилучення атрибутів файлу, таких як, наприклад, розмір, час, власник і дозволу; ви навіть можете додати свої власні атрибути в такі файлові системи.
Кадровик: неправильно, не «атрибути», це — «метадані».
Примітка: «метадані» — більш інформативний термін, ніж «атрибути файлу»?
6. Яка функція Linux бере шлях і повертає індексний дескриптор?
Я: я писав користувача LIBC для G-WAN, нашого сервера додатків, але не пам'ятаю яку-небудь syscall, повертає індексний дескриптор.
Кадровик: stat().
Я: stat(), fstat(), lstat() і fstatat () повертає код помилки, а не індексний дескриптор; вони заповнюють stat-структуру, що містить атрибути файлу, названі вище, а не тільки індексний дескриптор файлу.
Кадровик: відповідь неналежний: індексний дескриптор містить всі метадані.
Примітка: може бути, що Гугл таємно отримав ліцензію на горезвісний чат-бот Tay AI від Microsoft?
7. Як називається сигнал KILL?
Я: SIGKILL, у якого #define встановлено на 9.
Кадровик: ні, це — «TERMINATE».
Я: SIGTERM (15) відрізняється від сигналу KILL (9).
Кадровик: ваша відповідь не відповідає тому, що є в моєму документі.
Примітка: припускаю, спостережуване — те, що відбувається, коли чат-боти виявляють існування легких наркотиків.
8. Чому Quicksort є найкращим методом сортування?
Я: це не завжди так, він навіть не завжди підходить.
Кадровик: Quicksort має найкращу оцінку «big-O».
Я: «big-O» ігнорує затримки зберігання даних, топологію, обсяг, доступну пам'ять і навіть обчислювальну складність кожної команди ЦП, вовлекаемой в дану процедуру, — замість цього він просто підраховує кількість алгоритмічних операцій! Оцінка «big-O» може бути корисним показником при розробці алгоритмів, але найкраще рішення реалізації і масштабування залежить від конкретних обмежень кожної конкретної проблеми і оточення.
Кадровик: неправильно, ви повинні були вказати мені причину високої оцінки «big-O» у Quicksort.
Примітка: Для ядра Linux (на яке покладається Гугл) був обраний Heapsort, а не Quicksort… за менший використовуваний обсяг пам'яті і більш передбачуване час виконання.
9. Є масив з 10 000 16-бітних значень; як найбільш ефективно порахувати біти?
Я: необхідно зрушити біти прямо на всіх 64-бітових словах, використовуючи метод Кернигана.
Кадровик: немає.
Я: є більш швидкі способи, обробні 64-бітні слова з масками, але я не можу пояснити це по телефону — потрібно писати код.
Кадровик: правильна відповідь — використовувати таблицю перекодування і потім просумувати результати.
Я: на ЦП якого типу? Чому б не дати мені порівняти результати роботи моєї програми і вашої?
Кадровик: це не входить до завдання даного тесту.
Я: а що входить до завдання даного тесту?
Кадровик: мені необхідно з'ясувати, чи знаєте ви правильні відповіді.
Примітка: скільки ж може тривати це безумство? 8-бітна таблиця перекодування може обробляти байти послідовно один за одним, тоді як метод на базі 64-бітової маски обробляє 8-байтные слова одночасно (більш того, сучасні команди ЦП дозволяють працювати навіть з 128-бітними словами, отримуючи 10-разовий виграш у швидкості, якщо не розглядати переносимість). Оскільки 64-бітна таблиця перекодування недоступна сучасних комп'ютерів, то немає ніяких сумнівів в тому, що працює швидше.
10. Який тип у пакетів, якими обмінюються для встановлення з'єднання по протоколу TCP?
Я: у шістнадцятковій системі: 0x02, 0x12, 0x10 – буквально «синхронізувати» і «підтвердити».
Кадровик: неправильно, це — SYN, SYN-ACK і ACK; якщо в Google з'являється якась проблема, то ви повинні знати це, щоб діагностувати її. Ми припиняємо тестування, оскільки очевидно, що у вас немає необхідних знань для написання або аналізу мережевих додатків. Вам необхідно вивчити виклики функцій Linux, як працює стек TCP/IP і що таке оцінка «big-O», щоб, можливо, задовольнити нашим вимогам, якщо ви будете проходити таке співбесіду пізніше. Удачі вам, до побачення!
Примітка: якщо ви повинні читати шістнадцяткові дампи пакетів, щоб знайти причину збою, то 3-літерні мнемонічні коди не допоможуть знайти її у померлого мережевому сервісі. Можливо, Google повинен був заявити, що практичні знання не потрібні для цієї роботи.

З іншого боку, я набрав чотири бали з десяти, що навіть вище мого найкращого Гугл-рангу веб-сторінки на сьогодні!

(*) Як Гугл, так і TWD були засновані в 1998 році.
(**) Гугл-ранг веб-сторінки: надсекретна математична формула, що показує, що ранг спонсорованих результатів пошуку вище того, який є в дійсності.

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

Оновлення: 13 жовтня 2016 року вночі (майже через 7 місяців після опублікування цього поста) ми отримали повідомлення, що сервер, що забезпечує сайт gwan.ch, працював кілька годин зі збоями, і одночасно отримали багато листів, що відносилися до дискусії на сайті «Hacker News», в якій люди, які претендували на роботу в Гугл, заперечували, що перераховані вище питання були дійсно використані фахівцями з підбору персоналу в Гуглі, в той час як інші стверджували, що вони пройшли таке ж співбесіду з точно такими ж питаннями.

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

Я не домагався у Гугла проведення співбесіди. Однак після епізоду з «Hacker News» я отримав дуже цікаві пропозиції роботи, а також резюме від фахівців, охочих працювати з нами в проекті TWD, що показує розуміння багатьма (якщо не більшістю) того, в якому насправді світі ми живемо. Велике спасибі всім за коментарі, за добру підтримку, дозволяють мені сподіватися на наступне покоління інженерів.

Я дійсно хотів би, щоб у мене була можливість навчати (і приймати на роботу) всіх бажаючих навчатися. Якщо я не знайду нічого краще, то як-небудь напишу книгу, щоб допомогти іншим творити добро краще, ніж це робив я, — і обіцяю опублікувати абсолютно нову інформацію (відкритий вихідний код, матеріали Academia і т. д.).

Всього найкращого (у т. ч. Гуглу).

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

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

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



Профіль в LinkedIn для Марсії Пінейро показує, що вона працює в… Гугл. Якщо це — реальна людина (вона ж має 3 аккаунта [1] [2] [3]), то мені сумно за неї — їй доводиться поливати брудом людей, щоб заробляти собі на життя. Якщо Гугл дійсно найняв її (або «його», захованого за фальшивою особистістю), то це чудовий спосіб залишити за собою останнє слово. Гугл дотримується проповедуемого їм принципу «Не роби зла»?

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

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

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.