← 返回面经列表

Oracle 26NG SDE 全流程复盘:从 Screening 到 5 轮 VO 再到 HM Call,为什么几乎没有一轮在“放水”?

7 分钟

Oracle Interview Recap

最近刚结束 Oracle 26NG SDE 的完整面试流程,从 Phone Screening 到五轮 VO,再到最后的 HM call,整体打下来最明显的感受就是:

这不是一套“前面轻松、后面再筛”的流程,而是从头到尾几乎都在认真考。

Screening 遇到的是一位非常友好的华人面试官,沟通顺畅,体验很好;但一进入 VO,整体风格就明显变了。连续几轮技术面试 push 感都很强,追问密集,而且整体明显更偏向真实工作场景下的工程能力,而不是单纯刷题能力。

如果你对 Oracle 的印象还停留在“题不算太难”,那这套流程会很快让你意识到:它真正拉开差距的地方,不在题本身,而在于你能不能把思路讲清楚、把 tradeoff 讲明白、把工程化 follow-up 接住。


📌 整体流程给人的直观感受

这套 Oracle 26NG SDE 面试流程,结构上很完整:

  • Phone Screening
  • 五轮 VO
  • 最后一轮 Hiring Manager Call

但真正让人有压力的,不是轮次数量,而是几乎每一轮都不太“放水”。

比较明显的特点有三个:

  • 面试官会频繁追问,不太接受只停留在 LeetCode 模板层面的回答
  • 很多题目的第一问不难,但第二层、第三层 follow-up 很工程化
  • 简历、项目和系统设计思维的比重不低,绝不是只刷题就够

也就是说,这更像是在看你能不能在真实团队里稳定写代码、理解系统、处理 tradeoff,而不是单纯判断你能不能 AC。


Phone Screening:Simplified Redis-like Data Structure

Screening 一上来没有太多铺垫,面试官简单确认了一下语言熟练度,然后就直接进入 coding。

题目是用 Golang 设计一个 simplified Redis-like data structure。

核心要求

这个结构需要同时支持:

  • string 类型
  • list 类型

并且要提供类似下面这些操作:

  • set
  • list.push
  • get
  • list.remove

其中 remove 的规则还特意做了细分:

  • count > 0 删除前 N 个
  • count < 0 删除后 N 个
  • count = 0 删除全部

另外,面试官还提到了 expiration,但明确说这一部分可以 deferred,只需要把实现思路讲清楚即可。

这一轮真正考的是什么

这题表面看像数据结构设计,但本质上考的是抽象能力。

真正会被追问的点通常是:

  • 如何统一不同数据类型的存储
  • 是用 interface 还是 struct
  • list 的删除操作如何避免不必要的遍历
  • 如果数据量很大,结构还是否合适

写到一半时,面试官还会主动问时间复杂度,以及如果数据规模上来之后你会怎么优化。

所以这轮其实很像:

一次 mini system design 和 coding 的混合题。

如果你的结构定义清晰、数据抽象合理、代码风格干净,这一轮整体会比较稳。
但如果你只是把它当作一道普通 CRUD 题,很容易在追问里被打穿。


VO Round 1:LRU Cache

第一轮 VO 上来就是经典的 LRU Cache,没有什么过渡,直接让你讲思路然后开写。

第一问其实很标准

常规解法当然是:

  • HashMap
  • Doubly Linked List

核心目标就是保证:

  • getO(1)
  • putO(1)

这一层如果你平时刷题做过,通常不会太难。

难点在写完之后

Oracle 的面试官明显不满足于模板答案。代码一写完,马上开始追问:

  • 如果在多线程环境下怎么办
  • 如何减少锁竞争
  • 有没有更 scalable 的方案

这时候你会很明显感觉到,这轮不是在看你会不会写 LRU,而是在看你能不能把一个 LeetCode 题讲成工程问题。

如果你只停留在“哈希表加双链表”这一层,面试很容易变成被动。
如果你能主动往:

  • 并发控制
  • lock granularity
  • 分片
  • 读写场景差异

这些方向延伸,整轮观感会完全不一样。


VO Round 2:Merge Sorted Lists

这一轮的结构非常典型,也很像很多大厂爱用的节奏:

  • 先给你一道相对简单的 merge two sorted lists
  • 当你快速写完之后,马上升级成 Merge K Sorted Lists

面试官在观察什么

这轮真正想看的是两件事:

  1. 你会不会主动分析复杂度
  2. 你知不知道更优解,不需要面试官一点点喂给你

如果你只是把双链表 / 顺序合并版本写完,不主动往下说,虽然未必直接挂,但上限不会太高。

如果你能自己提到:

  • 继续顺序合并复杂度不够理想
  • 可以用 min heap
  • 把复杂度压到 O(N log K)

那会明显被认为思路更成熟。

这一轮的特点

整体压力不算最大,但非常考察基本功。

