很多人对 Meta 的面试流程只有模糊印象。这篇按真实节奏完整复盘一次:先一轮 technical 电面,通过后进 Virtual Onsite 五轮(两轮 Coding + 两轮系统设计 + 一轮 BQ)。逐轮还原真题、考点和临场策略,帮你把握每一轮的得分点。
Meta 面试流程速查表
| 阶段 | 轮次 | 核心考点 |
|---|---|---|
| 电面 | 1 轮 technical | 两道 coding,bug-free |
| VO | Coding × 2 | 数据结构 + 经典高频题 |
| VO | System Design × 2 | feed / 卖货功能 |
| VO | Behavioral × 1 | owner 意识 + 协作经历 |
一、Technical 电面
电面遇到的是一位白人 Manager,开始比较严肃。考了两道题:
- 第一题:LeetCode 408(Valid Word Abbreviation),难度不大,一次写对。面试官追问了 leading zeros 的处理——这是高频 follow-up,缩写中的数字不能有前导零。
- 第二题:LeetCode 528 变种,题目改成 city 和距离,需要自己想清楚如何用前缀和 + 二分按权重随机选择。
电面表现好的话,很快能被推荐到更高的 level,所以一定要写得干净、讲清思路。
# LeetCode 408 核心:缩写匹配,注意 leading zeros
def valid_word_abbreviation(word, abbr):
i = j = 0
while i < len(word) and j < len(abbr):
if abbr[j].isdigit():
if abbr[j] == '0': # 前导零非法
return False
num = 0
while j < len(abbr) and abbr[j].isdigit():
num = num * 10 + int(abbr[j]); j += 1
i += num
else:
if word[i] != abbr[j]:
return False
i += 1; j += 1
return i == len(word) and j == len(abbr)
二、VO 第一轮 Coding:数据结构设计
面试官态度友好。第一题 Merge Sorted Arrays,很基础,快速通过。第二题要求设计一个数据结构,除支持 add / get / delete (key, value) 之外,还要支持 last 操作(返回最近插入的 key)。
核心是用哈希表 + 记录插入顺序:
class LastDict:
def __init__(self):
self.data = {}
self.order = [] # 记录插入顺序
def add(self, key, value):
if key not in self.data:
self.order.append(key)
self.data[key] = value
def get(self, key):
return self.data.get(key)
def delete(self, key):
if key in self.data:
del self.data[key]
self.order.remove(key)
def last(self):
return self.order[-1] if self.order else None
三、VO 第二轮 Coding:经典高频题
面试官是一个年轻的 Manager,气氛轻松。第一题 LeetCode 54(螺旋矩阵),第二题与树相关,需要用 DFS,两题都很快通过。第二题还涉及 Top K Frequent Elements(用堆或桶排序)。
写完后我口头描述了几个 test case 并模拟运行,面试官确认无误。Meta 的 coding 轮非常看重 bug-free 实现和测试意识——主动跑 test case 是加分项。
四、VO 第三轮 System Design:设计 Instagram Feed
面试官是 Instagram infra 的工程师,一上来就说不会和我互动,要求自己把功能设计完整。题目是设计 Instagram,支持 feed generation。准备充分能覆盖:
- API 设计:发帖、拉取 feed 的接口
- 数据库 schema:用户、帖子、关注关系
- 组件划分:feed 服务、post store、缓存
- pull vs push 模型对比:普通用户 push,名人 pull
- 缓存策略:timeline 缓存、热点数据
面试官不互动时,更要自己把 trade-off 讲透,主动抛出权衡点。
五、VO 第四轮 System Design:Instagram 卖货功能
题目是设计 Instagram 上的卖货功能,支持 Post Item、Search、Bid。面试官是做 Security 的国人,互动性很强,重点追问:
- 高效实现 Search:indexing 的几种方法(倒排索引、前缀树)
- Bid 功能防作弊:如何防止买家自我炒作、刷单
由于互动性强,要随时接住追问并调整设计,体现对安全和真实业务场景的理解。
六、VO 第五轮 Behavioral
面试官是印度 Manager,口音较重,有道题没听清还请他重复。整体交流顺畅,讲了几段过往项目和协作经历。
Meta 的行为面不像 Amazon 那样几乎全程考 Leadership Principles,但仍会通过问题验证候选人是否有 owner 意识。常见题:conflict、failure、most impactful project。
总结:两轮系统设计是分水岭
整体感觉:电面表现好很快能被推荐到更高 level;VO 五轮里 coding 相对常规,考 bug-free 实现和测试意识;而两轮系统设计是核心分水岭,Meta 非常看重候选人在设计层面的思考深度和 trade-off 把握。
FAQ
Q1:Meta 面试一共几轮?流程是怎样的? 先一轮 technical 电面(两道 coding),通过后进 Virtual Onsite 五轮:两轮 Coding、两轮 System Design、一轮 Behavioral。电面表现好可能被推到更高 level。
Q2:Meta 的 coding 轮考什么?难度如何? 以 LeetCode 中等高频题为主(如 408、54、Top K、数据结构设计),难度不极端。重点是 bug-free 实现 + 主动跑 test case,写完口头模拟运行是加分项。
Q3:Meta 系统设计轮最看重什么? 设计深度和 trade-off。两道高频是 Instagram feed generation(pull/push 模型)和卖货功能(Search indexing + Bid 防作弊)。有的面试官不互动,要自己把权衡讲透。
Q4:Meta 的 BQ 和 Amazon 有什么不同? Meta 不像 Amazon 几乎全程考 Leadership Principles,行为面更轻,但仍会验证 owner 意识。常见 conflict、failure、most impactful project,结合真实项目讲即可。
Q5:Meta 面试如何拿到更高 level? 电面和 coding 轮务必干净利落、bug-free,把表达和测试意识做满;真正拉开差距的是两轮系统设计——能就关键 trade-off 深入展开的人更容易拿到高 level。
正在准备 Meta 面试?
如果你 coding 能过但系统设计讲不深,或想在 onsite 前把电面 + 五轮的节奏完整演练一遍,欢迎交流:可提供逐轮考点拆解、系统设计复盘框架与表达陪练,针对 Meta 流程定制。
联系方式
需要面试真题与定制备战计划?立刻联系微信 Coding0201,获取真题。
Email: [email protected] Telegram: @OAVOProxy