一位AI大佬给算法校招同学的建议:观点篇

人工智能与算法学习

共 4606字,需浏览 10分钟

 · 2022-09-29

作者:BigMoyan

由于近两年互联网寒冬,整个就业市场哀鸿遍野,知乎多有关于当前形势下计算机硕士如何找工作的问题。有一些还在学校的小朋友也是比较发愁。故尝试从个人经验出发,分享一些自己在找工作方面的认知。

在阅读之前,有一些前提需要说明:

互联网未来未必还是一个好生意,所以本文并不是建议大家继续卷互联网,而是如果你决定要进场,如何准备。

作者个人经历有限,本文讲的是比较优秀的同学如何准备大厂的算法类校招,并且是业务线上的算法。以下情形本文的观点可能不正确:硬实力或基础方面,不足以达到大厂门槛要求的

目标是非算法类岗位,例如后台开发的

目标是各类以发paper为主的AI lab的

水平已经显著的出类拔萃,不需要通过传统的校招卷来卷去拿offer的

虽然如此,部分观点也应该值得参考就是了


    预计这个文章会有上中下三篇或上下两篇,今天这篇主要输出一些观点。

    关于作者

    无需知道太多,总之是有比较多面试经验(包括面试别人和被面试)的人就是了,我们还是从道理上看观点是否有益

    0x00:招聘方希望从校招招到什么样的同学

    不管是眼下的寒冬还是前些年的盛世,大厂的对校招同学的期望从未变过:我们始终想招具有快速成长潜力的同学。这是核心逻辑和第一优先级,因此这也就规定了你的目标:成为一个具有快速成长潜力的人,并在面试中表现出来。

    对校招来说,招聘方不应期望从实验室刚出来的同学有什么业务洞察或特别的工程能力,也不应期望校招同学能达到来则能用的状态(即使能达到,也未必是最合适),一则不现实,二则给校招的钱也确实不配有这么多要求。

    我知道你目前的水平也就那样,但谁TM不是从那个状态过来的呢?只要你能证明你值得培养,培养的出来,培养出来后真的能扛得了事儿,那就划算。

    0x01:八股文和代码:耗时最多,其实最不重要

    很多同学把准备面试、准备找工作等价于刷leetcode,背八股文。按照我的面试经验,这些耗时很大的工作往往是面试中最不重要的一环。

    当然该准备还是要准备,常识性的东西答不上来,leetcode easy都写不出来,那也过于离谱。但说他最不重要是因为,一些八股文问题和代码问题,答不上来也不一定会怎么样。

    开玩笑,你真当你的面试官随手都能AC一个leetcode hard吗?很可能连middle都A不了。很多搞AI算法的,代码题能磕磕绊绊写个DP就不错了。算法工程师的代码问题,往往只是看一下你很基础的思考方式和代码风格,确认下你多少还是个正经搞CS的,那就成了。

    基本上我觉得能比较顺畅的过easy题,有middle题目的思路,有点计算复杂度的概念,能讲出问题的分析思路,编程语言层面上的理解到位,相关工具能够正确使用,那就够。

    比起你已经知道的东西,证明“我能快速学会”更重要。

    注意是“证明我能快速学会”,而不是“号称我能快速学会”。

    例如,一个问题或一种概念你不了解,但你能够根据你已经有的知识猜测或推断出它是什么,应该具有什么样的性质,你能给出应该用什么关键词去检索能够获取的相关知识,能够设计什么实验来验证你的猜想。

    0x02:关于paper:重要但是也没你想的那么重要

    你以为你的顶会paper是用来证明自己的在某个领域的专业程度,以找到对口岗位的。

    其实不是,它的唯一作用是证明“你在上一份工作中绩效表现优秀”,从而让公司觉得你接下来还会表现优秀。

    因为如果你能做出世界级的创新工作,你应该不会来找工作。如果你像其他同学一样投简历找工作,大概率你的paper成色也就那样

    可能在某一个细分领域的某一个技术点上有了不错的改进,但对公司来说有什么意义呢?

    更不要提大部分的工作跟产业实践完全不能对口了,搞遥感图像的也要找工作,搞蛋白质结构的也要找工作,搞医学图像的也要找工作。你说一篇医学图像的顶会paper对淘宝抖音和拼多多有什么意义?

    这个认识,大家是要有的。paper有一两个差不多的够证明自己就行了,这玩意边际效益递减,特别是你的paper是明显的一个系列、前后关联很大的时候(非常常见,一个好的会议文章改巴改巴投个期刊)。

    0x03:人人都爱自驱

    一线leaders有一次培训讨论一个问题:你最希望下属具有的素质是什么?排名第一就是自驱,这几乎是所有人的共识。

    你需要证明你是一个自驱的人。你的paper可能是导师安排,师兄引导,薪火相传的结果,很多实验室在某些领域积累深厚,paper都是成系列的,在这种实验室,一个中人之姿也能做出不错的成绩,当然我认为这没什么,能考进这种实验室说明你也是很有水平的。

    但脱离那个环境你还行吗?你能不能独自寻找问题,迎接挑战,持续自驱的做出成绩?

    竞赛、开源代码建设、以及任何具有一定挑战性的,非标的经历都有助于帮助你证明这一点。例如你虽然本职工作是做AI方面的研究,但喜欢打游戏,因此自己尝试做了一个游戏还搞得有模有样。这个经历跟你要找的工作可能毫无关系,但他证明了你是自驱的,你总能通过持续的自我驱动去学习、研究、尝试,达到你的目标。

    一个员工最牛逼的状态是“包的住事儿”,这样你的领导就可以做甩手掌柜。领导不管你,你也能搞定,这当然需要相当的能力,但起点至少是你能够主动动起来。

    0x04:聪明vs勤奋

    中国人是很推崇天道酬勤的,勤奋也是我很欣赏的一种天分。

    但是很遗憾,聪明,而不是勤奋,是大厂面试中你最需要展现的特质。勤奋很容易伪装,很难持久,勤奋而无出色成果,则勤奋反而是减分项。

    大厂的程序员是一份比较高端的工作,很多人从情绪出发,会对这个说法很不屑,但客观看,实际上一线大厂的骨干技术,所需要的综合能力是比较高的,它不能或很少能通过简单的勤奋达成。

    越是高端的岗位,越是需要聪明,如果招聘方的目标是把你培养成骨干,那你是不是聪明就是一个很重要的考量维度。

    聪明有很多种,我们常规认为的数理上的聪明未必是最重要的,实际上我认为,对公司来讲最重要的聪明是洞察力。越到后期的面试,越高级的面试官,越不会考察你代码写的怎么样,八股文背的怎么样。给你一个开放问题,你能不能理解出题人想要考察的方向,能不能正确建模问题,思考出合乎逻辑的解决方案,能不能正确评估方案的优缺点和瓶颈,能不能对后续迭代有一些想法?

    洞察力最明显的一种体现就是建模和迁移能力,如果针对面试官的问题,你能回答出这两句话:

    这个问题本质上是一个XXX问题

    这个XXX问题与YYY问题的思路是相通的,我们可以基于YYY问题上的研究成果设计XXX问题的解决方案如下


    那这会是很好的状态。

    除了洞察,还有很多类型的聪明也很受欢迎。例如快速学习,归纳总结,逻辑推导。你可能需要reveiw一下,如果一定要说你自己很聪明的话,你哪里聪明?

    0x05:沟通:一直都很重要

    沟通。同样是越靠后的面试越重要。讲话啰嗦,词不达意,语言理解不畅,任何一个让面试官觉得“沟通不舒服”的点都可能直接导致你拿不到offer。

    我要说的是,即使在hc相对宽松的前几年,也是如此,并不是因为hc紧了面试官吹毛求疵。

    你的面试官大概率都是你以后工作的同事和领导,沟通顺滑与否直接决定你们未来的合作情况。大厂的算法员工都是非常昂贵的,所以团队其实不大,管理也相对精细,组织结构上相对大一些的团队,实际上也是分很多小方向支持各类业务。

    人少,事多,所以一个人就要当一个人的用,你是个沟通黑洞,可能相关的一片业务就全完犊子。甚至因为你沟通能力的问题,整个团队都会受到效率影响,这是个非常致命的问题。

    那些“做技术工作只要把技术搞好了就行”的想法是显而易见的谬误。我目前尚未见过任何一个人搞技术能搞到离了你公司不转业务停摆的,也许有,但肯定不是校招的各位。

    公司的工作环境是合作和竞争,是团队作战。这个世界上没有真空中的球形程序员,有的只是一个个既要写代码,又要想算法,既要对接产品经理,又要对领导做汇报,既要管理下属和同事,又要管理领导和合作伙伴的真实的程序员。

    越是HC收紧,招聘方越是要精打细算,你又能搞算法,又能搞工程,又能作为接口人去跨团队合作,那你性价比就很高。

    0x06:性格:不是玄学

    面试是很看匹配度的,所谓匹配度,一是你的自身素质和背景与当前的岗位需求是否匹配,二是你的性格特质与团队是否匹配。

    很多时候后者的占比更重要。

    我们曾经面试过一个纸面上非常优秀的候选人,名校毕业,paper有分量,在多个大厂有实习经历且实习期间都做出了很好的成果,实际面试后聪明度、理解力、工程能力样样拿得出手。

    按理说这么优秀,offer肯定是稳的,但最后还是被毙了,原因主要是工作风格和价值观方面的,这种原因有点敏感,容易引起争论我就不详细讲了。但事实就是,你确实可能因为这种看起来很玄学的原因跟offer失之交臂。

    总体而言,积极但有分寸,阳光但不幼稚,思想开放不偏激,有灵活度又不失原则的风格是比较能够获得认可,跟大部分团队匹配度都不差的。

    简而言之,需要你思想正面,听话好带,讲道理能讲通。我们不必谈这是否是资本家控制劳苦大众的手段——也不必这么上纲上线。只谈一下换位思考,你是否也希望你的伙伴和队友是这样的人?

    我们倒不必为了一个offer就强迫自己改头换面或者去做伪装,双向选择的事情。但我的确认为这样的性格对个人成长是有好处的,如果你也认为这是一种更好的状态,那去磨练自己的性格也是准备面试的一部分。

    0x07:实习经历:关键实习经历很有帮助

    我们一开始就说了,招聘方不应指望校招同学有多强的业务洞察和工程实践能力。

    但如果你有呢?显然是一个加分项。

    当然本身拿到有足够成色的实习offer也是比较难的,也算是实力证明的一部分,如果用实习经历作为找工作的关键要素,颇有点循环论证的意思,所以这里就不多讲大厂实习了。

    实习经历需要下面两个点至少占一个:

    实习的工作本身很难很有挑战性,你通过实习参与了实际的产业实践,了解了公司工作的套路方法、工具链,并且对业务有了一定认识和洞察。

    实习的工作本身未必特别难,但你做出了有特色的成果。

    如果你的实习经历让面试官觉得“这不就是XXXX这样搞一下就好了”?那多半不会在面试中体现出什么价值。

    此外,与专业或工作领域无关的实习经历没有任何用处,是减分项,最好写都不要写。你告诉我你一个计算机硕士暑假去实习做电话客服,我会觉得你有病。关于简历上什么加分什么扣分,后面再细说。

    最后,如果你的实习经历与团队需求高度吻合,恭喜你,很加分,但可遇不可求。

    0x08:请回答下面的问题或练习

    方法论是虚的,你需要有一些手段来诊断自己的准备情况,不妨请一位已经工作的有经验者作为你的模拟面试官,尝试回答下面的问题

    如果说你是一个聪明人,你认为你聪明在什么地方?理由是什么?

    你的实习/项目/paper中,难点在哪里,为什么困难?你是如何解决的?

    你迄今为止觉得自己最牛逼,最得意的一件事是什么?

    你觉得工作的意义是什么,你期望中理想的工作是什么样的?请你的面试官从工作角度(而不是朋友角度)审视你的回答。

    请你的模拟面试官针对你的项目进行挑战,要求面试官能够根据你的陈述,给出一个关于你项目的不同的解决方案,你来进行defense。如果面试官的方案不行,为什么不行。如果可行,你为什么没那么干:你的模拟面试官是否充分理解了你项目的目标、价值、方案逻辑?

    你的defense是否有理有据有节,沟通过程中你的模拟面试官是否觉得舒服?

    寻找一些开放问题,在模拟面试中限定时间回答并复盘。

    文章转自知乎,著作权归属原作者

    分享

    收藏

    点赞

    在看


    浏览 11
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报
    评论
    图片
    表情
    推荐
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报