这类题典型属于:

不一定让你挂,但很容易拉开层次。


VO Round 3:Delete Target Leaf Nodes from Binary Tree

第三轮是典型的递归树题:删除所有值等于 target 的 leaf nodes。

但这题真正的难点不在题面,而在于:

当一个 leaf 被删除后,它的父节点可能会变成新的 leaf,于是还要继续判断。

这题在考什么

它本质上考的是递归设计能力。

比如你能不能马上想到:

  • 用后序遍历
  • 让子树先处理完
  • 再回头判断当前节点是否应该被删

如果你只是把它当成普通 DFS 题,很容易在中间写出很多额外判断。
真正比较顺的写法,通常会借助递归返回值,让父节点直接知道:

  • 子节点删完后还在不在
  • 自己此刻是不是新的 leaf

Oracle 在这里看得很细

这一轮很明显能感觉到,Oracle 对代码可读性是有要求的。

包括:

  • 变量命名
  • 函数结构
  • 是否有多余逻辑
  • 是否有不必要的特殊分支

也就是说,它不是只看你能不能 AC,而是在看这段代码像不像 production-style code。


VO Round 4:Project Deep Dive + Hospital Appointment Booking API

这一轮非常有代表性,因为它几乎把很多候选人最容易掉的坑都集中到一起了。

前半段:深挖简历和项目

这一部分挖得很细,而且不是那种浅层问法。

追问会集中在:

  • 系统为什么这么设计
  • 当时有哪些 tradeoff
  • 这些 tradeoff 为什么合理
  • 如果重新做一遍,你会如何优化

很多人其实不是 coding 挂,而是挂在这里。原因很简单:

对自己的项目不够熟,或者虽然做过,但没想清楚为什么当时要那样设计。

如果一被问到 tradeoff 就开始模糊,这轮会非常危险。

后半段:Hospital Appointment Booking API

coding / design 题目是设计一个 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,没有算法,但千万不能放松。

因为这一轮看起来不像技术面,实际上仍然是在判断你是不是一个可靠的 team member。

重点问题方向

面试官主要集中问了两个方向:

  • 你平时如何做 prioritization
  • 当系统出现 failure 并影响客户时,你会怎么处理

这一轮为什么不能只背 STAR

很多候选人会觉得 HM call 只要准备几套 behavioral 模板就够了,但这轮其实更像是在看你的判断方式。

面试官真正想知道的是:

  • 你在压力下怎么排序优先级
  • 你会先救火还是先找 root cause
  • 你是否能兼顾客户影响、内部沟通和长期修复
  • 你是不是那种能让团队放心的人

所以这轮的重点不是“故事讲得多漂亮”,而是你有没有体现出可靠、冷静、能承担责任的工作方式。


Oracle 这套流程最明显的风格是什么

如果把整套流程串起来看,会发现 Oracle 的风格很统一:

  • Screening 就开始看抽象能力,不只是语言熟练度
  • 常见算法题背后都会被追问工程化版本
  • 简历深挖和系统建模占比不低
  • HM 轮更看工作方式,而不是表演式 behavioral

换句话说,Oracle 不是靠特别偏的题来筛人,而是靠:

  • 追问
  • 细节
  • 工程化思维
  • 表达稳定性

把候选人的真实水平拉开。

这也是为什么整套流程打下来会觉得:

题并不一定最难,但几乎每一轮都很认真。


📌 最后总结

这场 Oracle 26NG SDE 面试流程最值得记住的,不是某一道具体题,而是它整体的考察方向:

  • Screening 看抽象和结构设计
  • 前几轮 VO 看基础算法能不能讲到工程化
  • 项目深挖和 booking API 那一轮看真实工作能力
  • HM 轮看你是不是一个可靠的团队成员

如果你最近也在准备 Oracle 相关面试,这套流程最值得练的不是“多刷多少题”,而是把每一轮可能被追问的工程思路和项目 tradeoff 提前练熟。

因为真正决定结果的,往往不是第一问,而是你能不能把第二层、第三层 follow-up 稳稳接住。


🚀 oavoservice:你的 Oracle 面试稳定输出保障

如果你也在准备 Oracle、Google、Amazon、TikTok 这类大厂面试,想提前用真实题型做高强度 mock,或者希望在正式面试前把项目表达、BQ 和 system design 节奏打稳,欢迎直接来聊。

我们提供:

大厂面试实时辅助 — Coding、BQ、System Design 全程支持
真实原题 mock — 尽可能还原实际面试节奏
项目深挖训练 — 不只练算法,也练 tradeoff 和表达
高压 follow-up 训练 — 帮你把第二层、第三层追问接稳

如果你想找我辅助面试,或者用真实面经原题做 mock,感受最接近实战的 feedback,也欢迎直接来聊。

👉 立即添加微信:Coding0201

Telegram: @OAVOProxy
Gmail: [email protected]