温伯格的答案:
如果你要招聘一个程序员,就应该给他一个编程类的问题,要他当着你的面马上解决。据我自己的经验,大概1/3的人会拒绝这样的测试,他们认为自己的简历已经足够说明问题了,我绝对不会雇佣这样的人;另外1/3的人会马上埋头苦干,甚至不多提一个问题以澄清需求,这样的人缺乏分析问题、解决问题的能力,我也绝对不会雇佣他们。
最后,大概有1/3的人会表现出解决问题的能力。他们会提出各种各样的问题,获取更多的信息。如果得不到想要的信息,他们会刨根问底。开始动手之后,他们还会不断地请"客户"来检查阶段性成果,以确保自己的方向没有错误。在开始编程之前,他们会做简单的设计,并且在几种设计方案之间权衡选择。他们可能无法解决整个问题,甚至可能选择错误的方向,但我能看到他们解决问题的方式,这才是招聘开发者时最应该考虑的。
我从来不会让应聘者做选择题一类的测试。软件开发是一件困难的工作,比选择题困难得多,它需要不断的思考和交流。
另外,如果应聘者有工作经验,我会请他介绍以前参与的项目。从他们谈论项目的言辞之中,我也能获得大量的信息。