作为面试过程的一部分,如今,我们最初要求求职者进行“ FizzBuzz”,如今,能够正确回答FizzBuzz的求职者比例已急剧增加-这可能是由于其在网络上的流行。
大约一年前,作为第二个问题,我们开始提出一个与原始FizzBuzz非常相似的问题。该问题的设计与原始的FizzBuzz一样简单,还可以评估候选人的特殊能力,特别是以有意义和合乎逻辑的方式对一组“业务规则”进行排序和优先排序的能力。任意顺序。该问题的措词最初似乎有点含糊,这可能使非英语母语者难以理解,但如果可以通过认真思考解决问题-这也使应聘者有机会提出问题进行澄清,这始终是一件好事。
我们发现作为开发人员,这是一项非常重要的技能,因为软件开发通常基于功能要求,这些功能要求随时间推移没有特定的顺序,这可能会在没有明确指示的情况下对软件的其他区域施加约束和条件,并且精明的开发人员的工作至少是要调查与实施有关的潜在问题和冲突。
我们发现,通过FizzBuzz的应试者中有略超过65%(样本大小为38)完全失败了FizzBuzz v2.0,通常情况下,稍后会检测到这些应试者,但这似乎是一种很好的检测方法他们早。
我的问题不是关于FizzBuzz是否过时的问题,而是有关导致FizzBuzz v2问题失败的大量候选人的因素是什么。
- 这个问题太含糊吗?
- 面试环境的压力会降低批判性思考的能力,以至于无法完成如此琐碎的任务?
题:
用您喜欢的编程语言编写一个例程,该例程将字符串列表作为输入,并且对于列表中的每个字符串将执行以下操作之一:
- 如果字符串包含字母A,则仅打印Fizz
- 如果字符串包含字母B,则仅打印Buzz
- 如果字符串同时包含A和B,则仅打印BuzzBuzz
- 如果字符串不同时包含A和B,则仅打印FizzFizz
- 如果字符串仅包含一个A和仅一个B,则仅打印FizzBuzz
候选人提出的一些典型问题是:
- 应该区分大小写吗?
- “包含A和B”是否意味着A应该先于B
- 如果没有达到所有要求,应该打印什么?
- 如果可以满足多个条件怎么办?
我们发现,绝大多数成功完成问题的候选人根本不问任何问题,就像FizzBuzz一样。