Прокачайся в код-рев’ю: для перших 50 учасників — курс безкоштовний

час читання: 4 хв

Як пройти технічне інтерв’ю: поради експерта

Що таке технічне інтерв’ю? За яким алгоритмом воно будується? Яких типових помилок можна уникнути під час інтерв’ю? Senior Machine Learning Scientist та власник Telegram-каналу Boris Again Борис Цейтлін розповів, як зазвичай проходить технічне інтерв’ю і як до нього підготуватися.

Senior Machine Learning Scientist та власник Telegram-каналу Boris Again Борис Цейтлін

Що таке технічне інтерв’ю й навіщо воно потрібне?

— Технічне інтерв’ю — це один з етапів найму технічних фахівців в IT-компанії, — пояснює Борис. — На цьому етапі інженер компанії перевіряє знання кандидата. Під час технічного інтерв’ю фахівець перевіряє, наскільки навички кандидата відповідають посаді, на яку його планують взяти. Саме на технічних інтерв’ю відсіюється більшість кандидатів.

Зазвичай проводять кілька технічних інтерв’ю, і вони бувають різних видів.

Типовий процес найму включає два технічних інтерв’ю:

  1. Перше нагадує іспит із теоретичних і прикладних знань.
  2. Друге стосується дизайну системи з відкритими питаннями на кшталт: «Як би ви побудували сервіс потокового відео?», «У вас є сервіс з великим навантаженням і базою даних, яка вже не вміщується на диску одного сервера. Як би ви вирішили таку проблему?» тощо.

— У цій розмові я зосереджуся на першому виді інтерв’ю, — пояснює Борис. — У великих компаніях існують свої специфічні правила проведення технічних інтерв’ю. Наприклад, це можуть бути кілька інтерв’ю із завданнями на алгоритми. Але зараз мова йде не про них, а про процес найму в більшості компаній.

Як проходить технічне інтерв’ю?

— Деталі технічного інтерв’ю дуже різняться від компанії до компанії, — розповідає Борис, — але можна виділити загальні підходи.

Стандартна структура першого технічного інтерв’ю зазвичай складається з двох частин: перші 10-15 хвилин кандидату ставлять нескладні запитання про мову програмування й технології. Якщо посада передбачає використання Python, наприклад, часто запитують: «Що таке декоратор?», «Що таке GIL і як він працює?», «Як Python працює з пам’яттю?». Таким чином інтерв’юер намагається оцінити рівень кандидата.

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

  • Програмісту зазвичай ставлять питання про мову й алгоритми, структури даних і технології зі стека компанії.
  • До аналітика буде більше питань про SQL і бази даних, теорію ймовірностей і математичну статистику.
  • На співбесідах ML фахівців запитують про статистику й теорію ймовірностей, теорію машинного навчання й деталі роботи моделей.

Решта 30–45 хвилин у будь-якій структурі — це лайвкодинг. Інтерв’юер і кандидат підключаються до середовища спільного доступу, де можна спільно писати код, але не можна його виконувати. Інтерв’юер пояснює умову задачі, а кандидат ставить запитання, уточнює умову, пише код й оцінює асимптотичну складність рішення в O(N) нотації.

Поради, як пройти технічне інтерв’ю

— Найголовніше — це відкинути менталітет «студента на іспиті», — вважає Борис. — Інтерв’ю варто сприймати як спілкування двох фахівців. Погані інтерв’юери створюють враження допиту, але не варто піддаватися на це. Якщо ви будете хвилюватися й захищатися, ви, швидше за все, провалитеся. Простий лайфхак для правильного настрою — це уявити, що ви з інтерв’юером вже колеги й перебуваєте на одному боці.

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

Практичні поради

— Щоб пройти перший етап із простими запитаннями, потрібно підготуватися. Інтерв’юер зазвичай намагається відсіяти людей, які взагалі нічого не знають. Зазвичай всі ставлять одні й ті ж запитання, список яких можна знайти в Інтернеті, — продовжує Борис, — якщо ви не знаєте відповіді на запитання, яке можна знайти в Інтернеті за п’ять хвилин, то це ваш «прокол». Також будьте готові до того, що вам будуть ставити запитання про технології, які ви зазначили в резюме.

Алгоритмічна частина інтерв’ю — найскладніша. Підготовку до неї можна розділити на два етапи:

  • вивчення правильного процесу проходження інтерв’ю; і
  • практичне вирішення завдань.

Інтерв’ю проводять за стандартною процедурою. Знання правил цієї «гри» дуже допомагають. Алгоритм має наступний вигляд:

  1. Інтерв’юер пояснює умову задачі. Тут потрібно ставити запитання про умову й з’ясувати всі обмеження, які часто спеціально не згадуються. Наприклад: «Що робити, якщо масив порожній?», «Чи всі елементи унікальні?», «Які обмеження пам’яті та швидкості?». Найпоширеніша причина провалу на цьому етапі —умова, яку зрозуміли неправильно.
  2. У жодному разі не пишіть код розв’язання, поки не отримаєте схвалення інтерв’юера. Найкращий спосіб провалити інтерв’ю — це почати писати невірне рішення, «забуксувати» й вийти за рамки виділеного для виконання часу. А якщо ще й затримати інтерв’юера, то, найімовірніше, це буде повний провал.
  3. Усно обговорюємо з інтерв’юером проблему й шляхи її вирішення. Важливо думати вголос і ставити запитання. На цьому ж етапі можна написати в коді тести. Спробуйте виявити всі унікальні випадки, які треба обробити. Часто після цього ви розумієте, що все ж таки не зовсім правильно зрозуміли умову.
  4. Ваше завдання — придумати оптимальне рішення. Якщо це не виходить, інтерв’юер зазвичай дає підказку. Необхідність підказки — це, звичайно, іде вам у мінус, але краще вирішити з підказкою, ніж не вирішити взагалі.
  5. Отримавши дозвіл на написання коду, починаємо реалізацію.
  6. Коли код написано, обов’язково перевірте його. Часто від хвилювання упускаються прості речі. Наприклад, можна забути повернути результат виконання. Тут стануть у пригоді написані раніше тести: чи охоплює реалізація всі випадки? Пробіжіться очима по коду й проговоріть основні моменти вголос. Такі незначні помилки, як, наприклад, коли ви переплутали знаки «більше» й «менше» не страшні, але, якщо ви їх розпізнаєте, отримаєте додаткові бали.

— Тепер, коли ви знаєте структуру, залишається тільки практикуватися вирішувати завдання й писати код без виконання та допомоги IDE, — підсумовує Борис, — Відкриваємо leetcode, сортуємо завдання за складністю або популярністю й вирішуємо. Найімовірніше для підготовки до типового інтерв’ю достатньо буде виконати завдання рівня Easy.

Дивитися вакансії в розділі Робота.