Переклад та адаптація статті Ace Your Technical Interview: What Got Me Into Google, Microsoft та More у спільноті The Startup на Medium.
До першої співбесіди на стажування я навіть не здогадувалася, що на ній будуть ставити й технічні питання. Я припускала, що на ньому на мене чекає тільки купа питань у дусі "розкажіть про себе". Втім, і до них я не була готова як слід. Я провела дві години в центрі профорієнтації, намагаючись витрусити з усіх поспіль якісь цінні поради та ще дві години вдома, репетируючи відповіді на різні запитання. Але коли я прийшла на співбесіду, інтерв'юер не став питати про мої сильні та слабкі сторони. Натомість мені вручабо маркер і сказали йти до дошки. А я навіть не подумала, що спочатку перевірять мою технічну підготовку! Це застало мене зненацька. Я не знала, як грамотно відповідати на запитання і через кілька годин отримала електронний лист із ввічливою відмовою. На щастя, після цього випадку я мав багато успішних інтерв'ю. Я була на півсотні технічних співбесід і підготувала до них багато своїх друзів. Здається, мій підхід непогано працює, адже він допоміг мені та іншим людям успішно впоратися з інтерв'ю у таких компаніях як Google, Microsoft, Apple, Amazon тощо. Я хотіла б допомогти особисто кожному, але на це не вистачить часу. Найкраще, що я можу зробити, — поділитися покроковою інструкцією щодо того, як проходити технічні співбесіди. Що можна, а що не можна робити в таких ситуаціях, я зрозуміла методом спроб та помилок. Тож ось вам від мене список корисних порад, який я склала за кілька років практики. Я хотіла б допомогти особисто кожному, але на це не вистачить часу. Найкраще, що я можу зробити, — поділитися покроковою інструкцією щодо того, як проходити технічні співбесіди. Що можна, а що не можна робити в таких ситуаціях, я зрозуміла методом спроб та помилок. Тож ось вам від мене список корисних порад, який я склала за кілька років практики. Я хотіла б допомогти особисто кожному, але на це не вистачить часу. Найкраще, що я можу зробити, — поділитися покроковою інструкцією щодо того, як проходити технічні співбесіди. Що можна, а що не можна робити в таких ситуаціях, я зрозуміла методом спроб та помилок. Тож ось вам від мене список корисних порад, який я склала за кілька років практики.
1. Не хапайтеся "з порога" за пробні інтерв'ю
Зазвичай люди радять проходити якнайбільше пробних інтерв'ю — і вони мають рацію. Але якщо ви непідготовлені, пробне інтерв'ю може бути неефективним, відлякати вас і навіть деморалізувати. З досвіду скажу: якщо я як тренування інтерв'ювала когось, хто був зовсім не готовий, за підсумком вони відчували себе демотивованими, тому що “плавали” у питаннях і відповідали не надто добре. Приділіть час тому, щоб краще підготуватися і розібратися з тим, на що схоже технічне інтерв'ю. Ось наочний приклад пробного інтерв'ю в Google:2. Вміння спілкуватися > рівень технічної підготовки
Багато хто готується до технічних інтерв'ю, сидячи годинами на сайтах типу LeetCode та Hackerrank. Це чудові платформи для практики. Але краще трохи відволіктися, перш ніж ви витратите купу годин на вирішення навмання завдань, з якими, як ви припускаєте, ви зіткнетеся на співбесіді. Це неефективний підхід: на інтерв'ю вам трапиться принаймні одне питання, яке ви раніше ніде не зустрічали. Серед моїх друзів є сильніші програмісти, ніж я, і мене часто дивувало, чому я справлялася з тестуванням моєї технічної підготовки, а вони (іноді) ні. Найбільша різниця між нами найімовірніше полягає в тому, що я проводила багато часу, тренуючи свої навички спілкування. Серйозно: знання того, як вирішити топ-100 технічних завдань не допоможе, якщо не вміти до ладу пояснити свою логіку рішення. Дуже важливо вчитися формулювати думки. Спочатку все це здається важким, незручним і неприродним, але практика допомагає. Дуже важливо підтримувати свій технічний бекграунд на високому рівні, але розвивати навички спілкування можливо ще важливіше. Якщо у вас часу в обріз перед майбутнім інтерв'ю, краще зосередитися на комунікації, ніж намагатися за два дні знову пройти матеріал, який ви два роки навчали на комп'ютерних науках. Перед наступною технічною співбесідою спробуйте повчитися ось чому: чим намагатися за два дні знову пройти матеріал, який ви два роки вчабо на комп'ютерних науках. Перед наступною технічною співбесідою спробуйте повчитися ось чому: чим намагатися за два дні знову пройти матеріал, який ви два роки вчабо на комп'ютерних науках. Перед наступною технічною співбесідою спробуйте повчитися ось чому:2.1 Навчіться ставити уточнюючі питання
Один з головних плюсів на співбесіді – здатність уточнити питання, яке вам поставабо. Зазвичай ті, хто проводять інтерв'ю, не дають всіх вступних, так що доводиться вивужувати з них додаткові подробиці. Ви ж не можете вирішити проблему, не до кінця розуміючи, у чому її суть! Щоб потренуватися, можете взяти кілька запитань із технічних співбесід та придумати до них низку уточнюючих питань. Наприклад, якщо вас просять відсортувати список, ви можете запитати:- Як відсортувати список — у порядку зростаючого чи спадного?
- Який тип даних містить перелік?
- Чи могли б ви навести приклад того, як має виглядати введення та виведення даних для даного типу завдання?
- І т.д.
- Уточніть тип даних
- Уточніть, чи є якісь обмеження в діапазоні значень
- Запитайте, чи доведеться мати справу з прикордонними випадками
- З'ясуйте, чи можете ви використовувати певні бібліотеки та фічі мови, якою ви програмуєте
2.2 Вчіться висловлювати думки
Якщо ви задали всі уточнюючі питання і точно знаєте, що потрібно для вирішення проблеми, настав час навчитися правильно викладати суть свого рішення. Якщо ви почнете просто писати код, не пояснюючи під час справи, навіщо ви це робите, інтерв'юеру буде складно розібратися, праві ви чи ні. За таке ви не отримаєте бали "в залік", не кажучи вже про те, що можете написати неправильне рішення. Коли ви по ходу пояснюєте логіку вашого рішення, інтерв'юер може скоригувати вас у правильному напрямку, якщо ви трохи зіб'єтеся з курсу. Перш ніж писати код, спробуйте зробити ось що:- Розкажіть співрозмовнику про ваше можливе рішення - чи вийде у вас рішення задачі "в лоб" і можна або його можна якось покращити
- Покроково проговоріть ваше рішення на прикладі, щоб пояснити суть того, як воно має працювати
- Розділіть рішення на кілька кроків і напишіть псевдокод або кістяк, щоб інтерв'юер зрозумів хід ваших думок
- Протестуйте ваше рішення в різних прикордонних випадках, щоб розібратися, чи всі ви врахували. Поцікавтеся думкою інтерв'юера.
3. Прокачайте технічні знання та навички
Якщо ви навчабося правильно спілкуватися на інтерв'ю, можна кинути всі сабо на прокачування технічних знань. Обов'язково освіжіть у пам'яті інформацію про алгоритми та структури даних. Переконайтеся, що ви знаєтеся на ключових темах, таких як структури даних, сортування, робота з алгоритмами, побітові оператори, нотації Big O і т.д. Список того, що потрібно знати, залежить від посади, на яку ви претендуєте.4. Практикуйтесь!
Ось тепер, прокачавши необхідні навички та знання, можна кинути усі сабо на практику.| В курсі JavaRush є багато завдань-головоломок і цілих проектів для створення прикладних рішень. |