微軟面試問題
作者 Aaron Cao · 更新於

微軟的面試流程結合三種題型:中等難度的資料結構與演算法程式設計題、圍繞成長型思維與從失敗中學習展開的行為面試題,以及針對資深職位的系統設計關卡。大多數關卡都會以簡短的履歷說明作為開場。
微軟面試的三種題型是什麼?
網路上大多數題目清單都是一堆雜亂列出的問題,並未標明各題屬於哪個關卡,這讓人很難有針對性地準備。本節依提問關卡為題目分類,讓你了解每位面試官實際在考核什麼。微軟的面試流程清楚分為程式設計、行為面試,以及針對資深職位的系統設計三類。
- 程式設計。每個關卡一道題,通常在共用編輯器中一邊解題一邊講述你的思路。考核資料結構與演算法,並隨著解題過程不斷追加限制條件。
- 行為面試。關於你如何工作的問題,圍繞學習與調整展開,而非條列你的成就。
- 系統設計。一個開放式的服務設計與擴充問題,是資深與首席職位面試的標準關卡。
「視情況而定」面試官——加入面試流程、對最終決定握有較大話語權的資深人士——可以從以上任一類別中取題。把這個關卡當成獨立一類來準備是個誤區。整個流程的架構詳見公司面試主題專區。
哪些程式設計題最常出現?
根據各方回報,反覆出現的題目類別相當一致:
- 陣列與字串處理,包括原地修改與雙指標問題
- 雜湊表問題,關鍵在於選擇以什麼作為鍵值
- 鏈結串列操作、反轉與環狀偵測
- 二元樹:走訪、深度、路徑總和以及最近共同祖先
- 圖形走訪,包括廣度優先與深度優先搜尋
- 入門難度區間的動態規劃,例如爬樓梯與硬幣找零的變化題
- 字串與陣列上的滑動視窗問題
難度並沒有傳聞中那麼極端。真正讓微軟程式設計關卡變難的不是題目本身,而是你必須一邊口頭講解思路,一邊應對面試官不斷追加的限制條件。默不作聲交出可執行的解法,得分反而不如思路清楚卻只完成部分的解法。
微軟的行為面試題是怎麼問的?
成長型思維是微軟官方倡導的文化框架,行為面試題也由此而來。你會遇到要求你描述犯錯經驗、接受批評或改變立場的問題:
- 說說你曾經歷的一次失敗,以及之後有哪些改變
- 描述你收到過的一次尖銳回饋,以及你如何應對
- 說說你和同事的一次分歧,以及最終如何化解
- 描述一次你必須快速學習陌生事物的經驗
- 為什麼選擇微軟,為什麼選擇這個團隊
一位從新創公司轉職到資深職位的後端工程師準備了四個詳細的故事,並在整個面試流程中重複運用,依實際問題調整敘述角度。面試官事後會互相對照筆記,所以重點不在於故事數量多樣,而在於每個故事都經得起針對你具體決策的追問。把每個故事依情境、行動、結果來架構,並讓「行動」部分佔最長篇幅。
更多針對特定職位的題庫與練習題組,彙整在面試問題主題專區。
把答案大聲說出來練習
只是閱讀題目清單,帶來的是「眼熟」,而非「熟練」。這種落差會在你必須當場、對著等待回應的人給出結構化答案時暴露出來。計時朗讀、大聲練習答案才能補上這個落差,在模擬面試頁面上對著 AI 面試官做這項練習是可行的。
在真實的面試關卡中,SubcueAI 以原生 macOS 與 Windows 應用程式的形式運作,擷取系統音訊與你的麥克風輸入,並在懸浮的本機疊加層中顯示建議;同時也有瀏覽器擴充功能,其側邊欄可在 Chromium 系瀏覽器上為會議分頁提供即時協助,只擷取該分頁的音訊。整個過程沒有機器人加入通話,也不會向會議頁面注入任何內容。
老實說,這裡有一個明確的限制:程式設計關卡。微軟面試在 Microsoft Teams 上進行,程式設計關卡通常代表要分享螢幕,這會讓本機疊加層出現在面試官所看到的畫面裡。這個限制只適用於分享螢幕的程式設計關卡,不適用於招募人員面談、行為面試關卡和設計討論。