Використання шаблонних запитань у технічному інтерв'ю [закрито]


14

Я нещодавно в суперечках з колегою щодо технічних питань на інтерв'ю. Як випускник, я обійшов багато компаній і помітив, що вони використовували ті ж запитання. Приклад: «Чи можете ви написати функцію, яка визначає, чи є число простим чи ні?». Через 4 роки я вважаю, що конкретне питання є досить поширеним навіть для молодшого розробника. Я, можливо, не дивлюся на це правильно, але чи не повинні програмні будинки бути достатньо розумними, щоб придумати свої власні запитання про інтерв'ю? Я був випускником близько 16 інтерв'ю, і ті ж запитання виникали приблизно у 75% з них. Це змушує мене вважати, що багато компаній ледачі та просто Google: "Питання щодо шаблону для опитування розробників програмного забезпечення", і я вважаю, що вони роблять себе недоброзичливими в застосуванні такого підходу.

Запитання: Чи краще використовувати набір питань з якогось шаблону чи повинні програмні будинки прагнути бути оригінальнішими та придумувати власні матеріали для інтерв'ю?

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


1
З цікавості, звідки виникли питання стилю FizzBuzz?
Спустошена планета

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

2
Використовуйте запитання щодо шаблонів, якщо ви добре з відповідями на шаблон.
back2dos

Відповіді:


18

Дуже багато таких питань виникають саме тому, що важко придумати чіткі запитання, вимагати якомога менше знань домену, вимагати вміння придумувати алгоритм, не будучи хитрим питанням, який хтось або " отримати "або" не отримати ", і що люди мають історичну основу відповідей, щоб порівняти кандидата проти. І найкращі запитання мають кілька рівнів правильних відповідей, які дозволяють інтерв'юеру оцінити навички вирішення проблем кандидата. Наприклад, якщо хтось пропонує тривіальний алгоритм простеження, ми можемо поговорити про те, як ви могли б оптимізувати реалізацію або інтерв'юера, щоб привести кандидата до одного з більш складних алгоритмів.

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

Якщо розробники постають із новими питаннями, вони також мають тенденцію до вкладених у них непередбачуваних культурних чи доменних знань. Вони запитують питання про спорт, наприклад, який має перевагу перед людьми, які знають правила цього виду спорту, які можуть швидко помітити двозначність або зробити "очевидне" припущення. Хтось, хто зовсім не знайомий зі спортом, повинен з'ясувати правила гри на льоту і набагато частіше помилитися чи придумати менш витончену відповідь. Або вони зададуть питання, яке ненавмисно передбачає, що кандидати будуть знати / запам'ятовувати якийсь відносно незначний примх. Хтось, хто роками працює над системами бухгалтерського обліку, наприклад, Можна припустити, що всі знають, що таке система бухгалтерського обліку з подвійним записом або що питання, що передбачає просте визначення схеми системи обліку з подвійним записом, буде зрозумілим компетентному розробнику. Але це може легко кинути хорошого розробника, який повинен обернутися головою навколо ідеї дебету для готівки, збільшивши залишок готівки та кредиту, що зменшує залишок готівки. Хтось, хто взяв бухгалтерський облік 101, однак швидко наступить. Якщо ви мали намір перевірити ознайомлення кандидата з бухгалтерським обліком, це може бути цілком розумним питанням. Але якщо ви не шукаєте експерта з предметів, це було б проблематично. Але це може легко кинути хорошого розробника, який повинен обернутися головою навколо ідеї дебету для готівки, збільшивши залишок готівки та кредиту, що зменшує залишок готівки. Хтось, хто взяв бухгалтерський облік 101, однак швидко наступить. Якщо ви мали намір перевірити ознайомлення кандидата з бухгалтерським обліком, це може бути цілком розумним питанням. Але якщо ви не шукаєте експерта з предметів, це було б проблематично. Але це може легко кинути хорошого розробника, який повинен обернутися головою навколо ідеї дебету для готівки, збільшивши залишок готівки та кредиту, що зменшує залишок готівки. Хтось, хто взяв бухгалтерський облік 101, однак швидко наступить. Якщо ви мали намір перевірити ознайомлення кандидата з бухгалтерським обліком, це може бути цілком розумним питанням. Але якщо ви не шукаєте експерта з предметів, це було б проблематично.

