JavaRush /Java блог /Random UA /Вищий пілотаж на технічному інтерв'ю: як я потрапила до G...

Вищий пілотаж на технічному інтерв'ю: як я потрапила до Google, Microsoft і не лише

Стаття з групи Random UA
Переклад та адаптація статті Ace Your Technical Interview: What Got Me Into Google, Microsoft та More у спільноті The Startup на Medium. Вищий пілотаж на технічному інтерв'ю: як я потрапила до Google, Microsoft і не тільки.До першої співбесіди на стажування я навіть не здогадувалася, що на ній будуть ставити й технічні питання. Я припускала, що на ньому на мене чекає тільки купа питань у дусі "розкажіть про себе". Втім, і до них я не була готова як слід. Я провела дві години в центрі профорієнтації, намагаючись витрусити з усіх поспіль якісь цінні поради та ще дві години вдома, репетируючи відповіді на різні запитання. Але коли я прийшла на співбесіду, інтерв'юер не став питати про мої сильні та слабкі сторони. Натомість мені вручабо маркер і сказали йти до дошки. А я навіть не подумала, що спочатку перевірять мою технічну підготовку! Це застало мене зненацька. Я не знала, як грамотно відповідати на запитання і через кілька годин отримала електронний лист із ввічливою відмовою. На щастя, після цього випадку я мав багато успішних інтерв'ю. Я була на півсотні технічних співбесід і підготувала до них багато своїх друзів. Здається, мій підхід непогано працює, адже він допоміг мені та іншим людям успішно впоратися з інтерв'ю у таких компаніях як Google, Microsoft, Apple, Amazon тощо. Я хотіла б допомогти особисто кожному, але на це не вистачить часу. Найкраще, що я можу зробити, — поділитися покроковою інструкцією щодо того, як проходити технічні співбесіди. Що можна, а що не можна робити в таких ситуаціях, я зрозуміла методом спроб та помилок. Тож ось вам від мене список корисних порад, який я склала за кілька років практики. Я хотіла б допомогти особисто кожному, але на це не вистачить часу. Найкраще, що я можу зробити, — поділитися покроковою інструкцією щодо того, як проходити технічні співбесіди. Що можна, а що не можна робити в таких ситуаціях, я зрозуміла методом спроб та помилок. Тож ось вам від мене список корисних порад, який я склала за кілька років практики. Я хотіла б допомогти особисто кожному, але на це не вистачить часу. Найкраще, що я можу зробити, — поділитися покроковою інструкцією щодо того, як проходити технічні співбесіди. Що можна, а що не можна робити в таких ситуаціях, я зрозуміла методом спроб та помилок. Тож ось вам від мене список корисних порад, який я склала за кілька років практики.

1. Не хапайтеся "з порога" за пробні інтерв'ю

Зазвичай люди радять проходити якнайбільше пробних інтерв'ю — і вони мають рацію. Але якщо ви непідготовлені, пробне інтерв'ю може бути неефективним, відлякати вас і навіть деморалізувати. З досвіду скажу: якщо я як тренування інтерв'ювала когось, хто був зовсім не готовий, за підсумком вони відчували себе демотивованими, тому що “плавали” у питаннях і відповідали не надто добре. Приділіть час тому, щоб краще підготуватися і розібратися з тим, на що схоже технічне інтерв'ю. Ось наочний приклад пробного інтерв'ю в Google:

2. Вміння спілкуватися > рівень технічної підготовки

Багато хто готується до технічних інтерв'ю, сидячи годинами на сайтах типу LeetCode та Hackerrank. Це чудові платформи для практики. Але краще трохи відволіктися, перш ніж ви витратите купу годин на вирішення навмання завдань, з якими, як ви припускаєте, ви зіткнетеся на співбесіді. Це неефективний підхід: на інтерв'ю вам трапиться принаймні одне питання, яке ви раніше ніде не зустрічали. Серед моїх друзів є сильніші програмісти, ніж я, і мене часто дивувало, чому я справлялася з тестуванням моєї технічної підготовки, а вони (іноді) ні. Найбільша різниця між нами найімовірніше полягає в тому, що я проводила багато часу, тренуючи свої навички спілкування. Серйозно: знання того, як вирішити топ-100 технічних завдань не допоможе, якщо не вміти до ладу пояснити свою логіку рішення. Дуже важливо вчитися формулювати думки. Спочатку все це здається важким, незручним і неприродним, але практика допомагає. Дуже важливо підтримувати свій технічний бекграунд на високому рівні, але розвивати навички спілкування можливо ще важливіше. Якщо у вас часу в обріз перед майбутнім інтерв'ю, краще зосередитися на комунікації, ніж намагатися за два дні знову пройти матеріал, який ви два роки навчали на комп'ютерних науках. Перед наступною технічною співбесідою спробуйте повчитися ось чому: чим намагатися за два дні знову пройти матеріал, який ви два роки вчабо на комп'ютерних науках. Перед наступною технічною співбесідою спробуйте повчитися ось чому: чим намагатися за два дні знову пройти матеріал, який ви два роки вчабо на комп'ютерних науках. Перед наступною технічною співбесідою спробуйте повчитися ось чому:

2.1 Навчіться ставити уточнюючі питання

