В рамках процесса собеседования мы первоначально просим кандидатов сделать «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
Некоторые типичные вопросы, задаваемые кандидатами:
- Должно ли оно быть чувствительным к регистру?
- Означает ли «содержит А и В», А должен предшествовать B
- Что должно быть напечатано, если ни один из пунктов не достигнут?
- Что должно произойти, если может быть выполнено более одного условия?
Мы обнаружили, что подавляющее большинство кандидатов, которые успешно завершили вопрос, вообще ничего не спрашивали, они просто делали это, как и FizzBuzz.