Хоча я гадаю, що можливо, хтось міг би запам'ятати відповіді на кілька сотень "загальних" шаблонних питань, якими користуються люди, це мене не дуже турбує як інтерв'юера. По-перше, це було б дещо вражаюче, якби вони це зробили і відобразили б трохи працьовитості та вирішення проблем. По-друге, це, як правило, було б досить гарною підготовкою-- якщо розробник вміє повернути рядок, знає деякі алгоритми пошуку прайметів, вміє писати петлі та реалізовувати керуючі конструкції для FizzBuzz, знає різні алгоритми графіків, що поставляються регулярно і т. д. - вони, ймовірно, досить чітко налаштовані розробники. Якщо розробнику вдалося запам’ятати відповіді, нічого не дізнавшись, вони виявляться, коли інтерв'юер захоче трохи роздути або вони '


7

Я думаю, що є такі легкі запитання: fizzbuzz, перевернути рядок і т. Д., А потім виникають певні запитання, тоді як якщо ви їх ще не бачили, важко отримати оптимальне рішення за призначенням з додатковим тиском інтерв'ю та короткий час обмеження. Найгірше, що іноді рекрутери, які не мають технічних знань, задають деякі з цих питань, і вони шукають дуже конкретну відповідь .... Якщо ви не дасте оптимальної відповіді, вони вважають вас абсолютним ідіотом. Навіть якщо ваша відповідь спрацює, вирішує проблему, і хоча вона не може бути оптимальною, вона не є надто неефективною ....

Деякі приклади:
як би ви перемішали колоду карт? Вони шукають метод Фішера-Йейта http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffleінші відповіді "неправильні" ..... Це, ймовірно, не те, що ви знаєте, якщо ви раніше не хотіли перемішувати картки та спеціально шукати їх. Ви можете наткнутися на це під час виконання відповіді, але, зважаючи на те, що я бачив, вони очікують, що ви дізнаєтесь про цю застуду, тому сумнівно, що буде багато часу, щоб дозволити знайти рішення. Ще один менш ефективний (але, можливо, більш очевидний) спосіб - створити новий масив із вказівником на початковий масив та число, яке є випадковим числом, а потім сортувати масив за випадковим числом. Потім використовуйте відсортований масив для побудови нового масиву карт. У будь-якому випадку, я отримав 0 кредитів за те, щоб представити це рекрутеру.

Іншим прикладом є питання про те, як ви могли б виявити дублікат числа в списку з n чисел, всі від 1 до n-1. Очевидна відповідь (що відносно ефективно в часовій перспективі) - використовувати хеш-таблицю для вставки кожного елемента, і якщо ви знайшли вже вставлений, ви знайшли дублікат. Оптимальна відповідь полягає в тому, що числа є від 1 до n, якщо немає дублікатів, ви можете отримати очікувану суму як n (n + 1) / n. Тоді, якщо ви підсумуєте масив, ви отримаєте фактичну суму, що менша ніж очікувана сума. Таким чином, в основному n - (очікувана сума - фактична сума) = повторюване число ... Це досить особливий випадок .... я насправді щось бачив раніше в якомусь онлайновому дописі про проблеми інтерв'ю століття тому, про пов'язане з тим самим фокусом, так Мені було добре ...

Інший - переверніть усі слова в рядку, не використовуючи додаткового пробілу. Мені довелося подумати над цим, і рекрутер був дуже нетерплячим за 5 хвилин, які я думав (розщеплення та повторне приєднання рядка в зворотному порядку, або перехід слова за словом у новий масив - це дуже просто). Я придумав межу останнього слова, знайшов кінець першого слова і постійно зміщував увесь список вниз на 1, а потім вставляв відповідну букву. Потім повторюйте, поки не досягнете кінця списку. Цей метод спрацював, і інтерв'юер погодився (він трохи технічний), але він досить неефективний. Повернувшись додому, я шукав оптимальну відповідь, і це просто перевернути список, а потім змінити кожне окреме слово. Деякі люди можуть придумати це,

