如何進行軟體工程師模擬面試
作者 Aaron Cao · 更新於

每次只練習一輪,使用真實的計時,用真實輪次會用到的工具,並讓面試官適時打斷你。評估的重點應是結構、溝通與復原能力,而不是你是否找到了最佳解。一場從不出狀況的模擬面試,練的不是真正困難的部分。
真實的軟體工程師模擬面試涵蓋哪些內容?
你可能已經解過大量題目,卻依然感覺沒準備好,原因通常在於:面試輪次考察的並不只是解題本身。本節將軟體工程師面試流程中的三種輪次分開討論,因為每一種都需要不同的練習方式,混在一起練只會浪費這次練習。
- 程式撰寫輪。35 到 45 分鐘,一到兩題,邊打字邊說出思路。練習目標是:在解法尚未成形時就把它講出來。
- 系統設計輪。45 到 60 分鐘,一個開放式題目,除非你主動提問,否則不會有任何澄清。練習目標是:在動手設計之前先界定問題範圍。
- 行為面試輪。45 分鐘圍繞專案經歷展開,追問會很尖銳。練習目標是:在被追問到第三次、問到你後悔的某個決定時依然能撐住。
每次練習只做其中一種。三小時走完整套流程看似很有成效,實際上幾乎產生不了有用的回饋,因為到第三輪時,你練的已經是疲勞應對而不是技能本身。如果你想要的是題庫而不是練習方法,可以查看 模擬面試 專題頁裡的另一篇文章。
如何獨自進行一場模擬面試?
獨自練習的模擬面試往往會以一種可預見的方式失敗:你會挑一題自己能解出來的,卡關時暫停計時器,最後帶著還不錯的感覺結束。這些做法恰恰都和真實條件相反。你需要做的是還原真實的限制條件。
- 不要自己挑題。從一份你沒看過的題單裡抽取,或請別人替你挑。自己挑就代表挑一題讓自己舒服的。
- 啟動計時器後絕不暫停。卡關的時間本身就是資料。暫停會消除你正要練習應對的那種壓力。
- 工具要一致。如果真實輪次用的是沒有自動完成、沒有執行按鈕、沒有測試套件的共用編輯器,就在同樣的環境裡練習。
- 對著空房間說話。這感覺很荒謬,卻是最有價值的一環。默默解題練的是一種沒人會給你打分的技能。
- 錄下來。看回放會很不舒服,但它能讓你看到自己的口頭禪、反覆回溯,以及沉默的那一分鐘。
- 先不用畫圖工具做設計。很多設計輪其實只是一通語音通話加一份空白文件。
獨自練習唯一無法提供的是打斷,而打斷恰恰是真實輪次困難的主要原因。AI 面試官可以專門補上這一塊:它會在你話說到一半時追問下去,不會禮貌地等你說完。模擬面試模式就是按這種方式來進行各輪練習的。
你應該收集哪些回饋?
大多數人結束模擬面試後只會記下一個籠統的評價,一週之後這種評價就毫無用處了。你應該收集與可改變行為直接掛鉤的具體觀察。
- 提出第一個澄清問題所花的時間。如果超過九十秒,代表你在解決一個錯誤的問題。
- 最長的沉默時間。超過二十秒的沉默都應該用一句口頭過渡語來填補。
- 你是否在動手寫程式之前先說出了思路?每一次都要記錄是或否。
- 卡關時你是如何恢復的?重新複述問題、嘗試一個更小的案例,還是直接愣住。
- 複雜度討論是被追問出來的,還是你主動提起的?主動提起得分更高。
- 對於設計題:你是先界定範圍再畫圖,還是反過來?應先談限制與規模,再畫方框圖。
一位準備高階職缺面試流程的後端工程師做了十二次模擬面試,全部通過,結果在真實的程式撰寫輪上,因為在一題陌生的變化題上沉默了四分鐘而沒能通過。她的模擬面試從未包含過她解不出來的題,所以她從未練習過真正出問題的那一環。她只改了一條規則──允許出現高於自己水準的題目──沉默的問題立刻就浮現了出來。
模擬面試做多少次才夠?它們又解決不了什麼?
沒有什麼神奇的數字,超過一定量之後再多練也不再有回報。一個實用的節奏是:每種輪次在兩週內做兩到三次模擬面試,練習之間的檢討比練習本身更重要。做六次卻不檢討,效果反而不如認真做筆記的三次。
要清楚它的局限。模擬面試無法告訴你實際會被問到哪一題,無法預測你面試官的風格,也無法取代對知識本身的掌握。它能改善的是表達層面:邊想邊說、先界定範圍再動手、卡關時大聲地恢復過來。這些能力可以完全遷移到真實面試中,也是單靠閱讀學不會的東西。
練習和面試中的即時協助是兩個不同的問題,答案也不同。練習本身沒有爭議。而真實面試中的協助是否合適,取決於面試形式與雇主的規定,螢幕分享或有監考的程式撰寫輪則完全不在可用範圍之內。關於這些限制的坦誠說明,見 可偵測性 專題頁。