Один з головних плюсів на співбесіді – здатність уточнити питання, яке вам поставабо. Зазвичай ті, хто проводять інтерв'ю, не дають всіх вступних, так що доводиться вивужувати з них додаткові подробиці. Ви ж не можете вирішити проблему, не до кінця розуміючи, у чому її суть! Щоб потренуватися, можете взяти кілька запитань із технічних співбесід та придумати до них низку уточнюючих питань. Наприклад, якщо вас просять відсортувати список, ви можете запитати:
  • Як відсортувати список — у порядку зростаючого чи спадного?
  • Який тип даних містить перелік?
  • Чи могли б ви навести приклад того, як має виглядати введення та виведення даних для даного типу завдання?
  • І т.д.
Запитань може бути набагато більше — це лише кілька прикладів. Обов'язково уточнюйте різні нюанси: Попросіть приклад введення та виведення
  • Уточніть тип даних
  • Уточніть, чи є якісь обмеження в діапазоні значень
  • Запитайте, чи доведеться мати справу з прикордонними випадками
  • З'ясуйте, чи можете ви використовувати певні бібліотеки та фічі мови, якою ви програмуєте

2.2 Вчіться висловлювати думки

Якщо ви задали всі уточнюючі питання і точно знаєте, що потрібно для вирішення проблеми, настав час навчитися правильно викладати суть свого рішення. Якщо ви почнете просто писати код, не пояснюючи під час справи, навіщо ви це робите, інтерв'юеру буде складно розібратися, праві ви чи ні. За таке ви не отримаєте бали "в залік", не кажучи вже про те, що можете написати неправильне рішення. Коли ви по ходу пояснюєте логіку вашого рішення, інтерв'юер може скоригувати вас у правильному напрямку, якщо ви трохи зіб'єтеся з курсу. Перш ніж писати код, спробуйте зробити ось що:
  • Розкажіть співрозмовнику про ваше можливе рішення - чи вийде у вас рішення задачі "в лоб" і можна або його можна якось покращити
  • Покроково проговоріть ваше рішення на прикладі, щоб пояснити суть того, як воно має працювати
  • Розділіть рішення на кілька кроків і напишіть псевдокод або кістяк, щоб інтерв'юер зрозумів хід ваших думок
  • Протестуйте ваше рішення в різних прикордонних випадках, щоб розібратися, чи всі ви врахували. Поцікавтеся думкою інтерв'юера.
Щоб потренуватися, візьміть якесь питання з інтерв'ю і спробуйте розповісти правильну відповідь (рішення) другу. Не можете знайти друга - візьміть плюшеве звірятко або будь-який інший предмет і вправляйтеся на них.

3. Прокачайте технічні знання та навички

Якщо ви навчабося правильно спілкуватися на інтерв'ю, можна кинути всі сабо на прокачування технічних знань. Обов'язково освіжіть у пам'яті інформацію про алгоритми та структури даних. Переконайтеся, що ви знаєтеся на ключових темах, таких як структури даних, сортування, робота з алгоритмами, побітові оператори, нотації Big O і т.д. Список того, що потрібно знати, залежить від посади, на яку ви претендуєте.

4. Практикуйтесь!

Ось тепер, прокачавши необхідні навички та знання, можна кинути усі сабо на практику.
В курсі JavaRush є багато завдань-головоломок і цілих проектів для створення прикладних рішень.
Намагайтеся не просто писати рішення, а обмірковувати кроки: подумки ставити уточнюючі питання, продумувати структуру, а вже потім — писати рішення. Це допоможе вам відчути себе упевненіше на інтерв'ю, а впевненість вирішує!

5. Що робити, якщо "забуксували" на інтерв'ю?

Тепер уявімо, що ви потрапабо на справжнє інтерв'ю і раптом зрозуміли, що питання поставило вас у глухий кут. Ви без поняття, що потрібно зробити і як вирішити поставлене завдання. Ви хочете просто вибігти з кімнати та не повертатися. Я розумію — бувала у таких ситуаціях, які досі сняться у кошмарах. Але не переживайте – надія ще не втрачена. Не раз таке траплялося на інтерв'ю, але вони зазвичай закінчувалися оффером. Це важко, це діє на нерви, але все можливе. Візьміть паузу та подумайте. Переведіть дух, приведіть думки до ладу. Можливо, у вас з'явиться зачіпка. Пропетируйте рішення простому прикладі.Спробуйте створити спрощену версію рішення на схожому завданні, але простіше звертаючи увагу на покрокові дії. Наприклад, якщо потрібно відсортувати список, що ви робите? Ви знаходите найменше число і ставите його на початок. А як би ви реалізували це рішення у коді? Розкажіть про особисте рішення. Якщо повноцінне рішення не вимальовується, то нічого страшного. Скажіть про це інтерв'юеру, але також присвятіть його у хід своїх думок. Чи нагадує це завдання якесь із тих, з якими ви стикалися? Чи здається, що потрібно використовувати певну структуру даних для її вирішення? Поділіться логікою, якою ви керуєтеся. Будьте чесними.Якщо ви впевнені, що питання, яке вам поставабо — з незнайомої галузі знань, скажіть про це інтерв'юеру. Скажіть, що ви готові шукати рішення, але поки що у вас немає необхідних навичок. Якось мені поставабо питання, пов'язане з безпекою мережі. На той момент у мене не було практики у цій сфері, про що я сказала інтерв'юерам. Вони пояснабо мені необхідні основи, щоб я могла впоратися із завданням. Вас співбесідують живі люди :) Вони чудово розуміють вас, адже й самі бували у схожих ситуаціях. Ось і всі поради, які я виробила за кілька років співбесід. Вони допомогли мені та моїм друзям потрапити до топових компаній. Удачі в пошуках!
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