Тепер це правда, коли ви побачили деякі з цих проблем, ви зможете вирішити їх простіше. Тому що з одними і тими ж хитрощами виникають подібні запитання. Я знаю, особливо формула n (n-1) / 2 і список номерів має кілька варіацій. Але я ще не знаю, що перевіряє ці питання. FizzBuzz - це те, що кожен повинен вміти робити (хоча я бачив варіанти, не такі прості, і в такому випадку я починаю сумніватися, навіть якщо це реально для ситуації інтерв'ю, не маючи змоги ввести / налагодити код). Деякі з цих питань очевидні, як тільки ви їх бачите, але якщо ви ще не бачили їх, вони не очевидні. Зрештою, хтось згадав, що для того, щоб з’явилася перша правильна реалізація бінарного пошуку, потрібні роки ... Зараз двійковий пошук настільки очевидний, тому що кожен може прочитати про нього.

Тим не менш, я думаю, що найгірше - це те, що люди, нетехнічні задають питання, тому що вони не можуть оцінити ваше рішення, є правильним, але не оптимальним. Вони просто знають, що ваше рішення не є представленим, а отже, це все неправильно, ви не отримуєте жодної кредити за спробу. Навіть неоптимальні рішення часто показують знання конструктивних програм. Якщо я не програмую покерні ігри, мені байдуже, наскільки добре хтось може перетасувати колоду карт. І навіть якби я був, показавши їм ефективний алгоритм, я впевнений, що хтось на півдорозі може дотримуватися цього.

Питання щодо шаблону, як видається, просто дають перевагу кандидатам, які довше беруть інтерв'ю, оскільки, швидше за все, вони бачили більше запитань до шаблону. Навіть FizzBuzz, коли ви вперше побачите це, ви можете зникнути, але, коли ви бачите це знову і знову, ви звикаєте до нього. Найкраще, що ви могли зробити, - це задати кодування, яке вимагає спеціальної логіки бізнесу. Наприклад, створіть деякий набір даних (масив об'єктів / записів), а потім створіть деякі бізнес-правила, які слід застосувати до кожного об'єкта та повернути відповідь. Хоча вони, мабуть, бачили цикл через записи і застосовують логіку в мільйон разів, ваші правила будуть унікальними, так що принаймні їм доведеться зрозуміти і успішно реалізувати створені вами правила.

Скажімо, запланована зарплата та список кандидатів та їхні 3 найкращі улюблені відеоігри та, можливо, початкова зарплата. Кандидати, яким подобається Зельда, отримують штраф у розмірі 300, кандидати, яким подобається маленька русалка, отримують 200 бонусів. Кандидати, яким подобається Donkey Kong та Super Mario Brothers, але не доктор Маріо, отримують 300 бонусів. Кандидати, яким подобається Metroid або Kid Icarus, отримують 200 бонусів тощо. Це здається трохи божевільним, але це би показало вам їхню здатність перекладати бізнес-правила в логічні побудови програми і перевірити своє розуміння булевої логіки. Загалом, не сильно відрізняється від fizzbuzz, за винятком того, що не використовується модуль і петлі. Звичайно, ви можете надати їм список і перенести його через нього, а також надрукувати результати на екрані, використовуючи також конкретні критерії виводу.


4

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

Я не помітив, що ці питання були задані в першому інтерв'ю.

З точки зору інтерв'юерів, якщо людина не може правильно поставити ці питання, тоді вона не підготувалася до інтерв'ю, то чому б витрачати більше часу на них? Я не думаю, що це правильна ідея. Компанія отримає цілу купу людей, які зможуть переказати відповіді від Google, переходячи до наступного раунду, але це не обов'язково група людей, які є компетентними розробниками.

Питання FizzBuzz, що розкриває плитку, особисто мене дратувало, але це було легким інтерв'ю. Мені подобається складне інтерв'ю. Під час інтерв'ю з потенційними працівниками мені подобається переконуватись у тому, що вони можуть думати і вирішувати проблеми. Я очікую, що вони можуть використовувати Google.

Чи має компанія мати шаблон запитання? Так. Це допомагає оцінити кандидатів протягом кількох перших турів. Чи повинен шаблон складається з загальних проблем, які легко знайти в Google? Ні. Це лише короткі зміни усіх, хто бере участь.


4

"Чи повинні програми програмного забезпечення прагнути бути більш оригінальними та придумувати власні матеріали для інтерв'ю?"

Так, вони повинні, але практично трапляється так, що ви прийшли на роботу, і ви знайдете електронний лист від HR, в якому говориться про те, що ви завтра перебуваєте на циклі співбесіди для двох кандидатів. Вам вже до душі в алігаторах, і ваш менеджер не буде вам вдячний за те, що витратили півдня, щоб придумати якісь нові, хороші запитання на інтерв'ю. Натиснувши на час, ви повертаєтесь до запитань, які вам задали, або про те, що ви швидко можете знайти в Google.


2
так, і тоді ви справді щасливі, що у вас є документ, на якому є хороші запитання про інтерв'ю, тоді як в іншому випадку ви можете дивитись на хлопця, який бореться за щось значуще запитати
Doug T.

