逛知乎:一位博士的求职经验谈

原答案:大家能分享一下当前博士就业的情况吗?

文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。逛知乎:一位博士的求职经验谈

我是中国科学技术大学的博士,毕业的时候基本拿到了各大厂的 top offer,包括华为天才少年、阿里星等,最后我选择了华为,以下是我求职经历的分享。

博士毕业,学术界还是工业界,创业还是大厂

博士毕业的时候,就涉及到工作的选择,我大致划分为 5 种:学术界、自由职业、创业、国外大公司、国内大公司。

首先是学术界,虽然我很喜欢科研,但是如同我一开始读博时的顾虑一样,我不喜欢理论,喜欢能够实用的研究。我觉得学术界的研究,即使是网络系统领域,也经常脱离实际需求。例如我博士期间整个团队花了几年时间研究的心血,虽然发表了很好的论文,但也只是探索了一些可能性,并没有在任何一个生产系统中商用。今天,我仍然希望把工业界的成功实践总结成论文发表出来,就像我喜欢写博客分享自己的生活一样,但不希望 “为赋新词强说愁”,为了写论文而专门做一些短期内不可能商用的东西。

其次是自由职业,虽然黑客精神本质上是鼓励自由职业的,但目前基于知识的利益分享机制还不健全,除了个别大 V,只靠咨询服务、知识付费、个人网站的广告收入来养活自己是很难的。对于大多数自由职业者来说,自由职业能赚到的钱远远少于给大厂打工。因此,我自由职业的想法逐渐被消磨。羡慕 LUG 选择自由职业的小伙伴们,用自己的人生践行着理想主义的精神。就目前而言,还是需要先保证自己不饿死,再谈自由、分享、开放的黑客精神。

然后是创业。创业公司的优点在于效率高,可以像鲇鱼一样钻进细分市场。分析目标市场的规模和当前玩家情况,就会发现公司挣钱都很不容易。像微软这样体量的公司,10 亿美金以下的市场根本入不了法眼。因为大公司要立项做一件事情需要复杂的流程,需要一个多功能的团队支持,一个小团队三五个人搞定的事情,大公司可能需要几十个人的团队。大公司开发流程复杂,代码生产率 300500 行 / 人月,产出的代码也是经过严格的检视和测试的;小公司可能代码生产率高达 30005000 行 / 人月,但代码质量未必这么高。因此,大公司比较适合 to B 的、对质量有严格要求的市场,而创业公司比较适合小步快跑、快速迭代的市场。

我所在的数据中心网络研究领域就比较难创业,因为数据中心都是大公司才有的,大型公司要么自研智能网卡,要么采购其他大公司的智能网卡,谁会去买一家名不见经传的小公司的网卡呢?因此,这个典型的 to B 领域虽然有很多创业公司,但都是功成名就的大厂大佬们出来创办的,并不适合年轻人创业。如果要创业,可能就得去做区块链、元宇宙、隐私计算、人工智能等比较 “新兴” 的领域,而我在这些领域并没有积累,也不希望放弃在数据中心领域已有的积累。

我认为数据中心领域还是比较适合去大厂工作。相比自由职业或者创业公司,大公司的条条框框更多。这些条条框框一方面体现在规章制度、项目管理和开发流程上,另一方面体现在选题立项上。用我导师的话来说,就是要遵从公司商业上的事实与选择,尊重公司在产业中的位置与产品的现状;研究的问题一定需要有可以落地到产品的途径,而不是解决 “人类的问题”。

在国内或者国外工作对我来说没有什么不同,但是我女朋友今年才博士毕业,如果我 19 年就出国的话,就从异地变成异国了。异地的时候我们还能每个月见一次面,异国的话就没法这么频繁了,甚至还会有时差,就更麻烦了。因此我很快就排除了出国工作这个选项。2018 年初,我突发奇想,报名裸考了托福,还考了 103 分,其中口语和写作是最差的,分别是 22 和 24 分,如果经过一定的准备,也许可以提高。但后来我并不打算出国工作了,就没有刻意学习英语。

大厂面试,主要就是做题、讲研究成果和聊天

这么综合看起来,就只剩下国内大公司或者独角兽了。大公司招人一般有几种渠道,大佬邀请,内推,或者海投简历。因为我们在 MSRA 的圈子里,很多从 MSRA 出去的大佬自然就成为我们的重要选择,他们也会主动联系我们,这种大佬邀请的方式拿到顶级 Offer 的概率最高;内推则是找朋友内部推荐,我的联培博士好友聪老师就帮我内推了好几家公司;海投简历一般来说不太建议,首先是简历被 “捞” 起来的概率不大,其次是匹配到的部门也不一定合适。大佬邀请或者内推的方式相当于利用推荐人的背书,在面试前给了面试官较好的第一印象。不过,内推一定要找靠谱的朋友,曾经有人给我推荐候选人并说了坏话,我就说要么就别推荐,由于个人恩怨说人家坏话总不是好事。

