【R言R语】栏目专注于分享Rocky的一些思考。关于AI行业的思考,将是本栏目的核心,除此之外,其他有价值的事物也会在这个栏目中呈现,欢迎大家一起交流学习💪,分享宝贵的ideas~
大家好,我是Rocky。
2022年号称“史上”最难的校招季来了,看着群里小伙伴们讨论着笔试题,面试题,测评题,那些似曾相识又感慨万千的感觉,难免会让Rocky想起两年前的秋招场景。
Rocky相信不管如何风吹雨打,也不管环境如何跌宕变化,我们依然是鲜衣怒马少年时。该办的事儿,咱们还得接着办。
本文将Rocky之前写的四篇校招算法岗感悟文章进行了整合梳理,再加上Rocky对算法校招的新思考,覆盖了校招干货,校招简历,校招面试技巧,校招offer选择等维度的真诚分享。
So,enjoy(与本文的BGM一起食用更佳哦):
全球经济衰退,能源价格不断上涨,国际局势风云变幻,疫情的影响,互联网底层逻辑彻底改变,各个公司将本增效,AI红利的消退以及CV算法岗位严重供大于需都让CV算法岗竞争的激烈程度上升到了一个前所未有的高度。
坦率来说,算法岗不是技术的全部,技术不是工作的全部,工作更不是生活的全部,在当前环境下,很多公司的CV算法岗投递比高达恐怖的60:1,而hc其实只有0-2个,内卷程度可想而知。在这种情况下,面试官只能提升面试的难度和广度,并且不会给应聘者太多犯错的机会。
并且随着CV算法大规模的成熟落地,公司其实更需要的是有丰富经验的社招算法工程师,所以很多优秀的公司可能根本就没参与应届生校招。
因为跟计算机专业搭一点边的工科专业同学都想转算法,甚至连专业一点都不搭边的同学也想转算法,所以导致供需关系彻底进入买方市场,这也意味着,预筛选成为了非常重要的一环,而预筛选的第一步就是学历,甚至一些公司会通过学历逻辑一键过滤简历。
Rocky本想再次描述2021年算法岗校招竞争的激烈过程,以及神经紧绷的那几个月,但是回想着回想着脑海里就浮现出在实验室里和小伙伴们一起学习的场景,在寝室里和室友们的每日一歌,万秀二楼的杭椒牛柳,赴了太多的宴,以及好想再去的西单,就不知不觉哑然失笑。
讲完宏观环境的一些思考,接下来再从AI行业角度给大家提供一些思路:
首先,由于算法岗位主要是赋能岗位。算法 + 硬件,算法 + 平台,算法 + 软件,算法 + 业务场景等等才能发挥算法的作用。客观来讲,算法岗确实没有开发岗有这么大的需求量,因为不是所有公司都在硬件、平台、软件、业务场景其中一个方面或几个方面都占据市场领先的地位,所以也就没办法有更大的开拓或者说愿景,也就没有太大的算法需求。
再者,算法岗薪资其实与开发岗相差无几了,有些公司开发岗更香,很多拿到开发offer的朋友看上去都美滋滋的。并且很多前沿的算法想要落地还需要很长的路要走,但公司最需要的是能使业务产生盈利,快速出成果的人。因而开放岗的需求量是非常旺盛的,也大大超过算法岗的需求。
最后,算法岗学习成本很高,需要学习的技能树很繁杂,需要1-2年的认真积累过程。并且不但需要硕士学历背书,还需要高质量的论文(纯研究岗),大厂实习经历以及高质量比赛的top名次等才能有一二线公司的面试邀请。
聊了这么多,希望大家能合理地做出判断,对当前的基本面有一个比较好的认识,如果你还是很坚定的想要继续在校招投递CV算法岗,那么请继续看下去。
首先我们需要知道现在工业界算法岗的具体情况。目前CV算法分为:
纯研究岗。多在一线公司的AI Lab里,各方面能力要求极高,基本都是博士起步。但是随着资本对AI商业变现的预期降低,各公司对AI lab也会做出相应的调整。
业务岗。这可能是现在一线公司最主要的岗位,多在业务部门,针对业务场景,设计算法解决方案,并完成产品的交付,并在空余时间进行算法研究以及算法打榜等。
纯工程岗。此岗位主要位于算法的下游,完成算法的部署、集成、端侧优化、软硬结合等等工作。适配CV算法的大规模落地需求。
讲完了CV算法岗的主要分类,接下来我们就讲讲校招算法岗需要的核心竞争力。
基础知识。首先,我们要知道的是,算法工程师,前提是工程师。所以,计算机相应的基础知识是需要的(数据结构与算法、Linux、计算机网络等)。还需要掌握一到两门编程语言,如Python,C/C++(CV一般会需要进行部署)等。接下来就是机器学习基础,深度学习基础,数学以及前沿的一些论文。
实习。到202x年,Rocky认为这会是校招求职最最最重要的一部分了,不单单是一份好的实习经历会让你的简历亮眼很多,而且高质量的实习相当于让你提前体验了工作节奏,更能熟悉工业界的业务场景,能在实战中磨练自己的技术,让知识结构更完善。最最最重要的是可以转正,很多大厂实习转正就占了一半的hc甚至全部。所以在处理好学校主要事务的前提下,能越早实习越好。
竞赛。入门成本低,性价比高的竞赛平台首推Kaggle,每个Kaggle的比赛,都会有很多大神在论坛中分享心得与trick,如果说什么是开源精神,去Kaggle一看便知。我们再来讨论竞赛本身,如今有越来越多的竞赛和竞赛平台出现,其质量也参差不齐,如果要为面试做准备的话,基本是要高质量的比赛(比如很多顶会workshop算法竞赛、顶级竞赛平台举办的算法比赛、参赛队伍高于1000的算法比赛等),一些不痛不痒的比赛就不要参加了,浪费时间。如果参加高质量有价值的比赛并获得比较好的成绩,不但能在面试中能多点谈资,也能提升自己对算法的理解,而且很多竞赛本身会有一个高价值的赛题背景,对于在学校的学生来说,无疑是一次很好的实战演练,综上可谓一箭三雕。
论文。最好是课题组或专业是和你想要从事的算法方向对口。这样的话学习的一致性更强,而且就算最后没有发出高质量的论文,简历上也能多写点内容。总的来说,论文是和实习一样是非常重要的部分,或者说可能起决定性作用的一环了,特别是纯研究岗,几乎都要求顶会paper。但是发顶会并不容易,所以自己一定要把握好,到底是在实验室发论文还是边科研边去实习。
学校。说实话,学校还真蛮重要的,202x年了招聘部门应该都会有简历筛选机制,很简单,设置关键词,先初筛一波。所以高中的同学高考加把劲!准备读研的同学也加把劲!
在这个CV算法岗卷上天的背景下,一份有“竞争力”的简历可以让我们有更大的几率获得面试的机会。
而Rocky也是从2019年开始制作第一份简历,到研究生毕业时已经迭代出20多份的简历。从第一份简历投递日常实习也很难收到面试通知,到后面不断迭代完善简历,在投递暑期实习与秋招的时候,获得的面试机会也比之前大大增多。
加上Rocky在实习和正式工作期间,也曾作为面试官参与部分面试的流程,也看过一些面试者的简历,可以说针对简历这个环节也有面试官角度的理解。
回顾上面两个维度的经历,Rocky总结了很多经验与技巧,也有一些方法论与思考,而本章节的核心也聚焦于这些经验的分享。
(在此申明,本章节不会出现任何具体简历内容,所有论述均为通用思考基线)
在每个关键时间节点上,简历一定要早投!简历一定要早投!简历一定要早投!
很多公司会有暑期实习提前批,秋招提前批,暑期实习正式批前半段,秋招正式批前半段这些时间点,这几个关键节点最好要保证简历已经迭代到让自己心里比较踏实的程度。
因为过了这几个时间节点,比如说秋招正式批快到后半段了,学历/学校“关键字”快速初筛应该都会开启,也会进入刷KPI模式。
从大四或者研一日常实习开始到秋招的彻底结束,是一个很长的时间维度。而这个时间维度足够让我们将自己阶段性的成长,阶段性的总结,大大小小面试的经验反馈到自己简历的优化迭代上,如果能把握住这段时间,那这是Rocky认为最好的简历迭代方法论。
我们可以先投递一些小公司练练手,让自己习惯于将简历的内容贯穿在整个面试中,让简历成为我们“演讲的大纲”,待时机成熟之时,便硬刚大厂。
简历整体框架一定要简约清晰,有条理,疏密有致。千万不要花花绿绿,让人花缭乱找不到重点。(hr和面试官每天要看很多简历,不要再增加他们多余的负担,让他们减负就能增加印象分)
个人信息,教育经历,项目经历,科研经历,竞赛经历,IT技能,个人荣誉与语言能力等信息依次展开。
疏密有致让hr与面试官看简历更舒服;简约清晰的风格能让面试官更快进入你的演讲逻辑里,面试官能快速发现你简历的“亮点”,而这个“亮点”是你早已为他们准备好的盛宴。
注意:如果确实有很多高价值的内容的情况下,完全没必要把简历压缩成一页,写两页也是可以的(Rocky就是写了两页,实测完全没问题,而且你高价值的内容越多,面试官会把大量时间用在和你交流这些内容上,面试的问题也多引申于此,这样面试风险的可控性就会强很多)
首先,这部分内容的整体脉络一定要与岗位相匹配,如果是CV算法岗就专注于从CV算法相关的实习/科研/竞赛进行展开。
接着,具体内容撰写可以遵循STAR法则:
再者,我们可以对每个项目私下进行Think:项目的一些反思,总结,以及现在看来还能优化的点,这样可以使很早之前的项目能随着时间不断发展迭代。(这部分不用写在简历上,避免每个项目过于冗长,但面试的时候可以主动和面试官交流)
举个栗子🌰:在XXX项目背景下,我主要对XXX部分进行研究,使用了XXX方法,存在XXX问题/反馈XXX现象,针对这些问题/现象,尝试了XXX方法/XXX思考/XXX研究,提升了XXX效果/有XXX成果价值。(这是一个极简的整体脉络,可以适当补充内容,突出你的优势)
需要注意的是:所有实习/科研/竞赛经历都要选择高价值经历,什么手写字符识别,学校课程作业就不要写了。
讲到面试,首先要讲的是一定要多参加面试!不要错过任何一次面试机会!通过不断的面试来习惯面试节奏以及增加面试适应性!比如Rocky经常在宏博一楼吃鸡腿套餐的时候边吃边面试,在寝室睡午觉时立马起身面试,在五道口边看人潮边面试,在去实验室的路上边走边面试。
总的来说,就是要在不同状态下都能较快进入面试状态,并满嘴跑火车,这样面对不同的面试压力也能更从容。
当我们参加一个面试时,面试官将如何考察我们的能力呢?
以有成熟现金流算法场景,也具备用算法强赋能能力的公司为例,面试官主要以下面这些维度对面试者进行一个完整的考察:
首先,简历对整个面试流程的把控至关重要。如果你的简历内容丰富,能突出你的优势与基本面,整体方向与面试岗位相match,那么面试官大概率会将深度学习基础 + 机器学习基础 + 数学基础集成到一起进行考察。以简历中感兴趣的内容为核心,逐步深入,横向拓展发散。对面试者来说,面试风险得到了极大的控制,就算会问一些其他问题,多半也是与这些内容相关联;对面试官来说,面试者的项目可能会对面试官提供一些思考(比如Rocky有一次参加某公司面试,对方直接问Rocky这个算法你是怎么优化的,他们用的时候效果不好,后来Rocky才知道这种行为有一个准确的定义,叫套方案)
再者,数据结构与算法(手撕代码)部分基本上是无法避免的,加之现在AI红利已经消耗殆尽,给出的算法题也越来越向medium和hard方向发展,而且往往算法题起到一个筛选作用,即如果面试者没做出相应的题目,大概率这轮面试会不通过。
接着,场景设计&&前沿论文跟进能力是算法岗面试里很重要的两个考察部分。场景设计题一般都是面试官结合部门的业务场景,给出的一类开放性问题,主要考察我们的思维和逻辑能力,我们根据自己的思考与认识,表达出能自圆其说的答案就好。如果回答面试官很满意(从你的回答中他找到了解决实际业务问题的灵感,套方案梅开二度),整体上会加分很多。注意:千万不要不回答,就算没想好,扯也要扯上几句。而前沿论文跟进能力的考察主要是问平时如何高效看论文?一篇论文看多久?你研究领域相关的新论文看了吗?讲讲?这个方向的新论文你有看吗?讲讲?平时一些高价值的新论文大家还是需要看看的。
其次,在编程语言/计算机基础/数学基础中,对编程语言的考察一般会问一些核心的知识点,大家平时能有较好的理解并不断复习即可。而计算机基础与数学基础的考察一般都占很少的比重(在Rocky经历的面试中基本不会考察,最多问问Linux的一些常用命令)
最后,一般会有一个反问阶段,通常大家以为这是一个走形式的流程,但Rocky认为是对面试者来说最重要的部分。我们可以通过以下三个问题来了解面试官部门的主要业务情况,面试官对我们的看法,以及窥探公司业务的基本面与未来潜力:贵公司/部门主要的业务方向有哪些?如果我进入贵部门,将负责什么样的工作?您认为未来计算机视觉在工业界还有有哪些应用与突破,部门业务利润现金流如何,公司对AI的未来战略规划是什么样的?
这里要引申出一个特殊的情况,如果面试官一直在让你手撕代码,问大量不可控的深度学习/机器学习/计算机基础/数学基础的知识,那么说明你的简历内容对这次面试价值不大,无法引导面试官与你在一个维度上,或者是本来就没有hc为了走个过场,那么面试不通过的可能性就会大大增加。(排除某些厂就爱让人手撕代码的情况)
总体上来说,由于算法岗面试门槛越来越高,基本上手撕代码中有一两道没写出来,大概率挂;简历中内容不熟悉,面试官根据简历跟进的多个问题都没回答上来,大概率挂;深度学习/机器学习基础知识有多道题目答不上来,大概率挂。
首先,最好的面试技巧就是不断地面试,把每次面试都当作一次训练,久而久之就能从容,就能应对。
再者,手撕代码阶段,就算一开始没有思路,也要和面试官多多探讨,询问相关信息,如果有思路,可以边写边说给面试官听,这样既能让自己不太紧张,也让面试官能收到你的思路,从而增加印象分。
其次,面试是一场博弈。从一开始的自我介绍,到简历感兴趣内容的询问,到后面不可控问题的回答,再到最后的场景题等阶段,都要有意向自己熟悉的研究方向和学习领域引导,让自己的能力有更好的发挥空间。
最后,面试遇到不会的问题,一定不能直接说不会,要边思考边说,能说多少说多少,结合自己的想法,往自己熟悉的方向上迁移,让面试进行下去,不至于被打断。
Rcoky一直在撰写整理“三年面试五年模拟”之独孤九剑秘籍,里面包含了算法高价值知识点,并会持续输出pdf版本方便大家取用学习,大家可在WeThinkIn后台**【精华干货】菜单或者回复关键词“三年面试五年模拟”** 进行取用~
首先恭喜大家有这个幸福的烦恼,选择offer确实需要慎重考虑,毕竟这中间有太多的变量与未来的不可控因素参杂,且毕业第一份工作对以后的发展也有重大的意义。在这里Rocky给出一些大方向的建议与思考,希望能让大家有多一些维度的判断。
首先,针对计算机视觉算法(CV)岗,Rocky想给出的offer选择逻辑是(个人建议):
大公司核心团队 > 中小公司核心团队 > 大公司边缘团队 > 小公司前景未知团队
接下来,Rocky将分享支撑这些逻辑的观点。
宏观角度。我们抛开CV算法岗,抛开技术岗,抛开岗位部门画的大饼不谈,一个公司或者组织想要稳步发展不断成长的关键就是健康的现金流与活跃的上下游。更具象一点讲,就是业务是否有力量,业务是否能带来现金流,业务是否在扩张。
那么,现在CV算法最为成熟的可落地的场景有哪些呢?赋能安防,赋能移动端美颜类APP,赋能电商/视频平台,赋能可以使得公司原本业务更进一步增长利润的场景。
因为现阶段的赋能属性,所以要求公司必须本身已经有强力的基础业务,而达到这个要求,基本上就是一二线公司了。而强力基础业务带来的充足现金流让CV算法岗除了进行赋能业务以外,也可以有一定的自由空间进行高价值的研究突破工作。这种情况下一般更容易进行正向发展的循环,有利于个人的成长以及给公司创造更多的价值。
那如果没有强力的基础业务,主要依靠算法解决方案能力去赋能别人呢?去成长为算法解决方案提供商呢?这其实是一个思路,但是面临的问题还是回到上面的两个点,现金流与上下游。首先,别人可能不需要你去赋能,就像上面讲的一二线公司有能力自建算法团队,并且这些公司更有可能从甲方变成竞争对手;其次,无法创造一劳永逸的toC算法产品,算法一般作为算法解决方案中的一个组件或者模块;再者,深度学习的瓶颈已经让不懂技术的投资人都知道技术的边界,资本市场面对AI的热情也已回归理性。
但是能在中小公司中将垂直细分领域中的业务或者算法解决方案做到行业顶尖,广积粮,筑高墙,守住细分领域,那么Rocky相信这样的历练对个人的成长与回报也一定会是让人兴奋的。
而核心与边缘体现在部门话语权。核心部门一般会有较高的话语权,这时大家深入思考的一些问题,其他部门也会更积极的配合一起落地实践。如果大家所在的部门处于边缘部门,可能没办法统筹更多的资源进行成长与变革。
微观角度。微观角度我们主要从以下三个方面进行展开:
校招是一个互相选择的过程,在公司逐步了解我们的同时,我们也要去逐步的了解公司。
Rocky给出下面的几个维度供大家参考:
在这里,Rocky想把base城市单独进行阐述。
我们选定一个base城市的工作,基本上短则两三年,长则以后的工作和生活都会在这个城市里进行。随意更换城市去发展其实是一个成本挺高的事情,你要判断你是否有能力去快速平摊这个成本,不然最初的base城市选择就需要大家更多的思考与权衡。
除了工作与技术以外,每个人都有很多社会角色,想要在一个城市长期发展,也需要考虑到户口问题,城市整体上与自己的适配程度,城市配套设施是否高效,在工作之余城市是否适合你的生活,是否能兼顾家庭等等。
总的来说Rocky的核心观点就是:判断自己的势能与城市的势能是否一致,或者说,你跟得上你选择的offer的城市的势能吗?
2008年的时候,Rocky还是一个青葱少年,被科比美如画的后仰跳投所吸引。
后来的几年,两连冠,各种绝杀时刻,黑曼巴。现在回想起来,依然能感觉到故乡酷热的午后,空调房里看着比赛,空调吹出冰凉的空气,还有盛夏的西瓜。
再后来,几个赛季都很艰难,但还是那样的后仰跳投,还是那样的坚持,还是那样的意志。整个体育界都很动容,曼巴精神。
每个人对曼巴精神都有自己的理解,Rocky也无法用言语详细表达,但是看过之前科比的一些比赛就知道,曼巴精神,就在其中。
2016年,科比退役了。那时Rocky在燕北,做着很多很多的尝试。Rocky很喜欢燕京啤酒,也很喜欢卤煮,还有北冰洋。
Rocky从草莽中走来,遇到过不少艰难时刻,迷茫与彷徨。很庆幸的是,还有曼巴精神一直陪伴身边,让Rocky坚持下来。转化成自己接地气的话就是:该办的事儿,咱们还得接着办。
To keep the Mamba Mentality in remembered.
今后如果我忘记了努力,我会讲科比的故事给自己听。
Thank you,Kobe.
也希望这个故事,能给正在校招的小伙伴们一些力量!
回想起当年,突如其来的疫情,无法回学校的焦虑,时间紧张的科研,千军万马厮杀的暑期实习与秋招。这期间有收获,有遗憾,有喜悦,有伤心,还有很多宝贵的记忆。Rocky也相信这就是前行的意义。
Rocky将算法高价值面试知识点即“三年面试五年模拟”之独孤九剑秘籍前六式进行汇总梳理成汇总篇,并制作成pdf版本,大家可在公众号后台 【精华干货】菜单或者回复关键词“三年面试五年模拟” 进行取用。由于“三年面试五年模拟”之独孤九剑秘籍pdf版本是Rocky在工作之余进行整理总结,难免有疏漏与错误之处,欢迎大家对可优化的部分进行指正,Rocky将在后续的优化迭代版本中及时更正。
Rocky一直在运营技术交流群(WeThinkIn-技术交流群),这个群的初心主要聚焦于技术话题的讨论与学习,包括但不限于CV算法,算法,开发,IT技术以及工作经验等。群里有很多人工智能行业的大牛,欢迎大家入群一起学习交流~(请添加小助手微信Jarvis8866,拉你进群~)