В рамках інтерв'ю ми спочатку просимо кандидатів зробити "FizzBuzz", а зараз відсоток кандидатів, які можуть правильно відповісти на FizzBuzz, різко збільшився - це може бути пов'язано з його популярністю в Інтернеті.
Приблизно рік тому, як друге питання, ми почали задавати питання, дуже схожі на оригінальний FizzBuzz. Питання було розроблено таким же простим, як оригінальний FizzBuzz, а також для оцінки конкретної здатності кандидата, зокрема здатності замовляти та визначати пріоритет у змістовному та логічному вигляді набір "правил бізнесу", які були надані в деяких довільний порядок. Формулювання питання спочатку здається дещо неоднозначним, що може ускладнити немовців, які володіють англійською мовою, але якщо продумка може бути правильно вирішена - Також це дає кандидату можливість задати питання для уточнення, що завжди добре .
Ми вважаємо це дуже важливим вмінням розробника як розробника, оскільки розробка програмного забезпечення, як правило, заснована на функціональних вимогах, що виводяться в певному порядку не з часом, що може ставити обмеження та умови для інших областей програмного забезпечення, не чітко вказуючи, і це завдання проникливого розробника принаймні досліджувати потенційні проблеми та конфлікти щодо впровадження.
Ми з'ясували, що трохи більше 65% кандидатів (розмір вибірки 38), які пройшли FizzBuzz, повністю провалили FizzBuzz v2.0. Зазвичай ці кандидати будуть виявлені пізніше в процесі, але це, мабуть, є гарним способом виявити їх рано.
Моє запитання полягає не в тому, застаріла чи ні FizzBuzz, а в тому, які фактори можуть сприяти такій великій кількості кандидатів, які не мають питання FizzBuzz v2.
- Це питання занадто неоднозначне?
- Чи знижує стрес для інтерв'ю здатність критично мислити до того, що вони не зможуть виконати таке тривіальне завдання?
Питання:
Напишіть процедуру на улюбленій мові програмування, яка буде приймати список рядків як вхідний, і для кожної рядок у списку буде виконано одне з наступного:
- Друкуйте лише Fizz, якщо рядок містить літеру A
- Друкуйте лише Buzz, якщо рядок містить букву B
- Друкуйте лише BuzzBuzz, якщо рядок містить і A, і B
- Друкуйте лише FizzFizz, якщо рядок не містить A і B
- Друкуйте лише FizzBuzz, якщо рядок містить лише один A і лише один B
Деякі типові запитання, які задають кандидати:
- Чи слід це враховувати регістри?
- Чи означає "містить A і B" означає, що A має прийти перед B
- Що слід надрукувати, якщо жодна з пунктів не виконується?
- Що має відбутися, якщо можна виконати більше однієї умови?
Ми виявили, що переважна більшість кандидатів, які успішно виконали питання, взагалі нічого не запитували, вони просто робили так, як це робили FizzBuzz.