脑子快的程序员更优秀吗?
今天 Hacker News 上的一篇文章《为什么想得慢的人能赢》引起了广泛的讨论。
网友 Scott Burson 在文章后评论说:“之前,我雇佣了一位 TopCoder 冠军,原本预计他编码飞快,但实际上他是最小心细致的人,不过大家渐渐发现,两年内,他提交的代码从来没有 bug,从来没有。”
为什么看起来思考缓慢的人却能胜出呢?
作者表示,所谓的反应慢比反应快需要更多的自律。相比之下,反应快就会更加不准确,而缓慢的思考就像乌龟,慢却稳扎稳打。
每个人都记得龟兔赛跑的故事,但似乎没有人会吸取“慢会获得成功”这个教训。
我们通常认为,反应迅速的人意味着聪明且工作努力,反应慢的人则意味着懒惰、冷漠、甚至是愚蠢。并且平时我们在谈论做某件事情放慢速度时,都意味着放松一下,而不是更有效率地完成。
事实却并不是如此。耶鲁大学管理学院的一位教授尚恩·弗雷德里克说,做作业可以体现出缓慢思考的本质,即一步一步通过推理来解决问题。弗雷德里 克最出名的研究是创建了“认知反映测试”——衡量一个人是“在短暂的思考后迅速解决问题”还是“通过一段长反射弧深思熟虑后再做决定”。这是他的测试 题:
有三个问题:
- 一副球拍和球成本 1.10 美元。球拍比球成本高 1.00 美元。问球多少美元?
- 如果五台机器生产五个零件需要五分钟,那么 100 台机器生产 100 个零件需要多长时间?
- 一个湖中有一片睡莲,每天,睡莲的面积都会比前一天扩大一倍。如果这片睡莲需要 48 天可以覆盖整个湖,覆盖一半的湖需要多少天?
弗雷德里克说受访者一般会给出下面这些直观但不正确的答案:10 美分,100 分钟,24 天。然而,第一个问题的正确答案是 5 美分。第二个问题的正确答案是 5 分钟。第三个问题的正确答案是 47 天。
人们解决这些简单的问题之所以感到棘手的原因,是这三道题用特定的错误答案来诱惑人类的直觉。受访的 3428 个人中,三个问题都回答错的人的比例是 33%,还有 33% 的人答错了至少一个问题。各个大学中,麻省理工大学的学生正确回答所有问题的比例最高,却还是只有 48%。
弗雷德里克经常在他的演讲中与大家分享这个测试,大多数人仍然会给出直观却错误的答案。他说,这个测试会动摇被测者的信心,让他们不再那么相信自己的直觉,因此这就可能让他们花更长的时间去看待事物。
Scott Burson 在评论中还提到,思考得快慢当然取决于具体的情境。不同的项目、不同的情况需要不同类型的程序员,有时候你必须冒着可能承受的风险快速行动,打破陈规。
尽管如此,大多数人都赞同开发者应该尽可能从飞快地编码转变为小心细致地编码。