Industry Job Search 笔记
转载/翻译说明:本文翻译自 Alisa Liu 的博客文章 Notes on the Industry Job Search,原文发布于 2026-06-20。本文仅作学习与分享用途,版权归原作者所有。
在 PhD 阶段的大部分时间里,我脑海里的 job search 都像一顶 sorting hat:高年级 PhD 会消失几个月,然后带着已经决定好的命运重新出现。即使身边的好朋友陆续毕业、找到工作,我对他们正在经历的事情也知之甚少,除了偶尔确认一下他们还活着。等终于轮到我时,我发现这个过程比我想象中艰难得多,感觉自己是在一边玩游戏,一边学习游戏规则。
回头看,我的很多经历其实很普遍,许多一路上学到的东西现在也像是常识。我写下这篇文章,是想提供一个求职旅程可能是什么样子的具体样本,也希望能让不久前还和我处境相似的人,对这个过程少一点神秘感。
先简单介绍一下我的背景。我在 University of Washington 读了 6 年 NLP PhD,在 PhD 快结束时申请 Research Scientist / Member of Technical Staff 之类的职位。我这一生几乎都在学校里度过,如果不是 advisors 最终提醒我该往前走了,我会很愿意永远当 PhD student。PhD 期间的大部分时间里,我并没有太认真地思考毕业后要做什么;真正驱动我的,更多是做有趣的想法。这让我在研究方向上转过很多弯。幸运的是,最后两年我围绕 tokenization 保持了一条相对一致的主线,因为它和“有趣”高度重合。我认为,建立一个清晰的 expertise,也帮助我在 job search 时更容易 stand out。
我的时间线
下面这张图展示了我的 job search timeline,灵感来自 Nathan Lambert 的文章。图中灰色图标表示 interview,彩色圆点表示 outcome。这里的 ghosted 指 recruiter 从未告知我结果或下一步安排;withdrawn 指在拿到一些让我兴奋的 offer 之后,我礼貌地告诉公司自己不再继续流程。总的来说,我面了 11 家公司,一共经历了 57 场 interview。图里没有包括另外 46 次 recruiter call、16 次 post-offer chat,以及求职前后无数次非正式 networking 对话。

