新智元报道
编辑:peter 东 KingHZ
没 offer?大胆要求加试!OpenAI 新员工 Bas 的求职之路:真诚是武器,直接问「我怎么才能通过」,至少救活一次面试。求职博弈,从头到尾都是艺术。
「所有面试,本质上都是表演。」
在历经数轮苛刻面试后,成功入职 OpenAI 后,Bas van Opheusden 得出的终极结论。
你需要准备的不仅是完美的代码,还有一个能展现领导力的「失败故事」,一套应对「非正式聊天」的标准话术,甚至是一间光线完美的房间和两个显示器。
几周前,Bas van Opheusden 成功入职 OpenAI 研究岗。
他将面试过程和经验写成万字「求职圣经」,在推特上爆火。
其中既有需要长期准备的技术栈,也有需要现场应对的小技巧。面经原文为英文,相关链接在文末。
面试准备
人生中 ROI 最高的事
想要面试 AI 研发岗,你首先需要做好充分的准备。
为面试所做的准备,可能是你一生中投资回报率 ROI 最高的事情。要尽可能早地开始准备。
在准备面试的过程中,你可以学习新技能、阅读论文,或者重温一些经典研究。
通过练习面试,你可以从面试官那获得真实的反馈,从而更好地审视自己。
可以与行业大咖交流,他们会一对一给你传授某些技能。
Bas van Opheusden 建议花费大约 100 小时在 LeetCode 练习上,同样多的时间阅读论文、使用类似 Deep Research 来复习相关知识并多与朋友交流。
求职者展示自己最好的工具是诸如 Github 主页,获得 Github 星标,参加黑客松等都会为你赢得面试机会。而 Linkedin 等专业平台的职业标签会为你定期推送相关岗位。
熟悉面试流程
在大多数公司的流程中,第一步通常是负责招聘的 HR 简短且「非正式」的电话:
他们会解释招聘流程,告诉你将要面试你的直属上级是谁以及他们在哪个团队。
在这次通话中,一定要做笔记。
你需要记住将要面试你的人是谁,你面试的岗位。
之后,你可以在谷歌学术上搜索面试官,面试前读一读他这几年发表的论文,观看他们的讲座。你要了解面试官最近做了什么,在关注什么——通常,大家都喜欢你关注他们的内容。
万事俱备,只待面试
面对视频面试,一个好设备(例如麦克风、高清摄像头),会让面试过程变得丝滑。
面试的时候,可以准备两个显示屏,这样可以一个屏幕放个人介绍的 ppt,一个屏幕放视频通话的窗口。这样能让你直视面试官的眼睛,直接和面试官眼神交流。
面试时,所处的房间要确保光线充足。同时还需要准备备用耳机,以免万一耳机出现问题。面试前还需要清理桌面,并带上笔和纸,方便做笔记。
在编程面试时,压力有点大。在监督下,你需要一边调试代码中的越界错误,还要一边解释自己的思路,这种体验对可能会有些尴尬。此外,你还不能使用在日常工作中代码库或大模型工具。
为了打有准备之仗,你需要尽可能多地与朋友练习,在规定的时间内编程,选择一些棘手的问题。练习时,还要让朋友假装不认识你。这会很尴尬,但这就是目的。你要在面试前学会接受这种尴尬。
此外,你需要了解不同公司面试时用到视频通话软件,熟悉如何投屏。
有的公司会允许面试者选用自己熟悉的编码工具,例如 Notebook 或谷歌 Colab,而有的公司只允许使用文本编辑器。你需要提前熟悉,适应在没有高亮和自动补全的环境下编程。
在面试前一天早点睡觉。如果需要,打开空气净化器、空调,保证环境舒适。
在面试前 30 分钟,放松心情, 比如去散步或撸一会儿猫。确保面试前你已经吃饱、上过厕所,并且身边有放好的水。
提前到达线上会议室。如果面试时间是下午 2 点,那么1:55 就加入通话。
面试官可能会在2:03 左右出现。如果2:05 还没有出现,可以和招聘官发一封预写好的邮件进行提醒,他们通常会在2:07 左右出现。
面试,不止是面「试」
在面试一开始,往往会有一些非正式的谈话,例如面试官会约你喝咖啡,与你聊聊职业规划。但 Bas 警告:所有互动都是面试的一部分。
面试官说这是「非正式」,只是因为没有评分表,但你的每一句话、每一个表情,都在被默默打分。
如果是和面试官线下的非正式互动,例如面试官约你一起先吃个午餐再面试,你也需要准备标准话术,比如:
三句话自我介绍、为什么想来这家公司、最近在研究什么……
在正式面试时,开场白要简洁,这样才能将更多的面试时间花在具体问题。
不止是技术,还要「编故事」
面试过程中,你会发现面试官不止关注技术相关的问题,还在考察面试者能不能像一个 CEO 那样思考。
Bas 惊讶地发现,多家公司都问他根本无法透漏的消息,比如前雇主 Imbue 的技术路线、商业模式甚至营收模型。
但他意识到,在这个过程中,面试官其实在测试两点:
(一)你是否真正理解所在组织的使命,
(二)你是否有能力将个人工作与公司战略对齐。
这其实是一种领导力的体现,哪怕你面试的岗位只是初级研究员,面试官也希望你能像 CEO 一样思考。
即使是技术岗,面试也将不止涉及编程,还会有行为面试。
这类面试不考技术,转而问「人品」问题:你有没有领导力、怎么处理冲突、如何面对失败……
Bas 建议:准备 5 个故事,覆盖 80% 的问题。
比如,一个「项目延期但最终超额交付」的故事,可以同时回答「如何应对压力」、「如何领导团队」、「如何与客户沟通」等多个问题。
他特别强调:一定要有「失败故事」。
如果说「我从不犯错」,要么显得傲慢,要么被认为「没挑战过难题」。而一个真诚的失败+反思+改进的故事,反而能赢得信任。
而在失败故事中,推荐 STAR-I 模型(Situation, Task, Action, Result - Impact)。
还要加入「救赎弧光」:即如何从失败中成长,最终逆转局势。
这种叙事结构,正是人类最易共鸣的「英雄之旅」。
真诚是你的武器
在行为面试时,要保持真诚。如果你试图在面试中扮演一个角色,面试官会立刻察觉到。人类在这方面很擅长。
如果你在 OpenAI 面试中,不能自然而然脱口而出地说出:
我想加入 OpenAI,因为 OpenAI 是世界上最酷的公司。
那就不要说这句话,而是要找到适合你的话。
面试过程中,很多人会觉得面试官是在刁难自己,可实际是:面试官希望你通过。因为面试官只是给你出题并评判。
对于面试官来说,最好的情况是你表现得很好,他们可以写一封非常积极的推荐信,而看着一个候选人挣扎是最糟糕的。
面试者可以利用这一点。Bas van Opheusden 偶尔会直接问:
我希望通过这次面试。我需要做些什么才能实现这一点?
通过这种方式,他至少通过了一次本不会通过的面试。
编程面试
而对于编程面试,AI 研发常见的题目已经固定。
例如,从零开始实现方向传播,或调试 Transformer:
面试官会给你一段有 bug 的 self-attention 实现,让你找错。
重点是 tensor shape、mask 逻辑(尤其是 causal mask),可在 nanoGPT 上进行练习。在准备过程中,需要用好 Deep Research 这样的工具。
在面试编程时,要习惯代码将要做什么,通过do
来结构化的表述,例如下面的代码:
X = torch.zeros ([N, N]) #to do: 检查是否初始化为 0?
其中后面的 todo 是告诉自己以及接受代码的人,这段代码还缺失什么,方便之后补上。
例如,上面的代码并没有检查是否初始化,使用 # to do 向面试官表示你想到了这一点,也能让你更容易注意到遗漏的部分。
另一个类似的是使用 assert 断言,明确程序正常运行所需的条件,这避免边缘情况下整段代码的崩溃。
面试官重点关注这类良好的编程习惯。
面试后要当心!
不要只看钱
很多人以为拿到 offer 就结束了,Bas 却说:真正的博弈才开始。
「公司知道你合格,但他们不知道你多想来,也不知道愿意开多高薪水。」
于是,一场「反向评估」悄然展开:他们可能故意拖延、设置极限 deadline、甚至「不小心」错过你的回复,以测试你的诚意和谈判能力。
一些招聘人员会玩弄手段。
Bas 曾遇到过公司给出极其短暂的截止日期、撤回录用通知、完全失联,或者「不小心」在另一个截止日期过后才发出录用通知。尽量争取尽可能多的书面协议(这本身可能需要谈判),并且不要假设你在谈判上比对方更有优势。
而如果你能拿到多个 offer,Bas 给的建议是,别只看钱:
工资固然重要,但团队、使命、文化、地点、甚至食堂饭菜,都影响长期幸福感。
如果每次走进大门,公司都能让你微笑,请选择这样的工作。
而若是没有拿到 offer,你也可以和面试官要求谈谈,对方也希望能尽快找一个合适的人选。
你可以要求与面试官再次进行交谈,见见团队的其他成员,或者在面试后再次访问公司。
但请记住,没有非正式的交谈。
相关面经:
参考资料: