“腦子快”的程式設計師更優秀嗎?

極客頭條發表於2015-08-01

今天 Hacker News 上的一篇文章《為什麼想得慢的人能贏》引起了廣泛的討論。

網友 Scott Burson 在文章後評論說:“之前,我僱傭了一位 TopCoder 冠軍,原本預計他編碼飛快,但實際上他是最小心細緻的人,不過大家漸漸發現,兩年內,他提交的程式碼從來沒有 bug,從來沒有。”

為什麼看起來思考緩慢的人卻能勝出呢? 

作者表示,所謂的反應慢比反應快需要更多的自律。相比之下,反應快就會更加不準確,而緩慢的思考就像烏龜,慢卻穩紮穩打。

每個人都記得龜兔賽跑的故事,但似乎沒有人會吸取“慢會獲得成功”這個教訓。

我們通常認為,反應迅速的人意味著聰明且工作努力,反應慢的人則意味著懶惰、冷漠、甚至是愚蠢。並且平時我們在談論做某件事情放慢速度時,都意味著放鬆一下,而不是更有效率地完成。

事實卻並不是如此。耶魯大學管理學院的一位教授尚恩·弗雷德裡克說,做作業可以體現出緩慢思考的本質,即一步一步通過推理來解決問題。弗雷德裡克最出名的研究是建立了“認知反映測試”——衡量一個人是“在短暫的思考後迅速解決問題”還是“通過一段長反射弧深思熟慮後再做決定”。這是他的測試題:

有三個問題:

  1. 一副球拍和球成本 1.10 美元。球拍比球成本高 1.00 美元。問球多少美元?
  2. 如果五臺機器生產五個零件需要五分鐘,那麼 100 臺機器生產 100 個零件需要多長時間?
  3. 一個湖中有一片睡蓮,每天,睡蓮的面積都會比前一天擴大一倍。如果這片睡蓮需要 48 天可以覆蓋整個湖,覆蓋一半的湖需要多少天?

弗雷德裡克說受訪者一般會給出下面這些直觀但不正確的答案:10 美分,100 分鐘,24 天。然而,第一個問題的正確答案是 5 美分。第二個問題的正確答案是 5 分鐘。第三個問題的正確答案是 47 天。

人們解決這些簡單的問題之所以感到棘手的原因,是這三道題用特定的錯誤答案來誘惑人類的直覺。受訪的 3428 個人中,三個問題都回答錯的人的比例是 33%,還有 33% 的人答錯了至少一個問題。各個大學中,麻省理工大學的學生正確回答所有問題的比例最高,卻還是隻有 48%。

弗雷德裡克經常在他的演講中與大家分享這個測試,大多數人仍然會給出直觀卻錯誤的答案。他說,這個測試會動搖被測者的信心,讓他們不再那麼相信自己的直覺,因此這就可能讓他們花更長的時間去看待事物。

Scott Burson 在評論中還提到,思考得快慢當然取決於具體的情境。不同的專案、不同的情況需要不同型別的程式設計師,有時候你必須冒著可能承受的風險快速行動,打破陳規。

儘管如此,大多數人都贊同開發者應該儘可能從飛快地編碼轉變為小心細緻地編碼。

相關文章