跳到主要內容

系統設計面試練習

在共用白板上端到端設計一個系統。Vera 會看你畫的內容、針對它提問,並一次改變一個條件,看哪裡會出問題。最後你會拿到一份引用你推理過程的報告。

Vera 用英文面試你,就像你正在準備的美國面試一樣。註冊、應用程式和報告也都是英文的。

時長
45–50 分鐘
設計
一個系統,端到端
提示
最多兩次小提示
白板
Vera 看得懂的共用白板

這一輪如何進行

  1. 01

    需求和範圍

    Vera 用一兩句話說明題目,然後請你提問。在畫任何框之前,先確定系統必須做什麼、規模多大,以及你的假設。

  2. 02

    高階設計

    端到端走一遍主要流程。準備好被問 API、資料模型,以及為什麼選這種儲存方式。

  3. 03

    深入細節

    Vera 會挑出風險最高或講得最少的部分,問它實際上如何運作,而不是它叫什麼名字。

  4. 04

    擴展和故障

    一次一個變化:負載成長十倍、某個節點在請求途中故障、某個 key 變成熱點。什麼會先出問題,使用者又會看到什麼?

  5. 05

    收尾

    說出你的設計中最弱的部分、你會如何監控和上線,以及第二版會加上什麼。

報告評哪些面向

每項能力都會對照你所在級別的標準線評 1 到 5 分,並附上評分所依據的原話和你說出它們的時間。報告最後會給出下一步最該改的一件事。

  • 需求與範圍 Requirements and scoping
  • 結構與主導節奏 Structure and driving
  • API 與資料模型 API and data model
  • 架構 Architecture
  • 深度 Depth
  • 取捨 Trade-offs
  • 擴展與故障處理 Scale and failure handling
  • 溝通 Communication

Lead 級別還會評: 可維運性與成本(Operability and cost)、範圍與影響力(Scope and influence)。

真實面試中這一輪如何進行

系統設計面試通常持續 45 到 60 分鐘,步驟大致相同:釐清需求,勾勒 API 和資料,畫出一個能端到端運作的簡單設計,深入談兩三個部分,最後討論瓶頸和改進。根據我們讀過的準備指南,最常見的失敗方式是時間用完了,卻沒有拿出一個完整連貫的設計。

閱讀完整指南(英文)

Regular 和 Lead 級別

Regular
Vera 會溫和地引導。如果你直接開始畫框,會先被問需求和規模;如果卡住了,會得到一個關於下一部分的小提示。
Lead
Vera 不會幫你安排結構。由你主導節奏,挑出有風險的部分,並談到成本、維運和對團隊的影響。只要提到一項技術,你就會被問它在這裡具體如何運作。

時長:Regular 級別 45 分鐘,Lead 級別 50 分鐘。

在各個職位中

開始之前,先看看回饋

由真實報告流程產生的完整報告,學生是虛構的,面試是依腳本進行的。

常見問題

需要畫圖,還是只要用說的?

都要。你一邊說一邊在共用白板上畫框和箭頭,Vera 會看你新加的內容並據此提問,就像面試官站在你身後看你畫一樣。

會有哪些變化?

在擴展和故障階段,Vera 一次只改變一個條件,例如負載變成十倍、某個節點在請求途中掛掉,或者出現熱點 key,然後問你什麼會先出問題、使用者會看到什麼。

資料科學、機器學習和量化職位也有系統設計面試嗎?

有。資料科學設計的是實驗、指標框架或分析資料管線。機器學習設計的是正式環境的機器學習系統。量化設計的是撮合引擎、行情處理程式或低延遲資料管線。

Vera 會告訴我正確答案嗎?

不會。如果你問 Vera 怎麼看,你會得到一個簡短、平衡的分析:某個方案帶來什麼、付出什麼代價,但絕不會給出結論。之後的報告會告訴你哪裡做得好、哪裡需要改。

Mockich 怎麼用 · 所有輪次和職位