一个刚入职OpenAI的华大博士Alisa Liu记录的她的求职笔记~参阅
# 工业界求职笔记
**2026年6月20日**
在我的博士生涯的大部分时间里,求职在我心中就像一顶“分院帽”:高年级的博士生们会消失(几个月),然后带着已经注定的命运重新出现。甚至当我的好朋友们开始毕业并找到工作时,除了偶尔收到他们的“生存证明”之外,我对他们所经历的一切知之甚少。当终于轮到我时,我发现这个过程远比我想象的要苛刻得多,感觉自己就像是在边玩游戏边学习游戏规则。
现在回想起来,我的许多经历都具有普适性,一路上学到的很多东西现在看来都成了常识。我写下这篇文章是为了分享一个真实的求职历程样本,希望能让像不久前的我一样的求职者觉得,找工作不再那么神秘。
先介绍一下我的背景。在华盛顿大学读了 6 年 NLP(自然语言处理)博士后,我申请了研究科学家(Research Scientist)/ 技术参谋(Member of Technical Staff)的职位。我一辈子都在上学,如果不是导师最后催我毕业,我原本很愿意一直当个博士生。在攻攻读博士学位的大部分时间里,我并没有过多考虑毕业后要做什么,相比之下,我更容易被有趣的 idea 所吸引。这导致我的研究方向经历了很多次转换,但幸运的是,在最后两年里,我成功地保持了一条连贯的主线(关于 Tokenization 符号化!),因为这恰好和“好玩”高度重合。我认为,建立自己的核心专业领域帮我在求职中脱颖而出。
## 我的时间线
图2展示了我的求职时间线(灵感来自 Nathan Lambert 的博客),其中灰色图标代表面试,彩色圆圈代表结果。请注意,“被放鸽子(ghosted)”意味着招聘人员从未通知我结果或下一步安排;“主动撤回(withdrawn)”意味着在收到一些令我兴奋的 Offer 后,我礼貌地告知公司我不再考虑他们了。我总共参加了 11 家公司的面试,累计面试了 57 场。图中未列出的还有 46 次与 HR 的初步沟通、16 次收到 Offer 后的深入交流,以及在求职前进行的无数次非正式社交。
* **公司顺序**:我决定何时开始每家公司的面试流程,是基于以下因素的综合考量:我觉得自己是否准备好了、公司的催促程度、我预期他们推进的速度、我对这家公司的兴奋程度,以及像“拖延症”这样不太理性的因素。这里的普遍共识是:先找几家公司“练手”,然后调整其他公司的流程节奏,使所有 Offer 大致在同一时间段内下来,以便于薪资谈判。虽然我认为这种思路大体上是对的,但我还想补充几点考量:
* **模拟面试固然有用,但也要意识到你的精力是有限的**——务必小心,不要在到达你真正心仪的公司之前就把自己消耗殆尽(Burn out)!
* **有些外部的时间因素值得考虑**,比如公司是否有招聘名额(Headcount)以及哪些团队正在积极招人,这往往比你自身的准备情况更重要。你可以通过朋友和内推人来了解这些内部消息。
* **Offer 的截止日期其实有很大的灵活性**,因此 Offer 下达的时间点不需要精准到天。招聘人员明白你还有其他流程要走,有各种各样的技巧可以用来推迟 Offer 的发放和最终决定。话虽如此,也有一些臭名昭著的特例(即所谓的“爆炸性 Offer”,限时极短),因此去调研候选人通常有多少天考虑时间非常重要。
* **赢得首轮面试**:说一句显而易见的废话:在读博期间努力做出好成果、多交朋友、多进行合作!为了拿到第一场面试,有时你需要公司内部的人为你背书。你可以及早建立优势:在学术会议上积极社交、广泛合作、参加各种 Networking 活动(当然,这并非对每个人都很容易——对我来说就绝对不容易——所以也要照顾好自己的精力和舒适度)。在求职期间,主动联系你认识(或不认识)的人,询问工作机会。事实上,求职的一个重要部分就是与那些你可能多年未联系的人重新建立联系——这很正常、在大家的意料之中,而且事实证明,这是这个过程带来的一个美妙的副产物。
---
## 面试类型
我认为面试大致可以分为以下几类。总的来说,面试对技术技能和知识库的考核远多于研究经历,尽管后者可能是最初帮你拿到面试门票的原因。
* **机器学习编码(ML Coding)**:这是目前为止最常见的。这些问题可能会要求你实现一个特定的架构、一个解码策略、一个传统的机器学习算法,或者有时是一些极具创意的东西。熟练掌握 PyTorch 是必须的;在极少数情况下,我被要求只能使用 NumPy(例如,从头开始编写反向传播),但他们不要求我对 NumPy 的偏门语法倒背如流。
* **通用编码(General Coding)**:基本上就是 LeetCode(力扣),有时会带有一点工程场景。在这里打下坚实的基础是很有好处的,因为这些概念也经常出现在机器学习编码面试中。
* **技术深度讨论(Technical Discussion)**:这些面试不涉及写代码,但技术性极强。有时,面试是围绕一个话题展开的延伸讨论,比如你将如何设计实验来回答特定的研究问题或实现特定目标。面试官通常会追问你的设计选择,并让你对一些假设的实验结果发表评论,进而设计后续实验。在其他情况下,面试由一连串连珠炮式的问题组成(*例如:有哪些不同的位置编码方式?什么是 5D 并行?PPO 和 GRPO 有什么区别?*),其目的是考察我的技术内功。前一种面试考察你的思考方式,而后一种则检验你在该领域的知识广度。
* **研究讨论(Research Discussion)**:这是我们在博士期间练习最多的一种对话。面试官通常会让你先介绍一个过去的项目,然后讨论就此展开。他们也可能会针对你简历上的其他论文提出问题。在准备这类讨论时,退一步思考以下问题会很有用:你为什么选择做这些研究?你在一路上形成了哪些见解和观点?你认为哪些是具有前景的未来方向?此外,我还会根据不同的岗位定制我的“研究推介(Research pitch)”;面试官也会审美疲劳,因此切中核心关键词能让他们更容易相信你的背景与岗位是契合的。
* **行为面试(Behavioral)**:除了偶尔会问到关于 AI 安全或社会影响的问题外,这些完全是教科书式的行为面试。列举出你博士期间难忘的故事,并将它们映射到常见的行为面试问题上,以便在面试时能够瞬间检索出恰当的轶事。我的第一场行为面试搞砸了,因为我进去时觉得自己显然是个“表现良好”的人,结果在极其简单的问题面前大脑一片空白。相信我,一边试图拼凑模糊的记忆,一边在面试中表达出来,是一种独特的痛苦。最后面试官还会说:“你没有回答我的问题。”
* **数学(Math)**:有些公司会设有数学面试,范围从趣味逻辑谜题到用纸笔进行严肃的数学公式推导。我建议温习一下概率论、线性代数和微积分。
* **学术报告(Job Talk)**:Job Talk 的具体形式会有所不同,但与学术界的 Job Talk 相比,它往往更短,且专注于单篇论文或单一方向。我的 Job Talk 完全是关于 Tokenizer 的;我把大部分时间花在了第一作者的工作上,然后简要介绍了几个第二作者和正在进行的工作,幸运的是,它们非常完美地串联在了一起。
---
## 准备工作
真正没有任何事情比为面试而“复习功课”更值得投入时间的了。对我来说,这种体验非常像回到了本科时代:我记笔记(看看我的 **LLM 笔记**,我在整个求职过程中不断完善它;还有我的 **数学笔记**,那完全是为了应对一场命中注定的面试),画图表,做练习题,在咖啡馆里一待就是一整天,确保自己由内而外地理解了机器学习的基础概念。技术面试很难,被考核的技能需要你在做研究之外付出专门的努力去培养。对我以及我聊过的大多数人来说,**找工作本身就是一份全职工作**。
我的复习是从看完了斯坦福大学《从头开始的语言建模》(Language Modeling from Scratch)课程的所有讲座开始的,这对于理清我需要学习的知识广度非常有帮助,并帮我将大脑中许多零散的概念组织成对该领域系统性的认知。在掌握了基础知识之后,我把剩下的时间花在逐个深入研究概念上:阅读相关的博客文章和论文、疯狂和 ChatGPT & Claude 对话,以及练习从头开始实现各种模型。**作业 1(Homework 1)至关重要**:实现/调试 Transformer 在面试中出现的频率太高了,将其练成肌肉记忆会带来巨大的回报,这绝对是一个不该丢分的地方。确保你在练习写代码时完全关闭 AI 辅助,以模拟面试环境(否则你会低估自己对 AI 的依赖)!
我发现每场面试都是独一无二的,都可以从一些——有时是大量的——针对性准备中受益。你通常可以从给出的职位描述、公司感兴趣的话题、HR 的提示以及公司的名气中,直观地了解面试的考核范围。当处于面试的高峰期时,我发现自己不断地在脑海中进行知识的“换入”和“换出”,以便让某场特定面试最相关的知识保持新鲜。我能想到的最好形容是:**每场面试就像一门略有不同的数学或计算机课,你从未去上过课,而现在你只有大约 3 天的时间来临时抱佛脚应付期中考试。**
* **面试当天**:也许是因为我变老了,但真的没有什么比前一天晚上睡眠充足更管用的了。我曾犯过一个错误:在把 LLM 推理的所有错综复杂的细节强行塞进大脑后,只睡了 2 个小时就去参加了我的第一场技术面试——结果那些临阵磨枪的知识一个也没考到,而我却因为脑子转不动,在一个“差一错误(Off-by-one error)”上浪费了 10 分钟。面试结束后,记得记录一些笔记,这对于你未来的复习和反思会很有帮助。
* **附加福利**:复习功课为我带来了巨大的附加收益。拥有更广泛的知识面直接提升了我作为研究者的自信。在交流中我变得更加笃定,因为我不再那么担心自己的知识盲区被暴露,当它们出现时,我也觉得没必要刻意掩饰。我由衷地相信,如果我在博士生涯的早期就做了一些这样的功课,它一定会拓宽我能够思考和产生 idea 的课题空间,当然也会增加我愿意去主动交流的人数。令人惊奇的是,我还发现这些学习让我目前正在进行的科研项目效率大增。我能够想出以前绝无可能触及的技术点,并完成了更多技术性的工作,这太令人兴奋了。
---
## 薪资谈判(Negotiation)
我震惊地发现,在你收到 Offer 之后,工作远未结束。相反,会有一段(可能会拉得很长)时间让你去进一步了解自己的选择并进行 Offer 谈判。它涉及与未来的潜在队友/主管的大量交谈、实地午餐拜访以及与 HR 的电话。在这个阶段,我需要处理多到令人崩溃的沟通,总有一些邮件让我因未能及时回复而心怀愧疚。
事实是,谈判很难。我们的博士生涯没有为我们做任何这方面的准备,而且与面试不同,这部分无法通过死记硬背来征服。与 HR 相比,无论是在市场行情的掌握上还是在谈判技巧上,你都处于下风,而且你交谈的每个人对你的期望都不尽相同。你可能会想:“我对拿到的 Offer 已经很满意了,我会独立于薪酬之外做出决定!”当然,了解自己的价值观是一件很棒的事!但如果你不去谈判,那就是在亏待自己。初次 Offer 在设计上就留有了谈判的空间;HR 经常会通过说类似“我不指望你直接接受我们的第一个报价”之类的话,来委婉地邀请你加入这场“博弈”。在这里投入几周的精力,字面意义上,可能等同于初始 Offer 下几年的工作回报。
在这个阶段,**向朋友寻求帮助至关重要**,去学习如何与 HR 打交道的诀窍,并获取更多的数据点来校准你的心理价位。在接听每次 HR 电话之前,我都会写下我愿意和不愿意透露的信息,以及我可以逐字背诵的话。在收到 Offer 后的阶段,我会预判他们可能会问的问题和可能提出的观点,并仔细构建我可以轻松表达同时又能为自己争取利益的回复。虽然这很耗时,但对求职流程的每个细节都深思熟虑是非常值得的。
---
## 结语
在这篇博客中,我把焦点放在了求职中那些具体、务实的部分,但在现实中,我个人很大一部分体验是在管理伴随“投放市场”而来的所有情绪。有太多的社会眼光需要去应对:将自己与同龄人进行比较的感觉并不好,每个人对于你该去哪、不该去哪都有意见,人们会变得异常关注你的人生走向。同时,在信息不全的情况下驾驭一个巨大的决策空间也让我倍感焦虑,在这个空间里,一些没有对错之分的微小选择(比如什么时候联系谁)都会产生巨大的连锁反应。坦白地说,有几个月的时间,我压力巨大、痛苦不堪,生活中的其他部分几乎停摆。希望你们能在这个过程中找到更多的快乐,但如果不能,请记住,你并不是一个人。
几个月来,我一直在全力冲向博士生涯的终点,而现在到了这一切的尾声,我无比伤感要告别我人生中的这一章。读博是一段如此特殊的时光,那时我们唯一的工作就是去产生好的 idea 并付诸实践,作为研究者去学习和成长,而不用担心立刻去挣钱糊口。因此,虽然我希望这篇文章能帮助你在心理上为未来做好准备(我也确实深知如今工业界的诱惑有多么让人分心),但我也希望你能珍惜博士生涯这段独一无二的时光。毕竟,这些目标可能是相辅相成的——我经常发现,当我乐在其中、去追寻那些让我魂牵梦绕的问题时,往往能做出最好的研究。
#AI创造营#