我一共面试了 12 家公司,分为三类:

国内大厂,包括阿里、腾讯、字节跳动、美团、华为
国内独角兽,包括 Pony.ai、第四范式、寒武纪、地平线
外企,包括 MSRA、Xilinx、VMWare
大部分公司的面试形式都差不多,前两轮是技术面,大多数公司会让讲一讲所做的研究,做一些算法题。后面是主管面,以及更高级的总裁面,有的还有 HR 面。这些高层面试就以聊天为主,主要是看研究成果的影响力,未来的职业规划,公司价值观的匹配程度,高层领导也会借此机会宣传公司,吸引候选人。有些高级领导也会在面试中要求写代码。

比如阿里星就包括两轮技术面试、一轮主管面试、一轮交叉面试,以及一轮阿里星终面。阿里星终面是部门的 P11 总裁和其他部门的两位大佬,加上高级 HR 主管一起面试,先让做 30 分钟学术报告,各位大佬再提问 30 分钟。当时我不知天高地厚地大谈起正在做的批流一体处理的数据库项目,没成想 P11 大佬就是数据库的资深专家,被喷了一顿。不过我的很多不成熟的项目就是这样利用给大佬汇报的机会来接收反馈的。在 MSRA 实习的时候,有一次(并非面试)图灵奖得主 Butler Lampson 来 MSRA 访问,我就给他讲了讲全序消息传输的想法,他给了非常有价值的反馈,这个工作在被拒了 4 次以后终于发表在 SIGCOMM ‘21 上。

阿里的交叉面试也令我印象深刻。交叉面试的面试官来自其他部门,是一位从 Intel 跳槽过来的专家,问了我很多 CPU 体系结构的知识,他说我在同龄人里算懂的比较多的,但对于细节了解还比较少。我说,在公开渠道很难了解到 CPU 微体系结构的细节呀。他颇有些深意地说,这就是工作经验的价值呀。这一席话让我意识到,一定要加入到有核心技术的团队里面,并且有尽可能宽广的技术视野,才能在短暂的青春里学到尽可能多的 know-how。

面试字节跳动的郭传雄老师时,郭博士给我出了一道数学题。那道题是给定一个递推公式求上下界,是从他的 DCell 论文中得出的(随着 DCell 级别超指数级增长的服务器数量),而我并没有认真读过这篇论文。其实数学上这个上下界并不难求,但是我当时的确没做出来,郭博士给我讲了才豁然开朗。郭博士说,他喜欢的研究就是数学理论优美,同时又有实用价值的类型,但这样的研究可遇不可求。面试字节 CTO 杨震原的时候,他让我当场写代码,还聊了很多我研究工作中的细节。他说,好久没有聊这么底层的东西了,他在百度的时候就做这种底层优化,有种当了几年将军又回到当年侠客切磋剑法的感觉。

面试 Pony.ai 的时候,如愿见到了传说中的楼教主。见到楼教主之前有两轮代码面试,每场面试有两三道不算难的算法题,跟 Google 的面试很像。楼教主给我出了几道智力题,我都没有见过:

用一个每次抛出正面朝上概率为 p 的硬币,允许多次抛出,实现一个等概率的 01 随机变量,要求尽可能减少抛出次数的期望。这的确是很漂亮的一道题,现场我想出了最优策略但没算出期望来,后来我才搜到期望是 1/H(p),其中 H 是熵函数。
n 维立方体的顶点数和面数。
三维正方体的六个面上任给起点和终点,求虫子沿面爬行的最短距离。
把一张长方形纸的一条边三等分、五等分。楼教主现场给了一张 A4 纸让我折,我折腾半天,给出一种方法,教主以为对了,我自己发现错了;然后我改了改,找到一种他没见过的三等分方法,但比较复杂,其实教主的方法非常简单,也很容易推广到任意等分。
当时我还问楼教主,怎么看端到端的自动驾驶流水线,他说生命攸关的东西完全交给神经网络这种黑盒子,他不放心;深度学习的可解释性和可调试性不强,就算效果好,万一出了事很难向公众解释,也不一定能符合法规的要求。