Company order。 我决定什么时候开始每家公司的流程时,会综合考虑很多因素:我是否觉得自己准备好了、公司给我的压力、我预期它们流程推进的速度、我对它们的兴趣程度,以及一些没那么深思熟虑的因素,比如拖延。这里常见的建议是:先用几家公司练手,然后安排其他公司的流程,让所有 offer 尽量在差不多的时间到手,方便 negotiation。我觉得这个建议大方向是对的,但还有几点可以补充。
- Practice interview 很有帮助,但也要意识到人的 stamina 是有限的。不要在真正关心的公司开始之前,就已经把自己耗尽。
- 时间安排还会受到外部因素影响,比如公司是否有 headcount、哪些团队正在积极招人。这些因素有时比你的准备程度更重要。朋友和 recruiter 可以帮你获得一些相关信息。
- deadline 通常有相当大的弹性,所以 offer 的时间不需要精确到毫厘。Recruiter 知道你还要完成其他流程,也有各种方法可以延后 offer 或决策时间。当然,也确实存在一些臭名昭著的例外,也就是所谓的 exploding offer,所以了解候选人通常有多久签约时间依然很重要。
Getting the first interview。 说一个显而易见的道理:PhD 期间尽量做好工作,多交朋友,多合作。要拿到第一场 interview,有时需要公司内部有人为你 vouch。你可以很早就为此做准备:在 conference 上多和人交流,广泛合作,参加 networking event。当然,这部分对每个人来说都不容易,对我尤其不是,所以也要照顾好自己的能量和舒适区。Job search 期间,可以联系你认识的人,甚至不认识的人,询问机会。事实上,job search 很大一部分是在重新联系那些你可能已经多年没聊过的人。这没关系,也很正常,而且最后会成为这个过程里一个很美妙的 side effect。
Interview types
我觉得面试大致可以分成下面几类。总体来说,公司评估技术能力和知识面的比重要远高于研究经历,尽管后者很可能是让你拿到面试机会的原因。
ML coding。 这是最常见的一类。题目可能要求你实现某个 architecture、某种 decoding strategy、某个传统 ML algorithm,有时也会是更有创意的问题。熟练使用 PyTorch 是必需的。少数情况下,我被要求只能使用 numpy,比如从零开始写 backward pass,但面试官并不期待我非常熟悉 numpy 的语法细节。
General coding。 基本就是 LeetCode,有时会加一点额外 flavor。这里打好基础很有用,因为很多概念也会出现在 ML coding interview 里。
Technical discussion。 这类 interview 不写代码,但依然非常 technical。有时,整场面试会围绕一个 topic 展开,比如你会如何设计实验来回答某个 research question,或者实现某个 goal。面试官通常会追问你的 design choice,让你评价一些 hypothetical result,并设计 follow-up experiment。另一些时候,面试会变成一串 rapid-fire question,比如:位置编码有哪些不同方式?什么是 5D parallelism?PPO 和 GRPO 有什么区别?目标是让你展示自己确实 knew your stuff。前一种面试考察的是你如何思考,后一种则检查你对 field 的知识广度。
Research discussion。 这是 PhD 期间最常练习的那类对话。面试官通常会先让你讲一个过去的 project,然后 discussion 会从那里展开。他们也可能问你 CV 上的其他 paper。准备这类 discussion 时,跳出来想一想会很有帮助:你为什么选择做这些工作?一路上形成了哪些 insight 和 opinion?你认为未来哪些 direction 有希望?我也会根据 role 调整自己的 research pitch。面试官很累,所以如果你能击中合适的 keyword,他们就更容易相信你的 profile 和岗位相关。
Behavioral。 除了偶尔会问到 AI safety 或 societal impact,这些基本就是教科书式的 behavioral interview。把 PhD 期间印象深刻的 story 列出来,并映射到常见 behavioral question 上,这样面试时你就能立刻调出合适的 anecdote。我第一次 behavioral interview 失败了,因为我进去前觉得自己显然很 well-behaved,结果遇到极其简单的问题却大脑空白。相信我,一边试图从模糊记忆里重建故事,一边把它们讲出来,最后面试官还说“你没有回答这个问题”,这是一种非常独特的痛苦。
Math。 有些公司会安排 math interview,范围从有趣的 logic puzzle,到需要纸笔推导的严肃 mathematical derivation 都有。我建议复习 probability、linear algebra 和 calculus。
Job talk。 Job talk 的形式有一些差异,但和学术 job talk 相比,产业界版本通常更短,并且聚焦在一篇论文或一个方向上。我的 job talk 全部围绕 tokenizer 展开;大部分时间讲一篇一作工作,然后简要覆盖几篇二作和进行中的工作。幸运的是,它们之间联系很紧密。
准备
真的没有什么比准备 interview 更值得花时间。对我来说,这段经历很像回到本科:我记 notes,画 diagram,做 practice problem,整天坐在咖啡馆里,确保自己把 fundamental ML concept 从里到外理解清楚。Technical interview 很难,而且它考察的 skill 并不会仅仅因为你在做 research 就自然形成,需要投入专门的努力。对我和我聊过的大多数人来说,job search 本身就是一份 full-time job。
我一开始看完了 Stanford 的 Language Modeling from Scratch 课程。它很有帮助,因为它展示了我需要学习的 topic 有多宽,也帮我把脑子里很多 scattered concept 组织成一个相对 coherent 的 field picture。补完基础之后,我把剩下的时间用来逐个 deep dive:读相关 blog post 和 paper,大量和 ChatGPT、Claude 对话,并练习 from scratch implementation。Homework 1 非常关键:实现和 debug transformer 在 interview 中太常出现了,把它练成 muscle memory 会有巨大回报,这种地方不值得丢分。练习写代码时,一定要完全关掉 AI assistance,以模拟真实 interview setting,否则你会低估自己对它的依赖。
我发现每场 interview 都是独特的,都值得做一点,有时是很多,dedicated preparation。你通常可以根据面试说明、公司关心的 topic、recruiter 给的 hint,以及公司的 reputation,大致建立对 interview scope 的直觉。在密集面试期间,我发现自己不断把信息从脑中 swap in / swap out,让某一场面试最相关的知识保持新鲜。最贴切的描述大概是:每场 interview 都像一门略有不同的数学课或 CS 课,你从来没去上过 lecture,而现在距离 midterm 还有大约 3 天。
Day of interview。 也许是因为我年纪变大了,但没有什么比面试前一晚睡够更重要。我第一次 technical interview 前只睡了 2 个小时,因为我前一晚把 LLM inference 的各种细节塞进脑子里。结果最后没有任何临时抱佛脚的知识被问到,我还因为大脑转不动,在一个 off-by-one error 上花了 10 分钟。面试结束后,记得记录一些 notes,这对后续学习和 reflection 很有帮助。
Side benefits。 准备面试给我带来了巨大的 side benefit。更广的知识面直接提升了我作为 researcher 的自信。我在 conversation 中更有安全感,因为不再那么担心 knowledge gap 被暴露;当 gap 出现时,我也不再急着掩饰。我真心相信,如果我在 PhD 更早阶段做过其中一些学习,它会扩大我能够思考和产生想法的问题空间,也一定会增加我主动寻找的 conversation 数量。更神奇的是,我还发现学习让我在 ongoing project 上有效得多。我能够提出以前根本无法触达的 technical idea,做更多 technical work,这让我非常兴奋。
Negotiation
我很震惊地发现,拿到 offer 之后,工作远远没有结束。相反,你会进入一段可能很长的时期,用来进一步了解 option 并 negotiate offer。这个阶段包括很多和未来潜在 teammate、manager 的对话,lunch visit,以及 recruiter call。当时我要处理数量惊人的 communication,总有一些邮件让我因为没有及时回复而心虚。
事实是,negotiation 很难。PhD 训练完全没有教我们这个,而且和 interview 不同,这部分不能靠 studying 彻底攻克。和 recruiter 相比,你在 market knowledge 和 negotiation skill 上都处于劣势,而每个和你聊天的人又都想从你这里得到不同东西。你可能会想:“我对这个 offer 已经很满意了,也可以不考虑 compensation、独立做决定。”知道自己的 value 当然很好,但如果不 negotiate,你是在亏待自己。Initial offer 本来就预留了 negotiation 空间;recruiter 甚至经常会明确邀请我参与这个 game,比如说:“我不期待你接受我们的第一个 offer。”在这里投入几周精力,从字面意义上说,可能等同于 initial offer 下好几年的工作价值。
这个阶段非常关键的一点,是依靠朋友帮你理解如何和 recruiter 互动,并获得更多 data point 来 calibrate 自己的 ask。每次 recruiter call 之前,我都会写下哪些信息我愿意 share,哪些不愿意 share,以及一些可以 verbatim recite 的话。Post-offer 阶段,我会预判对方可能问的问题和提出的 point,并认真构造 response,让自己既能舒服地说出来,也能 advocate for myself。这个过程很耗时,但对每个环节保持 deliberate 真的很值得。
结语
这篇文章主要写了 job search 中比较具体的部分,但实际上,我个人经历中很大一块是在处理进入 job market 之后涌来的各种情绪。这里有很多 social perception 需要应对:和 peer 比较并不好受,每个人都对你应该去哪里或不该去哪里有 opinion,人们也会突然异常关心你的人生进展。我还发现,在信息不完整的巨大 decision space 里行动很有压力,因为很多没有对错的小选择,比如什么时候联系谁,都会产生不成比例的影响。坦率地说,那几个月我压力很大,很痛苦,生活的其他部分也几乎无法正常运转。希望你能在其中找到更多快乐;但如果没有,也请知道你并不孤单。
几个月来,我一直在冲向 PhD 的终点。现在一切结束,我非常难过要离开人生的这一章。PhD 是一段很特殊的时间,我们唯一的工作就是产生好 idea 并把它们 execute,作为 researcher 学习和成长,而不用马上担心如何找到一份真正的 job。所以,虽然我希望这篇文章能帮助你在心理上为 future 做准备,也确实理解今天的 industry forces 有多么让人分心,但我也希望你能珍惜 PhD 阶段这段独特的时光。毕竟,这两个目标也许是互补的:我一直发现,当我玩得开心,并追逐那些在脑海中挥之不去的问题时,我做出的工作最好。