最近剛結束 Oracle 26NG SDE 的完整面試流程,從 Screening 到五輪 VO 再到 HM call,整體節奏非常緊湊,幾乎沒有“放水”的輪次。Screening 遇到的是一位非常友好的華人面試官,溝通順暢、體驗很好;但進入 VO 後畫風明顯變化,連續幾輪技術面試 push 感很強,追問密集,整體更偏向真實工作場景下的工程能力考察。
Phone Screening
Screening 的題目是用 Golang 實現一個 simplified Redis-like data structure。面試官先簡單確認語言熟練度,然後直接進入 coding,沒有太多鋪墊。
核心要求是設計一個可以同時支援 string 和 list 的 key-value 儲存結構,需要實現 set、list.push、get 和 list.remove 等操作。其中 remove 的規則比較細:count > 0 刪除前 N 個,count < 0 刪除後 N 個,count = 0 刪除全部。另外還提到 expiration,但明確說可以 deferred,實現思路即可。
這一輪真正考的不是語法,而是抽象能力——如何統一不同資料型別的儲存?是用 interface 還是 struct?list 刪除如何避免不必要的遍歷?寫到一半時面試官還會問時間複雜度,以及如果資料量變大會怎麼最佳化。
整體更像一次 mini system design + coding 的結合,只要結構清晰、程式碼乾淨,基本就穩了。
VO Round 1 – LRU Cache
第一輪 VO 上來就是經典的 LRU cache,沒有任何鋪墊,直接讓你講思路然後開寫。
常規解法當然是 HashMap + Doubly Linked List,重點在於保證 get 和 put 都是 O(1)。不過 Oracle 的面試官明顯不滿足於模板答案,在寫完後立刻開始 follow-up:如果是多執行緒環境怎麼辦?如何減少鎖競爭?有沒有更 scalable 的方案?
這一輪的感覺是——題目不難,但深度取決於你能聊多工程化。如果只停留在 LeetCode 層面,很容易被繼續追問。
VO Round 2 – Merge Sorted Lists
這一輪的節奏非常典型:先給一道相對簡單的 merge two sorted lists,當你快速寫完後,馬上升級為 Merge K Sorted Lists。
面試官其實在觀察兩件事:你是否會主動分析複雜度,以及是否知道更優解。雙連結串列解法寫完後,如果你自己提到可以用 min heap 把複雜度降到 O(N log K),基本會被認為思路成熟。
這一輪整體壓力不大,但非常考察基本功——屬於“不會掛,但能拉開差距”的題。
VO Round 3 – Delete Target Leaf Nodes from Binary Tree
第三輪是典型的遞迴樹題:刪除所有值等於 target 的 leaf nodes。但真正的難點在於,當 leaf 被刪除後,它的父節點可能變成新的 leaf,需要繼續判斷。
這其實是在考察你是否具備良好的 recursion 設計能力,比如是否知道用後序遍歷,是否能透過返回值直接告訴父節點“我該不該被刪”。
面試官對程式碼可讀性看得很細,包括命名、結構,以及是否有多餘邏輯。整體寫下來會發現——Oracle 對“production-style code”確實有要求,而不是隻看能不能 AC。
VO Round 4 – Project Deep Dive + Coding
前半段是深挖簡歷,而且挖得非常細。從系統為什麼這麼設計,到 tradeoff,再到如果重新做會如何最佳化,幾乎每個點都會被追問。很多人其實不是 coding 掛,而是掛在這裡——因為對自己的專案不夠熟。
後半段的 coding 是設計一個 Hospital Appointment Booking API。場景是醫院有 1000 名醫生,每位醫生從 9AM 工作到 5PM,每 15 分鐘一個 slot。API 需要為指定醫生在指定日期預訂“最早可用”的時間,並在多次 POST 請求之間保持狀態。
這題本質上是輕量 system design。如何建模 doctor 和 slot?如何快速找到 earliest availability?如何避免 double booking?如果有併發怎麼辦?只要你開始主動聊 optimistic locking、資料結構選擇或者狀態管理,面試官通常會頻繁點頭。
這一輪非常看工程思維,而不是演算法技巧。
VO Round 5 – Hiring Manager Call
最後一輪是 HM behavior,沒有演算法,但千萬別放鬆警惕。面試官重點問了兩個方向:你平時如何做 prioritization?當系統出現 failure 並影響客戶時,你會如何處理?主要不是讓你背 STAR,而是看你的思考方式是否像一個可靠的 team member。
給正在準備 Oracle 的你
如果你最近也在準備 Oracle 或其他大廠 VO,其實提前熟悉高頻題真的非常關鍵。很多面試看起來不難,但一旦被連續 follow-up,沒有系統準備的人很容易當場卡住。我們這邊整理過大量真實 coding 和 VO 題目,覆蓋面非常高,能幫你快速建立正確的解題和應對思路。
另外,如果對自己的臨場發揮不太有把握,也可以瞭解一下 programhelp 的 面試輔助支援 。針對 OA、技術面等關鍵環節,都有成熟的協助方案,整體過程安全穩定。提前準備 + 合理支援,往往比臨時硬扛更穩。