最近 Amazon 2026 SDE Intern 的 OA 和 VO 正在大量发放,身边陆续有同学收到面试邀请,也有不少人已经拿到 Offer。与此同时,不少同学也在关注 Amazon SDE 2 salary 的行情——毕竟 Intern 转正之后直接对应的就是 SDE 1/2 的薪资体系,提前了解也是对自己负责。
我走完整条流程后最大的感受是:Amazon 的面试远比想象中更难——不是因为算法题有多偏,而是 Leadership Principles 的追问深到让人窒息,Coding 的 Follow-up 也几乎不给人喘息空间。如果你正在准备 Amazon SDE Intern 或 New Grad,希望这篇整理能给你一些实在的参考。

Amazon 2026 SDE Intern 时间线
- 3.9 OA
- 3.12 / 3.17 保温
- 4.6 收到面试邀请
- 4.10 面试小延期
- 4.21 VO 两轮(60 分钟/轮)
- 4.23 收到 Offer(AWS 团队)
从 OA 到 Offer 前后将近两个月,中间等待期比较煎熬,保温邮件收了两封,不用太焦虑,耐心等就好。
Amazon SDE 2 Salary 参考(2026,美国)
亚麻的薪资结构和很多大厂不太一样,base salary 有硬性上限(目前约 $175K–$185K),超出部分全靠 RSU 和 sign-on 补齐,所以谈 offer 的时候重点要放在股票上,而不是死磕 base。
总包构成
| 组成部分 | 说明 |
|---|---|
| Base Salary | 固定月薪,SDE 2 通常在 $150K–$185K 区间 |
| RSU(限制性股票) | 主要浮动部分,4年 Vesting,5/15/40/40 分配 |
| Sign-on Bonus | 入职前两年补偿 RSU vesting 较慢的现金奖励 |
| 年终奖 | 亚麻不设传统年终奖,部分团队有小额 performance bonus |
第一轮 VO(AWS 团队,SDE I + SDE II 双面试官)
进会议室之后发现屏幕里有两个人,一位 SDE II,一位 SDE I,SDE I 主导提问,SDE II 旁听偶尔插话。这个安排比较少见,大概率是带新人或者内部 calibration,不用想太多,正常应对就行。
BQ 环节(约 20 分钟)
开场先聊了几句自我介绍,然后直接进入两个 LP 问题。
LP 1:Missing Deadline
问你有没有遇到过没能按时交付的经历,怎么处理的。
这道题的坑在于很多人会把重心放在”解释为什么没完成”,但亚麻想听的是你如何识别风险、如何主动沟通、如何重新排优先级。我用的故事是一次课程项目中发现上游依赖 delay,当时的处理是:
- 提前两周识别出风险,没有等到 deadline 才暴雷
- 主动同步给 PM 和 stakeholder,给出两个备选方案和对应时间估计
- 和团队重新拆解任务,优先保证 MVP 可交付
- 最终晚了三天交付,但核心功能完整,stakeholder 没有提出异议
回答完 SDE I 追问了一句:”如果时间还能再往前推,你会在哪个节点做得不一样?” 这种追问其实是在考你有没有真正复盘,我回答了应该在项目启动阶段就设置更细的 milestone checkpoint,他点了点头。
LP 2:Invent and Simplify
问你有没有主动简化一个复杂系统或流程的经历。
重点不是”我做了一个很酷的东西”,而是你为什么觉得原来的方案复杂、你是怎么发现简化空间的、简化之后带来了什么可量化的改进。我用的例子是把一个多步骤的数据处理脚本重构成流水线,减少了约 40% 的运行时间,同时降低了新人上手的理解成本。
SDE II 这时候插了一句:”你当时有没有考虑过简化可能带来的风险?” 我回答了做了回归测试并且保留了旧版本作为 fallback,他没有继续追。
Coding(40 min)
题目一:合并 K 个有序链表
题目就是 LeetCode 23,给定 K 条已经升序排列的链表,将它们合并成一条有序链表。
我直接说用优先队列,面试官点头示意可以开始写。
核心思路:
- 把每条链表的头节点压入最小堆
- 每次取出堆顶节点接入结果链表,再把该节点的 next 压入堆
- 时间复杂度 O(N log K),N 是所有节点总数,K 是链表数量
代码写完之后我主动走了一遍 trace,用三条链表 [1->4->5], [1->3->4], [2->6] 演示了一遍堆的变化过程,两位面试官都在看。
Follow-up:如果内存有限,无法一次性加载所有节点怎么办?
这个追问有点超出预期,我停了几秒想了一下,回答了两个方向:
- 外部排序思路:把链表分批加载,每次只在内存中维护当前批次的堆,归并结果写回磁盘,最终多路归并
- 分治归并:两两归并,每次只需要在内存中同时维护两条链表,反复迭代直到剩最后一条
面试官说”这个方向对,你能说说两种方式的 IO 次数差异吗?” 我答了分治在最坏情况下需要 log K 轮,每轮需要读写全部数据,IO 代价是 O(N log K)。他点头说 yes,没有继续深挖。
题目二:编辑距离
题目是 LeetCode 72,给定 word1 和 word2,求最少操作数将 word1 转换成 word2,允许插入、删除、替换三种操作。
经典二维 DP,我直接定义状态和转移方程:
dp[i][j] = word1 前 i 个字符转换为 word2 前 j 个字符的最少操作数
if word1[i] == word2[j]:
dp[i][j] = dp[i-1][j-1]
else:
dp[i][j] = 1 + min(
dp[i-1][j], // 删除 word1[i]
dp[i][j-1], // 插入 word2[j]
dp[i-1][j-1] // 替换
)
写完之后 SDE I 直接上 Follow-up。
Follow-up 1:只允许插入和删除,不允许替换,状态转移方程怎么改?
我想了一下,替换本质上等于先删除再插入,代价从 1 变成 2,所以只需要把 dp[i-1][j-1] + 1 改成 dp[i-1][j-1] + 2 即可,其余不变。他说对,继续问。
Follow-up 2:如何将空间复杂度优化到 O(min(m, n))?
标准滚动数组优化,让较短的那个词作为列,只保留当前行和上一行。需要注意的是在更新 dp[i][j] 之前要用一个临时变量暂存 dp[i-1][j-1] 的值,否则更新之后就丢失了。我写出来之后他们看了一眼说 good。
写在最后
这次 Amazon SDE Intern 能顺利通过,我最大的感受是:一个人准备真的很吃力。
从 Leadership Principles 的故事打磨,到 Coding Follow-up 的深度应对,再到系统设计细节的梳理,我一个人摸索了很久。后来找到 Programhelp 后,效率提升非常明显。如果你也在准备 Amazon Intern、New Grad,或者其他大厂的面试,感觉一个人复习方向不清晰、压力比较大,可以考虑了解一下 Programhelp。
他们专注提供 OA 实战辅助 和面试指导,学长会直接跟你沟通,根据你的具体情况给出实用建议。
有需要的同学可以直接联系 Programhelp 详谈。感谢阅读,祝大家早日拿到心仪 Offer!