後端工程師面試問題:面試官到底會問什麼

作者 Aaron Cao · 更新於

後端工程師面試問題:面試官到底會問什麼
後端面試通常集中在五個方向:API 設計、資料庫與資料建模、快取與效能、並行處理與可靠性,以及系統設計環節,通常還會搭配一輪程式題。面試官在意的不是你講出了哪些工具名稱,而是你能不能講清楚取捨,並回顧一次你親自除錯過的故障。

後端面試通常集中在五個方向:API 設計、資料庫與資料建模、快取與效能、並行處理與可靠性,以及系統設計環節,通常還會搭配一輪程式題。面試官在意的不是你講出了哪些工具名稱,而是你能不能講清楚取捨,並回顧一次你親自除錯過的故障。

後端工程師面試會考什麼?

後端職缺說明常常列出十幾種技術,很難判斷面試實際上會考哪些。本節整理了後端面試輪次中反覆出現的題目領域。技術堆疊因公司而異,但底層考察的主題相當穩定。

  • API 設計。REST 與 RPC 的取捨、版本管理、分頁、錯誤回應、身分驗證,以及冪等鍵。
  • 資料庫與資料建模。選擇關聯式或文件式儲存、索引、join、交易、隔離等級、N+1 查詢,以及如何安全地執行 schema migration。
  • 快取與效能。快取失效、過期策略、快取雪崩,以及如何分析一個回應緩慢的端點。
  • 並行處理與可靠性。競態條件、鎖、佇列、逾時,以及帶退避機制的重試。
  • 系統設計。例如設計短網址服務、限流器或通知系統。
  • 程式題。資料結構與實務問題,通常可以用你熟悉的語言作答。

語言與框架專項輪次會更深入細節;題庫中心收錄了 Go、Java、Spring Boot、微服務等更多題組。

哪些資料庫與 API 問題最常被問到?

這些問題以各種形式出現在大多數後端面試輪次中。練習時,試著在兩分鐘內大聲講完每一個答案:

  • 替某一欄位加上索引會發生什麼事?什麼情況下加索引反而有害?
  • read committed 與 serializable 隔離等級有什麼差別?什麼時候值得為更嚴格的等級付出代價?
  • 如何在 ORM 中找出並修復 N+1 查詢?
  • 如何讓一個付款端點能安全地被客戶端重試?
  • 當結果集在使用者捲動過程中不斷變化時,該如何分頁?
  • 什麼時候會選擇文件式資料庫而不是關聯式資料庫?
  • 如何在不停機的情況下完成一次欄位改名?

一個有說服力的答案通常遵循同樣的結構:先講出你的預設選擇,再說明這個選擇的代價,最後描述在什麼情況下你的答案會反過來。面試官經常會追問那個「反過來」的情況,所以要準備一個真實的例子。

系統設計與除錯類問題該怎麼回答?

回答系統設計題時,先釐清需求:誰會呼叫這個服務、什麼資料絕對不能遺失、讀寫比例大致如何。接著畫出可行的最簡單設計,只有當你能講清楚是哪個需求逼你這麼做時,才加入快取、佇列或分片。

除錯類問題最能看出真實經驗。一位應徵某支付公司中階職缺的後端工程師被問到:為什麼某個端點在一次部署後延遲翻倍了。他沒有靠猜測原因,而是描述了自己的排查步驟:檢查這次部署改了什麼、比對慢路徑的追蹤紀錄、查看查詢執行計畫,並用同一個延遲指標驗證修復效果。接著他把這次經驗和上一份工作中的一次慢查詢事故連結起來,後續的對話幾乎都圍繞著那次事故展開,而不是圍繞工具展開。

在任何一場後端面試前,都準備好兩個正式環境的故事:一個是你追查到底的 bug,一個是你現在會做出不同選擇的設計決策。

該如何練習?即時助手能幫上什麼忙?

看著答案唸和真正說出來是兩回事。你可以掐著時間把上面的題目列表大聲練一遍,或是用模擬面試工具來提問,並針對模糊的回答進行追問。

在真正的視訊面試中,SubcueAI 會轉錄面試官的話,並在本機的懸浮視窗中草擬結構化的回答重點——你可以在 macOS 或 Windows 桌面應用程式中使用(適用於 Zoom、Google Meet、Microsoft Teams),也可以在瀏覽器擴充功能的側邊欄中用於 Chrome 或 Edge 分頁裡的通話。不會有機器人加入通話。它在對話性質的環節中最有用,例如設計討論與經歷相關的問題。共用畫面的程式題環節、有監考的測驗、預錄的單向面試,以及公司託管裝置,都超出了它能安全涵蓋的範圍,而且你在畫面上分享的任何內容都是可見的。設定方式請見教學頁面。

常見問題

後端工程師面試中常見的問題有哪些?

涉及 API 設計、資料庫索引與交易、快取、並行處理與重試的問題,一個系統設計題目(例如限流器或短網址服務),通常還會有一道程式題。

初階後端面試會考系統設計嗎?

通常會有簡化版本。初階候選人比較可能被要求完成一個小型設計任務,例如為某個功能設計 API,而不是設計完整的分散式系統。中階與資深的面試流程通常會包含專門的設計環節。

後端程式題環節該用哪種語言?

用你最熟悉的語言,除非職缺說明明確要求特定語言。面試官考察的是解決問題的能力與表達的清晰度,和不熟悉的語法搏鬥只會占用你原本該用來講解思路的時間。

時間有限時該如何準備後端面試?

優先準備資料庫與 API 設計相關的問題,完整地大聲練習一次系統設計題目,並準備好兩個正式環境的故事:一個是你除錯過的 bug,一個是你現在會改變的設計決策。

相關問題

← 更多關於 依職位與主題分類的面試問題