再聊聊各个岗位的就业门槛和面试官的考核要求。
首先,绩点有用吗?如果学校够了门槛,绩点没啥用。公司招人是招你来干活的,希望你能会一点工作要用的技能,不是招你进来刷题的。你就算把吉米多维奇全套数学题都做完了,也没法给公司创造一分钱的价值,别人凭什么雇你?举一个极端例子,同等学历背景的两个人,一个人绩点90,一个人绩点70,但第二个人会git,第一个人基本不会写代码,我会要第二个人。
当然,太笨了教不会的也不行,所以一般要求学历211以上。其实我觉得一本以上就能教了,奈何投简历的人太多了简历看都看不过来,所以就一刀切了。
其次,本科能做算法吗?能,但是极少数。除非你能在本科阶段就向面试官证明你有硕士的平均水平,否则很难。如果本科985,有一篇顶会一作,有一段大厂实习,都是岗位对口的方向,那么大厂抢着要你这样的 “高潜” 人才,大厂偏爱年轻人。但说实话,如果本科就达到这种水平,其实直博会收益更大。本科能做算法的大佬升学去了,本科做不了算法的在网上怨声载道,这就导致了大家都认为 “本科生做不了算法”。
但我想说明的是,不要让学历限制你,你能不能找到好工作取决于你在上学这段期间做了什么,而不是取决于你在哪里上学。你要是跟着学校的培养方案走,被安排,以为靠学校光环就能 “自动” 获得好工作,那么毕业就废了。当然,进国企之类的确实是靠学历,因为有可能面试官的技术比你还烂,国企也不是靠技术赚钱的,国企 90% 的活是个高中生就能干。国企领导基本上都是大专出身,就想找个名校毕业生进来当吉祥物充门面,好喝酒吹牛。
话说回来,面试官最关心的是招你进来能不能快速上手,而算法工程师的日常一般是处理数据、训练模型,所以希望面试候选人懂怎么快速抄开源论文的模型方案(别笑,现在国内大厂的算法模型就是先抄国外的,再抄同行的)、怎么把方案抄过来后训模型(有调参的经验),因此需要满足以下能力:
- 最基本的代码基础、数据结构与算法基础、数学基础(靠做力扣题、八股文体现)
- 训模型的经历(靠实习、论文或竞赛中的项目体现)
这里就有取巧的策略了,主要是目标导向,没必要硬啃《算法导论》去提升所谓的数据结构与算法基本功了,直接上力扣题官网,把hot 100题单都做出来,就行了。实在不行,就背下来。只要面试代码题能做出来,面试官就认为你的代码基础是合格的。当然,刷力扣题的时候不要有恐惧心理,99%的题目大多数人第一次接触都不会做,并不是因为自己不聪明。面试大多数代码题都是原题或者类似的题,如果这都做不出,可以说是基础不过关,直接pass了。当然,如果你和面试官聊的投机,会放水出一道简单题给你做,这是因为靠力扣题来刷人是不合理的,因为力扣题的那些奇技淫巧在工作中基本上用不到,在大厂实习的时候,有个同事和我说很多人工作了连二分都不会写了。但是,因为面试官有考核代码能力的KPI,所以不得不出题,这是必备环节,但出的简单还是难,我觉得主要看你之前的面试表现,如果表现很糟糕,就出个难的题看你能不能有超出平均水平的coding水准,作为个人亮点。
注意,面试的时候面试官一般情况下都不是要为难你,而是要挖掘你的个人亮点。如果你没有对应的实习、论文或竞赛中的项目,那只好考察你的基本功了,问一些类似于优化器有哪些、什么是正则化之类的(八股文)问题。如果你有项目,基本上90%的面试官都会只问项目,显然如果你项目做得好,必然说明你有对应的基础了。
在聊项目之前,先谈谈论文对找算法岗有没有用。这个问题在网上随便一搜,回答都是要有论文才行,但其实也要分情况讨论。
如果论文不对口但有论文,找实习不难,但秋招会基本不看。我们还是要盘一盘这背后的逻辑,而不仅仅是 “记结论”。结论是随着行情变化而变化的,而互联网商业的底层逻辑是基本不变的(除非LLM把底层逻辑都给革命了,比如说现在的AI搜代替了之前的百度搜索)。
找实习不难是因为,面试官有容忍你成长的空间,如果你有一篇CV顶会,去找搜广推实习,虽然卷(现在找实习就很卷了),但是也能找得到。但如果你去秋招,找的搜广推岗位,但没有搜广推相关经历,有顶会论文也基本上会简历挂。为啥?用圈内的话讲,叫不match。秋招招的人是有一定经验的、能入职就开干的校招生。有人问,难道不培训就上岗吗?是的,大厂没那么多耐心培养人才,只筛选人才。你得自己在学校或者实习培养自己,努力达到大厂的标准。
所以说,只要当论文和岗位比较match、论文比较垂直的情况下,才很有用。举个例子,如果你的名字出现在deepseek的技术报告中,很显然在你实习还没有离职的时候,就有无数猎头闻着味来hunt你了。但是大多数人有这么幸运吗?很遗憾,没有。大多数人的论文都是在学校在导师的指导下完成的,而大多数导师研究的方向基本上业界没有应用落地场景。很简单,你去自己的学校计算机学院、人工智能学院搜一下教师主页,看有多少老师是做搜广推方向的?再去打开各个大厂的招聘平台,输入你导师的研究方向关键词,看能蹦出几个相关的岗位?当然,实验室积累的资源就另说了,比如说LAMDA实验室虽然某些方向研究得比较理论,但是这块牌子在华为还是比较出名的。而有些直系师兄师姐就在大厂干活,找他们内推或者取取经还是能降低面试难度的。
卷论文还有一个不可控的因素是,现在发顶会越来越随机了,遇到坑比审稿人的概率大大增加。有时候甚至写好story和画图比实验结果更重要。我个人不觉得所谓的科研训练对于就业有多大帮助(尤其是在LLM现在这么强的情况下,idea is cheap),在学术界锻炼的讲故事和写论文的能力并不能在工业界给公司创造直接收益,而在 toy 的公开数据集上 overfit 获得的sota模型无法泛化到工业级的数据上,也就没法给公司创造价值。
我觉得比较好的方式是,找一个和大厂合作紧密的导师(甚至是大厂来的),或者进大厂的 ai lab 做科研导向的实习。我认为传统的闭门造车式的科研模式,将会在LLM时代被冲烂,在就业市场上没有任何优势。之所以目前并没有被我说的这么夸张,是因为学术界的经费主要是上面拨款的,不参与市场化竞争,所以尽管研究的是一些老掉牙的东西(比如CV),但依然能偏安一隅,只是苦了相关领域的学生。
聊了这么多,其实核心思想就一点,要想找到好工作,多去业界感受、学习,要摸清楚业界需要什么样的技能,再去找补。业界的目标函数和学术界的目标函数 gap 比较大,很难二者兼得。
OK,现在我们来谈谈项目,聊到这里,你应该已经有感觉了,就是论文、竞赛或者实习其实只是载体,重要的是参与的项目,这里需要2点注意的,第一就是项目匹配,之前说过的。第二就是项目得有创新点,得体现你个人的思考,能形成一个story。比如说,在实际业务中,发现了一个xx问题,设计了xx实验验证了这个问题,提出了xx方法解决这个问题,在真实的A/B测试中涨点,拿到收益。