面試真題講解
逐題講清解題思路、關鍵實作與常見追問。
資料工程面試:如何設計 SCD Type 2 維度並保留正確歷史?
用代理鍵、左閉右開有效區間、冪等載入、刪除語義、遲到修正和不變量檢查,設計時點正確的 SCD Type 2 維度。
如何回答「分享一次你輔導同事成長的經歷」?
用 STAR(R) 說清楚你如何診斷同事的成長障礙、共同設定目標、提供逐步撤除的支持,並用獨立完成能力而非自己的投入證明輔導有效。
作業系統面試:什麼是檔案描述符,如何診斷 Too many open files?
從行程 FD 表、open file description、EMFILE 與 ENFILE,到 /proc 診斷、洩漏判定、容量預算和修復驗證,完整回答 Linux 檔案描述符故障題。
產品經理面試:如何決定是否下線一項功能?
用依賴用戶分群、機會成本、遷移門檻與分階段退場計畫,判斷低使用率功能應繼續投入、進入維護模式,或安全下線。
前端面試:React key 如何控制狀態保留與重新掛載?
從可編輯列表錯行和詳情表單串狀態出發,解釋 React 如何按類型、位置與 key 判斷元件身分,並給出穩定鍵、主動重設與狀態保留的決策規則。
後端面試:如何解釋 OAuth 授權碼流程與 PKCE?
從授權請求、回呼與權杖交換推導 OAuth 授權碼流程,區分 state、PKCE、用戶端驗證與 OIDC,並用攻擊情境和失敗測試驗證實作。
演算法面試:如何序列化與反序列化二元樹?
用帶空節點標記的前序走訪設計可逆編碼,證明解碼器如何剛好消耗一棵子樹,並處理格式錯誤、深樹邊界與替代格式。
資料工程面試:如何設計變更資料擷取(CDC)管線?
從 PostgreSQL WAL、初始快照與來源位置推導無缺口 CDC 管線,並處理至少一次傳遞、刪除、Schema 演進、複寫槽風險、重播與資料對帳。
系統設計面試:如何設計集中式日誌系統?
從本機緩衝、持久訊息流、選擇性索引和物件儲存歸檔出發,設計能承受日誌風暴、下游故障、高基數欄位和多租戶雜訊的集中式日誌平台。
如何回答「分享一次你改善工作流程的經歷」?
用 STAR 說清楚你如何發現流程瓶頸、建立改善前基準、推動試行與採用,並用成果指標、品質護欄和檢討證明改善真實且可持續。
產品經理面試:如何做自建或採購決策?
透過硬性門檻、總持有成本、機會成本、真實工作流程試行與退出設計,判斷應該自建、採購,或採用混合方案。
前端面試:JavaScript 事件迴圈如何運作?
從 task、microtask checkpoint 與渲染機會推導程式輸出,解釋微任務飢餓為何會卡住輸入與繪製,並選擇真正能讓出主執行緒的拆分方案。
網路面試:TLS 1.3 交握如何運作,何時能使用 0-RTT?
從完整交握、憑證認證、HKDF 金鑰衍生到工作階段恢復與 HTTP 重播風險,說清楚 TLS 1.3 的真實安全邊界和上線決策。
後端面試:如何防範 SQL Injection?
以伺服器端參數化查詢分離 SQL 程式碼與資料,透過固定允許清單映射動態識別符,同時守住租戶授權邊界,並驗證原生查詢、預存程序與二次執行路徑。
演算法面試:如何求資料流的動態中位數?
用最大堆積維護較小的一半、最小堆積維護較大的一半,從不變量推導 O(log n) 插入與 O(1) 查詢,並涵蓋邊界、正確性證明及滑動視窗追問。
系統設計面試:如何設計雲端檔案儲存與多裝置同步服務?
從分片上傳、不可變檔案版本與游標增量同步出發,設計支援斷點續傳、離線編輯、衝突副本、版本還原與安全回收的雲端硬碟服務。
資料工程面試:如何診斷並修復 Kafka 熱分割區?
從分割區層級 lag 與 key 分布定位 Kafka 熱分割區,計算積壓成長速度,再依真實順序邊界選擇限流、分割區內並行、新分割 key 與安全遷移方案。
如何回答「分享一次你處理多個衝突優先順序的經歷」?
用一段真實經歷說清楚你如何辨識產能衝突、比較截止時間與影響、提出範圍和時程選項、讓利害關係人確認取捨,並同時交代延後事項的結果。
產品經理面試:如何制定新 B2B SaaS 產品上市計畫?
透過一個 B2B SaaS 上市案例,練習選擇首發客群,將定位、包裝定價與通路連到購買流程,並用分階段門檻決定擴大、調整或暫停。
前端面試:如何防範 Web 應用程式的 XSS?
沿著不可信資料到瀏覽器注入點的路徑排查風險,依產品需求選擇文字渲染或 HTML 淨化,並用 CSP、Trusted Types 與對抗測試補上縱深防禦。
TCP 連線生命週期:三向交握、關閉與 TIME_WAIT
從序號同步、連線狀態與主動關閉端出發,解釋 TCP 如何建立與關閉,並用暫時連接埠容量、socket 狀態與封包證據診斷 TIME_WAIT 和連線逾時。
後端面試:如何設定資料庫連線池大小並排查連線耗盡?
從資料庫總連線預算、請求併發和副本數量推導連線池上限,再用應用程式排隊與 PostgreSQL 工作階段狀態區分池過小、連線洩漏和資料庫過載。
演算法面試:如何用二分搜尋目標值的首尾位置?
用 lower bound 與 upper bound 統一處理重複值、空陣列和目標不存在的情況,並透過半開區間不變量證明 O(log n) 解法正確。
系統設計面試:如何設計分散式鎖服務?
從強一致鎖狀態、租約續期與 fencing token 出發,設計能抵禦程序暫停、網路分割、回應遺失與主節點故障的分散式鎖服務。