新智元报道
编辑: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,你也可以和面试官要求谈谈,对方也希望能尽快找一个合适的人选。
你可以要求与面试官再次进行交谈,见见团队的其他成员,或者在面试后再次访问公司。
但请记住,没有非正式的交谈。
相关面经:https://docs.google.com/document/d/1ZV73D2vgaj2yu_tjN3TVOP6QVLWVPXJB2rrqSZQxYtI/edit?tab=t.0
参考资料:
https://x.com/basvanopheusden/status/1955520236670816272
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.