MSRA 的面试轮数可能是最多的,有两轮代码面、研究员和主管集体面试、交叉面、副院长面、HR 面等,其中每轮代码面是两道算法题加一道系统设计题,号称是 “一票否决制”,因为代码面不通过的不管主管怎么说情都没法录用。MSRA 的研究员和主管集体面试和华为的研究员和主管集体面试、阿里星终面比较类似,都是先讲学术报告,然后是提问交流。交叉面主要是考察知识面的广度和思维的开放程度,曾经有位候选人在面试时大肆攻击交叉面试官的研究领域,这就不太合适了。

面试华为的时候,谭博问我,对 FPGA 在数据中心里的应用怎么看。如果仅仅站在为自己的研究成果辩护的角度,大谈 FPGA 的优势,这个回答就狭隘了。不同的公司有不同的选择,其中有技术路径依赖的原因,也有商业上的考虑。公司更希望候选人能客观地分析各种不同智能网卡体系结构的优劣。我自己做面试官的时候,也希望候选人能从自己的研究工作跳出来,有新的独立的思考,最好能升华一层,而不是像复读机一样把几年前做过的报告再讲一遍。

事实上,这些面试我都没有怎么准备,因为我觉得大厂的算法题都不难(除非是考到数学或者脑筋急转弯类的问题);研究成果已经讲过很多遍,不需要 PPT 材料都可以讲出来;聊天就更不用准备了,我的职业规划就是成为系统架构师,我也比较喜欢奋斗,跟国内大厂的价值观比较匹配,同时我对计算机也保持着浓厚的兴趣,希望持续探索巴斯德象限的前沿。有些面试官还是会问一些跟计算机基础知识相关的问题,我就知之为知之,不知为不知。比如 C++、Java 我没用过,我就说不会;虽然我做过一点内核开发,但都是最简单的内核模块,没有研究过网络协议栈。我自己做面试官的时候也喜欢考察候选人的计算机基础知识,例如操作系统、网络、分布式系统、数据库等,以及候选人惯用编程语言的语法语义和编译链接运行时的知识(例如垃圾回收),经常发现很多候选人在问到理论性的问题时回答得头头是道,但追问一层就答不上来了,因为他们并没有真正用过这些系统,只是背了一些面经。有的候选人甚至试图欺骗面试官,如果面试官是这方面的专家,这是很容易被发现的。

直到今天我自己做了面试官,才发现跟我当年做候选人的时候一样,候选人的水平和经历跟面试官越接近,面试起来就越舒服。遇上高手就像是朋友聊天,比如遇上打 ACM 的就聊聊擅长哪些数据结构和算法,哪些题是天坑,比赛的时候怎么打配合;遇上折腾网站的就聊聊用了什么框架,CSS 和 JS 有多少坑,运维的过程中有哪些血泪史;遇上稚晖君那样折腾嵌入式系统的就聊聊玩过(烧坏过)哪些单片机,PID 控制的参数怎么调的;遇上搞区块链的就聊聊共识机制和智能合约,顺便让他给我科普科普已经多年没看过的币价;遇上玩过信息安全的就让他讲讲黑了哪些网站,找到了哪些漏洞的 “光辉历史”;就算遇上自己不懂的领域,也能虚心请教,听候选人讲讲他的故事,能学到不少东西。

大厂 Offer 的选择

承蒙各位面试官和领导的厚爱,在这些公司我都拿到了不错的 offer。国内大厂的 offer 之间是会互相 match 的,例如我拿到阿里星的 offer 之后,其他几家大厂都会参考这个 package。因此学弟学妹如果想找大厂工作,一定不要只投一家,否则就等着被宰吧。

为了选 offer,我就像审论文一样,给每家公司写一段 Summary(概要总结),列出 Strengths(优点)和 Weaknesses(缺点),将面试过程中和各方面收集来的信息放到 Comments to the Author(评论)里面。同时,我也会记录公司里的大佬、直接主管、新入职的优秀员工和实习生。就像顶会的每篇论文审稿意见都很充实,我给每家公司也写了上千字的点评。在此基础之上,我做了一张电子表格,从多个方面给每家公司打分,包括:

  • 入职薪酬
  • 长期预期薪酬
  • Offer 在同龄人中的相对档次
  • 业务匹配度
  • 成长空间
  • 工业界影响力
  • 学术界影响力
  • Work-life balance(工作轻松度)
  • 领导熟悉度
  • 工作稳定程度
  • 公司文化
  • 公司品牌
  • 部门前景
  • 领域前景
  • 技术积累
  • 大牛老板
  • 大牛同学
  • 工作地 / 户口

