本文不再重复 LeetCode 风的题解清单,而是把 Apply → OA → VO → HM → Offer → 谈判 这条链路按"周"拆开,对照 oavoservice 学员近一年 24 份 TikTok SDE NG 复盘的真实节奏,给出能直接抄作业的备战时间表。
一、整体流程鸟瞰
Week 0 内推 / 直投
│
▼
Week 1-2 OA 邀请 (110 分 7 题, 120 min)
│
▼
Week 2-3 VO Round 1 — DSA Coding (60 min)
│
▼
Week 3-4 VO Round 2 — Project Deep Dive (60 min)
│
▼
Week 4-5 VO Round 3 — HM Behavioral (45 min)
│
▼
Week 5-6 Team Match / HC
│
▼
Week 6-8 Offer Call + Negotiation
关键结论:从 Apply 到拿 Offer,TikTok NG 通道平均 6–8 周;内推走得快的 4 周完成,直投慢的拖到 10 周以上。
二、各阶段时间线与做什么
| 周次 | 阶段 | 候选人主要任务 | 关键节点 |
|---|---|---|---|
| W-2 | 准备 | 简历 ATS 化、刷完 TT tag 100 题 | 至少 3 个 senior 内推人 |
| W0 | Apply | 同时走内推 + Career site | Recruiter outreach 24h 响应 |
| W1 | OA 邀请 | 110 分 7 题刷题套卷 | 完整模拟一次 120min |
| W2 | OA 后 | 立即整理 OA 出题方向 | OA ≥ 70 分一般 1 周内推进 |
| W3-4 | VO1 + VO2 | DSA 模拟 + 项目讲稿打磨 | 项目 STAR 化 |
| W5 | HM 行为面 | "Why TT" + 团队 fit | 准备 3 个 culture-match 故事 |
| W6 | HC | recruiter 主动通知 | 一般 3-5 个工作日 |
| W7-8 | Negotiation | 准备竞争 offer / counter | base / RSU / sign-on 分别谈 |
三、内推 vs 直投 vs Cold-LinkedIn
| 渠道 | OA 邀请率 | 平均响应时间 | 备注 |
|---|---|---|---|
| Senior+ 内推(L6+) | ~70% | 3–5 天 | 强烈推荐 |
| Junior 内推(L3-L5) | ~45% | 5–10 天 | 视团队 headcount |
| Career site 直投 | ~20% | 2–3 周 | 多投不同 req |
| Recruiter LinkedIn cold | ~30% | 1–2 周 | 简历必须 hook 住 |
学员真实数据:24 人中 17 人靠内推进入流程,平均比直投快 9 天。
四、OA 阶段:110 分 7 题速览
TikTok OA 是自研平台,题目按难度递增(10–25 分 / 题),常见 7 题组合:
- 字符串处理(10 分)
- 数组前缀和(15 分)
- 滑动窗口(15 分)
- 二分查找(20 分)
- BFS / DFS(20 分)
- DP(20 分)
- 综合实现题(10 分)
示例:滑动窗口经典——视频观看时长聚合
给定一个长度为 n 的整数数组
views,表示每秒的观看人数。求长度为 k 的连续区间中,前 k/2 大的元素之和的最大值。
import heapq
from collections import Counter
def max_top_half_sum(views, k):
n = len(views)
half = k // 2
if n < k:
return 0
# 用两个堆维护前 half 大
big = [] # 当前 top-half 的最小堆
small = [] # 其余的最大堆 (取负)
big_sum = 0
removed = Counter()
best = float('-inf')
def add(x):
nonlocal big_sum
if not big or x > big[0]:
heapq.heappush(big, x)
big_sum += x
else:
heapq.heappush(small, -x)
balance()
def remove(x):
nonlocal big_sum
removed[x] += 1
if big and x >= big[0]:
big_sum -= x
balance()
def prune(h, sign=1):
while h and removed[sign * h[0]] > 0:
removed[sign * h[0]] -= 1
heapq.heappop(h)
def balance():
nonlocal big_sum
prune(big, 1); prune(small, -1)
while len(big) - sum(removed[v] for v in big) > half:
v = heapq.heappop(big)
big_sum -= v
heapq.heappush(small, -v)
prune(big, 1)
while len(big) - sum(removed[v] for v in big) < half and small:
v = -heapq.heappop(small)
heapq.heappush(big, v)
big_sum += v
prune(small, -1)
for i in range(n):
add(views[i])
if i >= k:
remove(views[i - k])
if i >= k - 1:
best = max(best, big_sum)
return best
时间复杂度:O(n log k) 空间复杂度:O(k)
评分要点:能 正确实现 lazy-deletion 堆 是 OA 通过 800 分的关键。
五、VO Round 1:DSA Coding(60min)
形式:60 分钟、CoderPad、1 道中等 + 1 道延伸;常见方向:
- 图论:拓扑排序 + 环检测
- 字符串:滑窗 / 双指针
- 设计:LRU / 限流器
示例:API 限流器(Token Bucket)
import time
class TokenBucket:
def __init__(self, capacity, refill_rate):
self.capacity = capacity
self.refill_rate = refill_rate
self.tokens = capacity
self.last = time.time()
def allow(self):
now = time.time()
elapsed = now - self.last
self.tokens = min(self.capacity, self.tokens + elapsed * self.refill_rate)
self.last = now
if self.tokens >= 1:
self.tokens -= 1
return True
return False
面试官追问:分布式怎么做?→ Redis + Lua + sliding window。
六、VO Round 2:Project Deep Dive(60min)
TT 的项目轮比 Meta/Anthropic 更看"业务影响"。你需要:
- 用 STAR 写好 3 个项目讲稿(每个 5–7 分钟)
- 每个项目准备:bottleneck / metric / trade-off / 失败复盘
- 重点突出 "为什么是你做的"
学员观察:TT 面试官 80% 会追问"impact 怎么量化的?"——准备一个 明确数字 + dashboard 截图描述 是高分关键。
七、VO Round 3:HM Behavioral(45min)
HM 关心:
- Why TT / Why this team
- 你最 proud 的项目 + 你的具体贡献
- Conflict 处理(同事 / PM 立场分歧)
- Failure case + 复盘
TT 文化关键词:ByteStyle——Always Day 1, Be Candid and Clear, Champion Diversity, Be Courageous。每个关键词配 1 个故事更容易过 HC。
八、Offer Stage:谈判细节(学员真实数据)
| 项目 | NG L3 区间 | NG L4 区间 | 备注 |
|---|---|---|---|
| Base | $130k – $160k | $155k – $185k | 湾区 / NYC 偏上沿 |
| Sign-on | $20k – $40k | $30k – $60k | 一次性,2 年内离职按比例返还 |
| RSU | $60k – $100k / 4y | $100k – $180k / 4y | Vest 25/25/25/25 |
| Relocation | $5k – $15k | $10k – $20k | lump sum |
| Annual Bonus | 10–15% target | 12–18% target | 业绩挂钩 |
谈判脚本(学员可复用)
"Thank you for the offer. I'm very excited about the team. I've received competing offers in the $X total comp range, and based on my impact in past internships, I'd love to see if we can align on a base around $Y and RSU around $Z. Is there flexibility?"
实战经验:
- Sign-on 最容易谈 —— recruiter 有 $10k 浮动权限
- RSU 次之 —— 需要 HC 二次审批
- Base 最难动 —— 一般只能 +$3–5k
九、常见问题 FAQ
Q1:TT NG OA 多少分能进 VO?
A:通常 ≥ 800 / 1100 进入 VO;强项目背景的学员 700 也有进过。
Q2:OA 挂了多久能再投?
A:90 天 软冷冻;换 BU(如从 TikTok Live → CapCut)可绕开。
Q3:TT 给 NG 提供 H1B sponsor 吗?
A:给。但 2026 年起优先 OPT 在手或绿卡候选人。
Q4:Onsite 4 轮全好评但被 ghost 怎么办?
A:通常是 HC level mismatch。可让 recruiter 推 down-level 重 match。
Q5:拿到 offer 后多久要 sign?
A:标准 7 个工作日,可申请延长至 14 天。
十、需要 TikTok SDE NG 辅助?
TT NG 招聘窗口短、节奏紧,VO 经常 2 周内打完 3 轮。如果你正在准备:
- 微信:Coding0201 · 立即联系
- Email:[email protected]
- Telegram:@OAVOProxy
我们提供:当周 TT OA 真题、Project Deep Dive mock、HM Behavioral 故事打磨、Offer Negotiation 1on1 复盘。
联系方式
Email: [email protected]
Telegram: @OAVOProxy
微信: Coding0201
最后更新:2026-05-18 | 作者:oavoservice 面试组