刷題面試:一場決策外包的共謀
每個工程師大概都經歷過這樣的時刻:深夜盯著 LeetCode 上第三百題,心裡冒出一個念頭——「我未來的工作內容,跟反轉二元樹到底有什麼關係?」
這個問題通常被當成求職者的牢騷。但如果我們認真對待它,會發現它指向一個更有趣的現象:刷題面試的盛行,與其說是因為它能有效鑑別人才,不如說是因為它讓面試官不必自己做決定。
把判斷外包給規則
想像你是一個面試官。你面前有兩種做法。
第一種:跟候選人深聊一小時,看他的專案、問他的取捨、感受他思考的方式,然後憑你的專業判斷寫下「我認為這個人能勝任」。第二種:出一題 medium 難度的演算法題,看他能不能在四十分鐘內寫出最佳解,然後在評分表上勾選對應的格子。
第一種做法,如果這個人進來表現很差,責任在你——是你的判斷失準。第二種做法,如果這個人進來表現很差,責任在「流程」——你只是照著規範走,題目他確實解出來了。
這就是刷題面試最少被談論、卻最核心的功能:風險轉嫁。它跟「沒有人會因為採購 IBM 而被開除」是同一種組織心理。這種行為在組織研究裡有正式名稱——「防禦性決策」(defensive decision-making):明知某個選項對組織最好,卻選擇另一個對自己最安全的。一項針對 950 位管理者的研究發現,平均每十個重要決策中就有 2.5 個屬於此類 [1]。當判斷被交給一套標準化規則,個人就從決策者變成了執行者,而執行者不必為結果負責。
從這個角度看,刷題面試不是一種評估技術,而是一種免責機制。
但組織的難處也是真的
如果只停在這裡,這篇文章就只是另一篇罵刷題的文章。公平地說,標準化考題確實解決了幾個真實存在的問題。
規模問題。 大型科技公司一年收到數十萬甚至上百萬份履歷,動用數千位面試官。如果每個人自由發揮,評估結果將完全無法橫向比較——hiring committee 拿到的會是數千種互不相容的主觀印象。標準化是讓大規模招聘「可運作」的前提。
直覺其實很不可靠。 這是最反直覺的一點:橫跨百年人事甄選研究的後設分析顯示,結構化面試對工作表現的預測效度(約 .51)明顯高於非結構化面試(約 .38)[2]。心理學研究進一步指出原因:面試官會對候選人說的任何話「腦補」出合理的意義(sensemaking),而大量不具鑑別力的資訊反而會稀釋真正有效的訊號——這使非結構化面試成為一種頑固的錯覺 [3]。Google 曾分析自家數萬筆面試資料,想找出哪些面試官的判斷最準,時任人資長 Laszlo Bock 形容結論是「a complete random mess」——幾乎沒有人的「直覺」能穩定預測入職後的表現 [4]。更糟的是,自由發揮的面試官往往在不自覺中挑選「跟自己相似的人」:社會學家 Rivera 對菁英專業服務公司的田野研究發現,雇主對「文化相似性」(休閒嗜好、經歷、自我呈現風格)的重視,經常壓過對實際生產力的考量 [5]。所謂的「感覺對了」,很多時候只是同溫層的回音。
法律風險。 主觀判斷難以自證公平。當落選者質疑歧視,「我們對每位候選人使用相同的題目與評分標準」是組織能拿出的最強防禦。
所以結構化評估本身並沒有錯。問題出在別的地方。
真正的問題:選錯了代理指標
承認直覺不可靠,不代表演算法題就是對的答案。業界真正做的事情是:在「可標準化」的前提下,選了一個測量成本最低的代理指標——而不是預測效度最高的那個。
演算法題的優點是客觀、好出題、好評分、題庫無限。缺點是它測量的能力——在高壓下快速回憶並實作經典演算法——與多數工程師的日常工作重疊度很低。一項隨機對照實驗甚至發現,光是「被面試官盯著解題」這件事本身,就足以讓受試者的表現下降超過一半——白板面試測到的很大一部分是抗壓性與表演焦慮,而不是解題能力 [6]。日常工作是讀懂遺留程式碼、在模糊需求中做取捨、跟人協作、debug 一個橫跨三個服務的問題。這些都可以被結構化評估,只是成本高得多。
於是出現了一個荒謬的均衡:公司知道刷題測不準,候選人知道刷題測不準,但雙方都繼續玩這個遊戲。公司得到免責與可規模化,候選人得到明確的攻略路徑——把 LeetCode 刷完就好,不必猜面試官喜好。這是一場共謀:大家一起假裝這個指標有效,因為它對所有人都「方便」。
而它篩選出來的,未必是最會做事的人,而是最願意為了進入某間公司投入數百小時準備一場考試的人。這測的是動機和服從性,不是工程能力。或許對某些公司來說,這才是它真正想要的訊號。
最純粹的偷懶:小公司照抄大廠
刷題面試最說不過去的場景,是一間二十人的新創照搬 Google 的面試流程。
大廠的標準化至少有規模上的理由。但小公司一年面試不到五十個人,每個候選人的背景創辦人都能親自看過,完全有條件做深度、客製化的評估。它們照抄刷題流程,不是因為需要,而是因為「大廠都這樣做」——這是決策外包的極致形態:連「該怎麼外包決策」這個決策,都外包給了別人的慣例。
諷刺的是,小公司最需要的恰恰是刷題測不出來的東西:自主性、產品直覺、在資源匱乏下把事情做完的能力。用一套為篩選大廠螺絲釘設計的流程,去找需要獨當一面的早期員工,是雙重的錯配。
把判斷拿回來,是有代價的
有些公司開始走另一條路:take-home project、在真實 codebase 上做 pair programming、深入的 system design 討論、試用期合約。這些方法的共同點是把判斷責任放回面試官身上——你必須真的理解候選人做了什麼、為什麼這樣做,然後為自己的評估署名負責。
代價也很明顯:面試官要花更多時間,評估更難橫向比較,出錯時沒有流程可以躲。這解釋了為什麼這些做法多半出現在小而精的團隊——只有當「招對人」的收益大到值得承擔「判斷錯誤」的個人風險時,人們才願意把決策權從規則手上拿回來。
結語
刷題面試的問題,從來不是「考演算法」本身,而是我們對它的誠實程度。它是一個在免責、可規模化與法律安全之間取得平衡的組織性妥協,卻被包裝成「客觀、公平、科學」的人才鑑別技術。
下一次當你聽到「我們用標準化題目是為了公平」,可以追問一句:這套流程是為了更準確地認識候選人,還是為了讓所有參與者都不必為判斷負責?
兩者都是正當的目標。但把後者說成前者,才是整件事最不誠實的地方。
參考文獻
[1] Artinger, F. M., Artinger, S., & Gigerenzer, G. (2019). C. Y. A.: frequency and causes of defensive decisions in public administration. Business Research, 12(1), 9–25.
[2] Schmidt, F. L., & Hunter, J. E. (1998). The validity and utility of selection methods in personnel psychology: Practical and theoretical implications of 85 years of research findings. Psychological Bulletin, 124(2), 262–274.(百年更新版:Schmidt, Oh & Shaffer, 2016 working paper)
[3] Dana, J., Dawes, R., & Peterson, N. (2013). Belief in the unstructured interview: The persistence of an illusion. Judgment and Decision Making, 8(5), 512–520.
[4] Bryant, A. (2013). In Head-Hunting, Big Data May Not Be Such a Big Deal. The New York Times(Laszlo Bock 訪談;非同儕審查文獻,相關報導).
[5] Rivera, L. A. (2012). Hiring as Cultural Matching: The Case of Elite Professional Service Firms. American Sociological Review, 77(6), 999–1022.
[6] Behroozi, M., Shirolkar, S., Barik, T., & Parnin, C. (2020). Does stress impact technical interview performance? Proceedings of ESEC/FSE 2020, 481–492.