每一项都像论文审稿一样 1~5 打分,然后计算算术平均值、几何平均值、方差等统计指标。根据这些统计指标,再对各家公司进行排序。就像审论文一样,论文中不中不是单看评分,但第一轮筛选中可以把评分过低的先行过滤。平均分 3 分以上的公司有 7 家,也就是第一轮过滤掉了 5 家。因为最后只能选一家公司,“中稿率” 只有 8%,这确实是个很残酷的筛选。对于第一轮被筛掉的公司,为了避免吊着招聘 HR,浪费主管的一片真心,我就早一点直说了。就像论文第一轮被拒之后早点告诉作者,作者还可以早一点转投其他会议。我这个人不擅长拒绝,在拒绝每家公司的时候都要深思熟虑好久。

这 7 家的平均分最低为 3.78 分,最高为 4.11 分,其中前 6 家的平均分都至少为 3.94 分,因此真的是难分伯仲。我也很难对上述这些指标进行加权。论文投稿中,也不是根据分数来决定最终的录用,而是经过 PC(程序委员会)会议讨论,如果有人 champion(支持)并且没有人反对,这篇文章多半就能中。换到选择公司的语境中也是如此,如果有明显的优点并且没有明显的缺点,就是更好的选择。

最终,因为我的博士启蒙导师在华为,而且华为有软硬件结合设计的优势,我做出了艰难的选择。拒绝这 7 家公司中的另外 6 家就更难了,因为每家公司都有广阔的前景、优渥的待遇、充足的成长空间、成批的大牛老板和同学等。在那时看来,也许选择哪家公司并没有很大的不同。

毕业前不久,遇上了 “516” 美国制裁事件,一时间人心惶惶,很多人说华为快不行了,劝我不要去华为了。一位老师对我说,人最宝贵的是时间。如果你想支持华为,可以花钱,买一部手机都是支持华为。但是如果选择加入一家公司,投入自己的绝大部分时间,那就不一样了。钱学森等大科学家可以放弃优渥的待遇回国做默默无闻的工作,但他们再也不能像杨振宁那样做世界前沿的研究、拿诺贝尔奖,而且一辈子的生活条件也没有很好。但我经过实地调研和访谈,确认华为并不是像外面传言的那样不堪一击,整个公司还在正常运行,该做什么项目还做什么项目,在食堂吃饭的时候电视机上就在播出与制裁相关的新闻,而大家都已经习以为常。因此,我力排众议,坚持认为加入华为跟钱学森回国完全不是一个性质,并保持了我的选择。这也是我一生中遭到反对最多的重大选择。

新员工入职培训的时候,我们跟人力资源部的一位总裁座谈,我就提出,可否效仿 “阿里星”,搞一个系统性的吸引优秀人才的项目。2019 年 8 月,公司恰好启动了 “天才少年” 计划,我也很有幸成为其中的一员。公司层面的 “天才少年” 计划当然跟我随口提出的建议无关,但我能够预判到公司对博士等优秀人才招聘越来越重视,而不是像某些人想象的那样受到了制裁就要收紧优秀人才的招聘。3 年过去,在领导和各位同事的关怀下,我承担了越来越重要的项目责任,发挥了越来越大的价值,也说明当年的这个选择没有错误。

尽管我只有很有限的工作经验,想告诉学弟学妹的是,在上述 “打分项” 中,领导和部门的重要度高于公司和研究领域的整体状况。一个人过得舒服不舒服,在工作中能不能受到重视,很大程度上要看领导,尤其是直接主管。跟领导的 vision(愿景)一致,合作起来会更顺畅。这就像是在读博过程中,导师的重要程度远大于学校和学院的名气。部门的重要度其次,主要看部门的业务和氛围,也就是业务的基本盘是否稳固,是否有想象空间,团队氛围是否和睦。在大公司中,公司股价的下跌可能会影响收入,但是短期内对个人工作的影响是不大的。研究领域的热门与否更是一个缓慢的变化过程,如果哪一天自己的研究领域垂垂老矣,再换也不迟,很多大佬都经历过研究领域的切换。

发布于 2023-08-04 13:41・IP 属地北京
~~

都看到这儿了,不如关注每日推送的“科文路”、互动起来~

至少点个赞再走吧~

觉得还不错?可以在公众号菜单栏找到“赞赏”入口~

逛知乎:一位博士的求职经验谈

https://xlindo.com/kewenlu2023/posts/e40b167d/

Author

xlindo

Posted on

2023-08-09

Updated on

2024-01-16

Licensed under

Comments