3

Такі питання, як ви згадуєте, зазвичай є питаннями фіззбузу і не є питаннями, які використовуються для найму; вони заперечують питання (тобто правильні відповіді жодним чином не влаштують вас на роботу, але неправильні відповіді змусять вас кинутись у смітник). Тому вони не дуже цінні.

Це питання, які з’являються пізніше, потребують продуманої думки, і найчастіше вони матимуть сильне відношення до типу роботи, яку виконує компанія, і того, якою є динаміка команди.

Тож відповідь така: і те, і інше.


4
Я погоджуюсь, що питання стилю fizzbuzz заперечує питання ... але не стукайте, не допускаючи неправильних людей з автобуса!
Пітер К.

2

Якщо більшість чи всі їхні питання однакові, це справді погано (для них це є). Це, мабуть, свідчить про те, що інтерв'юер недостатньо підготовлений до завдання.

Зауважте, що використання питань "шаблону" початкового рівня, таких як тест FizzBuzz, може бути прийнятним для того, щоб швидко відсівати абсолютно невмілий, не вкладаючи занадто багато часу та зусиль. Хоча навіть тоді варіації теми корисні, щоб не чути відповідей прямо від Google. Знову ж таки, легко запитати кандидата, що саме написаний код насправді робить і чому він працює (чи ні). Я вважаю, що досвідчений інтерв'юер може швидко виявити, чи хтось просто робить вигляд, що знає відповідь.

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

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


Так, але скажіть, ви даєте тест на FizzBuzz, щоб хтось, хто не підходить, і вони його провалили. Вони могли б шукати хороші відповіді і передати це питання в іншій компанії. Це є тим, що мене турбує, і я думаю, що компанії повинні зобов'язати не використовувати шаблонні питання. Будь-який хороший старший розробник програмного забезпечення повинен вміти придумувати хороші запитання, починаючи від легкого і важкого.
Спустошена планета

2
@Desolate Planet: Річ, однак, я підозрюю, що люди, які не спрацюють з fizzbuzz, не є типом, щоб шукати відповіді ... вони будуть просто сподіватися, що вони не отримають питання, задане на наступному інтерв'ю.
Стівен Еверс

Хм .. але навіть після того, як вони зіпсують 3 - 4 інтерв'ю, вони будуть досить розумні, щоб виявити закономірності в питаннях, які ставлять перед ними. Знову ж таки, це лише думка, яку я мав щодо технічних інтерв'ю взагалі, і це вражає мене як поганий спосіб зробити це.
Спустошена планета

1
@Desolate, тоді їм, можливо, вдасться влаштуватися на роботу в компанію, яка, мабуть, навіть не піклується про те, щоб добре відфільтрувати претендентів на роботу ... тому обидва отримують те, що заслуговують.
Péter Török

@ Peter, я погоджуюся з вашим твердженням, але це досить несправедливо стосовно інших претендентів, які, можливо, підходять для роботи і мають щось, що можуть внести свій внесок у компанію. Вони, можливо, не отримають шансу, тому що хтось роздивився чудові відповіді і пройшов цей процес. Я не кажу, що всі компанії схожі на це, але зазвичай, коли я приєднуюся до якоїсь компанії, вони мають мережевий документ із мережевим накопичувачем із переліком питань інтерв'ю, і вони виглядають майже однаково. Це мене просто вражає як дуже ледачого.
Спустошена планета

2

Мій шаблон інтерв'ю у псевдокоді:

якщо питання (FizzBuzz_type_question) == правильне, то

для кожного (питання q у array_of_more_interesting_questions) питання (q)

закінчення співбесіди.


1

Я думаю, що інтерв'ю слід розділити на:

  • Соціальний аспект (окрім кадрів) - Чи добре вписується ця людина в нашу організацію? Чи має він правильне ставлення - чи готовий він дотримуватися нашого стилю управління? Це повинно бути оригінальним, оскільки компанії та команди різні.

  • Загальна придатність до ролі - знову ж таки це має відрізнятися від місця до місця

  • Основні: Тематичні питання, які зосереджуються на основній області роботи - Це науково і не потрібно оригінально, оскільки воно є науковим.

  • Повсякденна придатність до роботи: це питання щодо предметів, від яких ви очікуєте, що кандидат буде займатися щодня. Це може бути науковим, але краще від реальної роботи, яку він очікує робити. Ця частина відрізнялася б від місця до місця.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.