Перше, що потрібно знати про співбесіду на посаду програміста (або інший IT- вакансії) - вас будуть проводити співбесіду інші програмісти - люди, з якими ви будете працювати. Можливо, спочатку ви будете спілкуватися з HR-ом компанії, але в прийнятті фінального рішення майже завжди беруть участь ваші майбутні (або не відбулися) колеги.
Це дає вам чудову можливість скласти думку про компанію: хотілося б вам працювати з цими людьми? Здаються вони професіоналами своєї справи? Змогли б ви з ними порозумітися? Навчитися у них буде навчати? У вас буде можливість дізнатися про використовувані технології, робочого процесу і умов роботи.
Вас будуть оцінювати, і будете оцінювати ви, так що ви зможете утримати хороший баланс влади в переговорній кімнаті. Вам не доведеться відчувати себе так, немов все тиск співбесіди впало тільки на вас, адже компанія зацікавлена в тому, щоб справити на вас гарне враження, зацікавити, викликати бажання працювати саме в їхній компанії. Ні в якому разі не варто грубіянити співбесідникові. Зрештою, якщо вам попався не дуже адекватна людина, ви ж все одно не захочете з ним працювати, вірно?
Приготуйтеся говорити про ваш досвід і навички. Ви можете потренуватися в поясненні різних пунктів вашого резюме, навіть скласти план, але не варто готувати цілий сценарій. Розмова повинна протікати досить вільно, навряд чи ви хочете сидіти і червоніти, потираючи спітнілі долоні, коли в п'ятий раз будете повторювати одні й ті ж речі.
Питання на співбесіді
Крім основних питань, які стосуються вашого резюме, ви будете відповідати на питання, пов'язані з технічною стороною вакансії. Часто в IT-компаніях роботодавці ставлять запитання, що перевіряють ваше логічне мислення.
Головоломки для деяких є самої лякаючою частиною інтерв'ю. Подібні питання необхідні, щоб з'ясувати вашу здатність вирішувати неоднозначні завдання на кмітливість, а це, в свою чергу, проводить співбесіду пов'язують з вашим IQ.
З репетиціями тут складніше. У мережі є популярні питання, наприклад, «Чому кришки люків круглі?». Але ви ніколи не знаєте, яке питання вам готують в цей раз.
Проте, не зайвим буде підготуватися і до цієї частини. Існують три типи логічних запитань: «агаааа!» - питання; проблеми, які вирішуються дедуктивним міркуваннями і питання з відкритим кінцем.
Природно, вам потрібно проявити себе з найкращої сторони. Так що, навіть якщо ви не знаєте відповіді, з ситуації можна вийти, показавши, що ви розумієте, як можна вирішити поставлене завдання.
- Висловіть свої припущення
- Задавайте недурні питання
- Проговаривайте думки вголос, зробіть ваш розумовий процес більш наочним. )
- Малюйте картинки або діаграми
Зараз ми розглянемо кожну з цих технік докладніше.
Питання «агааа!» - типуПриклад: Чому кришки люків круглі?
Подібного роду питання є ситуацію «все-або-нічого": або ви заздалегідь знаєте відповідь на це питання, або поняття про нього не маєте. Можливо, навіть логічні міркування не приведуть вас до вірного відповіді.
Приклад: Дано 8 куль, 7 з яких важать приблизно однаково. Як ви зможете знайти кулю з іншим вагою, якщо ви можете зважити лише три кулі (будь-яких)?
Завдання такого типу перевіряють ваші здібності працювати з набором найпростіших припущень, які повинні привести вас до відповіді. Ставлячи подібне питання, співрозмовник буде дивитися як на ваш процес вирішення завдання, так і на ваш фінальний результат. Непогана можливість продемонструвати свої навички вирішення проблем: використовуйте діаграми, промовляйте рішення. В цьому випадку, навіть якщо ви не зможете знайти правильну відповідь, це не буде фатальним поразкою.
До речі, серйозно: міркування вголос і промальовування диаграм дійсно істотно спрощують пошук відповіді. Також це може показати вашому співрозмовнику, що ви на вірному шляху - може бути, ви допустили лише невелику помилку в одній зі своїх теорій. Якщо ви будете записувати ваші припущення, це допоможе вам отримати більш повну картину.
Питання на міркування
Приклад: Як зрушити гору Фудзі?
Головоломки без правильної відповіді створені не для того, щоб ви знайшли одне едінственноверное рішення. Мета полягає в тому, щоб побачити, як ви вирішуєте нечітко сформульовані завдання. Фактично, вони навіть не є головоломками, а скоріше тестом на креатив. У будь-якому випадку, результат тут знову повинен показати, наскільки добре ви справляєтеся з вирішенням проблем.
Так як завдання не має конкретних умов, вам абсолютно точно слід вибудовувати свої припущення, ставлячи питання проводить співбесіду або висловлювати власні. Для початку постарайтеся зібрати якомога більше інформації, лише потім приступайте до пошуку рішення. Якщо ви знову важко дати більш-менш нормальний відповідь, продовжуйте ділитися з проводить співбесіду своїми припущеннями. Подібні питання потрібні якраз, щоб зрозуміти, як ви будете міркувати в складних ситуаціях? Спробуйте отримати додаткову інформацію і на її основі побудувати розумні припущення.
Питання по кодуПриклад: Напишіть програму, яка переверне пов'язаний список
Ви повинні очікувати питання з програмування. Вас попросять знайти алгоритмічні рішення проблем.
Щоб впоратися з такими завданнями, необхідний практичний досвід. У мережі є багато прикладів і вправ для програмістів. Часто такі завдання просять виконати на папері або на дошці. Варто попрактикуватися у написанні коду не використовуючи IDE або компілятор.
Ваш проводить співбесіду розуміє, що без компілятора і без можливості протестувати вашу програму ви, ймовірно, допустите помилки. Якщо ви пишете шматок простого коду з основної частини, це важливіше, ніж придумати щось оригінальне. Заспокойтеся і не переживайте занадто сильно з приводу дрібних помилок. Подібні речі легко можуть статися, якщо ви працюєте нема на звичній клавіатурі.
Щоб ви не робили в рамках підготовки, переконайтеся, що ви розумієте основні принципи, типу структури даних, включаючи пов'язані списки, рекурсию і маніпуляцію рядками.
Приклад: В яких випадках необхідний віртуальний деструктор?
Вас можуть попросити пояснити принцип роботи мови. Наприклад, ви повинні будете розповісти, чому важливо для батьківського класу використовувати віртуальний деструктор.
Ці питання, як правило, досить прямі і потрібні, щоб перевірити ваші теоретичні знання мови. Не бійтеся відповідати «Я не знаю» або «Не пам'ятаю» - особливо, якщо це стосується мови, який не є обов'язковим у цій вакансії.
Вас можуть попросити спроектувати систему або пояснити, за що відповідає певні шматок коду. Зберігайте впевненість в собі і пам'ятайте: інтерв'юери тестують вашу здатність міркувати. Один і той же принцип лежить в основі головоломок, задач на проектування систем і для інших питань без правильної відповіді.
Не було складних питань?
Що, якщо вам не задали важких питань? Чи означає це, що вас недооцінюють? Скоріш за все ні. Вас не викликають на співбесіду від нудьги - навіщо роботодавцю витрачати свій час? Не панікуйте, якщо питання ще з'явилися вам складними або якщо інтерв'юер більше розповідав про компанії, замість того, щоб обговорювати вас і ваші навички. Це означає, що вони вже готові прийняти вас (щасливчик!) І намагаються переконатися, що ви хочете піти до них працювати. Це, звичайно ж, краще, на що можна сподіватися на співбесіді, так що постарайтеся не провалити все на фінальній стадії. Чи не поводьтеся задерикувато, але і не радійте, як дитя, будь-яких речей, які вам кажуть. Ведіть себе спокійно.
Кращий рада - отримаєте задоволення від інтерв'ю. Вам пощастило зустрітися з кимось по справжньому розумним, готовим надати вам цікаві питання. Поговоріть трохи про останні технології, які ви вивчаєте. Попит, що вивчають вони. Поділіться головоломками. Розглядайте співбесіду як можливість дізнатися незвичайного людини, а не просто як нудну процедуру працевлаштування. Звичайно, від вас будуть потрібні певні технічні навички, щоб вразити інтерв'юера; ви (швидше за все) не отримаєте пропозицію про роботу тільки тому, що сподобалися як людина. Але, розглядаючи співбесіду як щось нудне і цікаве, а не хвилююча і лякає, ви зможете заспокоїти нерви, що дозволить з чистою головою підійти до вирішення заданих завдань.
Актуальні вакансії програміста можна подивитися тут.