2022算法秋招总结

目录

  • 写在前面
  • 介绍
  • 预热 6月以前
  • 复习 6-7月
  • 牛客SP专场 7月
  • 提前批 7-8月
  • 缓冲期 8月初
  • 正式批 8-9月
  • 谈薪 10-11月
  • 信息
  • 书籍
  • 工具
  • 结语
  • 参考链接

写在前面

秋招是各位都要经历的一个重大人生节点,有的人顺利,有的人坎坷。
从结果来看,大家都能找到还不错的工作,只不过是能不能达到你心理预期的事情了。
但是,秋招过程中,除了自己的努力,运气起到了不可忽视的作用,运气好的时候一路过关斩将收获offer,运气不好可能很长一段时间颗粒无收。可能前两面都非常顺利,到了下一面突然遇到个疯狂怼人的面试官,你就凉了;可能你自认为面试非常成功,面试官也全程笑呵呵,然后扭头就给你挂了。
所以在秋招过程中,保持一个平稳积极的心态是非常重要的。

P.S. 每年的情况都会有所变化,早些年的时候对知识点的掌握甚至不需要很全面,可能光掌握LR研究的透透的就可以了,但现在越来越卷,你不光要能熟知XGB的原理,甚至面试官还希望你能知道如何调参训练,能说上几个参数的名称和功能。

介绍

这里我大概把找工作分成7个阶段,简单进行一个总览。

  1. 预热 6月以前
    预热阶段可以做一些提前的了解和体验,以及进行一些知识和技能的储备。
  2. 复习 6-7月
    这个阶段是主要发力进行学习的时期,不断学习、不断复习、不断巩固,尽可能的掌握一切可能会被问到的知识点。
  3. 牛客SP专场 7月
    这个牛客SP专场是个很有趣的阶段,算是独立于提前批和正式批以外的一个阶段。有较多的小公司,当然也有一些大公司,会在这里有投递渠道,我的滴滴就是通过这个方式拿到的。
  4. 提前批 7-8月
    如果说牛客SP专场还比较小众可能不是所有人都参加的话,提前批这里就是秋招战争正式打响了。不断的面试,不断的总结,时间非常紧凑,如果这时候还没刷好题,那你就需要谨慎一点了,因为没有多少时间给你去准备。
  5. 缓冲期 8月初
    你在提前批的时候很有可能还没有完全准备好,而且很有可能会发现之前没有意识到的重大问题需要去改善提高。那么在提前批和正式批之间,可能会有那么一两周的缓冲期让你来弥补。
  6. 正式批 8-9月
    正式批的时候其实基本上就已经是你的最高水平了,没有什么再能提高的了,就是去面试,自由发挥,这个时候已经没有什么紧张情绪了。。来了就面就行了。
  7. 谈薪 10-11月
    (还没到时候,我也不知道怎么谈)

预热 6月以前

在早期时候,秋招的战斗还没有开始,也就是6月之前的这段时间,都可以算做预热阶段。名字虽然叫“预热”,但是也有很多事情可以做。

  1. 刷题
    可以在秋招开始一年前甚至很早就开始刷题,这个时候不需要对自己有太高的要求,不需要保证时间和质量,就是多做,做着玩。
    目的就是增加自己的代码量,然后培养自己编程的感觉。这会儿也不需要花多大精力总结啊什么的,可以但没必要。反正秋招前还得投入大量精力,那会儿早忘了现在刷的题了。
    当然了,这段时间肯定还需要照顾科研、项目,一定要分清主次,这个时候秋招还不是最重要的。

    刷题的内容就是力扣上的各种题目了,随便刷,刚开始可能啥都不会,那就只做 简单,偶尔来两道 中等,困难题那是真的困难,你有兴趣就看看,做不出来就意思意思得了。如果你想刷的相对系统一些,就在力扣上选择题目的标签,按照专题去刷题,二分查找、树、链表、动态规划、搜索回溯什么的,挨个专题做,可以再做做总结。

    纯看兴趣,爱做不做!

  2. 预习
    每年都会有人秋招不如意,在来年春招继续战斗。这时候不光是上一届力挽狂澜的机会,同样是咱们开始接触大厂的机会。
    在春招的时候除了应届生的最后一次校招,还会同时开始实习生的招聘。我们可以去尝试面试实习生的相关岗位,体验一下面试的流程、问题的难度等等。我们实验室不允许大家去实习,但其实不会禁止大家去面试,面过了你不去就行了,而且像阿里这样的公司,如果你春招通过但没去,在秋招的时候只需要进行终面就可以了。(后期补充:近年来大厂的形式可能不是太好,春招直通车的名额在被逐渐挤压,甚至称为耽误你整成秋招面试的绊脚石,所以也需要灵活应变)
    那么在春招开始前我们就需要进行一定程度的预习了,就是进行一下秋招前复习的模拟。把要学的各种知识学习一遍,刷一些题,然后去被捶的满头包。面试是很难的,尤其对于这个阶段你还没有做好充分的准备,当然不会顺风顺水。

    这期间需要准备的内容不用太多,大概能掌握个框架就可以。

    1. 西瓜书
      先草草过一遍,尽可能的读懂里面讲的内容,但不用去细抠,时间可能不会允许你弄的太细致深入。在春招面试前能大概看完一遍书,知道一些大块好掌握的高频知识点就可以了,甚至公式什么的都还不需要推导。
    2. 力扣
      这也就是简单刷点题,剑指offerhot100这两部分的题目是可以重点做的,优先掌握简单和中等难度的题目,不会的不用纠结,秋招前还有时间。
  3. 简历
    找工作得提交简历吧,你得准备简历吧,认真做!
    简历的好坏决定了你能不能被捞,以及捞你的是什么水平的部门。
    怎么做简历我就不管介绍了。。自己找找资源学习一下门道,然后看看前人的模板,放上三个科研或者项目,齐活。

    另外,得准备好介绍稿,面试一上来都会让你做自我介绍的,因为面试官不会提前看你的简历。自我介绍大概讲个5-10分钟就ok,内容介绍的详细程度需要你自己去掌握调整了,有些相关部门的可能会想多听听多深入,有些可能就不愿意听,毕竟人家也听不懂。但是你自我介绍稿子准备的深度是一方面,你是要准备好面试官把你的项目和科研内容问到底的,比如你模型怎么做的,怎么实现的,有什么意义,你有什么后续工作么。

  4. 春招
    好了不管你准备的充分与否,春招如约而至,你可以开始投递简历了。大概投几个大厂就可以了,别搞太多,反正估计你还啥也不会,也面不过去 - - 。。过了也不能去实习,所以体验体验差不多得了
    像我当初虽然春招投了几家,但实际上我阿里一面挂了之后就直接拒了所有其他的面试邀请,因为除了耽误时间没啥意义了。。
    阿里这种可以投三个意向的,我第一个投的就是阿里妈妈,据说是阿里最强部门了,当时面试官还刚好是交大的一个学长,面的过程其实挺尴尬的,我啥也不会,但学长人超级好,还给了我一些建议,比如让我按照自己适合的方向去投递什么的(但实际上我我就是想去面个最难的看看差距,毕竟秋招我也不敢啊哈哈哈)

  5. 复习
    体验人间疾苦完毕之后你大概就知道自己几斤几两了,可以开始继续学习了。但这段时间还不算秋招开始,你可能还得做科研、项目什么的,千万分清主次,这些都是在有空闲时间的前提下做的。你合理的为找工作做准备老师是支持的,但需要你做项目的时候你一定要认真完成。

复习 6-7月

晃晃悠悠就到了六七月份,这就是秋招开始前的准备阶段了,也是最最重要的一个阶段。在这期间,你的状态大概就相当于备战高考备战考研了。你会在一两个月内快速汲取各种知识,不断复习巩固,达到能够自如应付面试的程度,因为后面就没什么机会让你一点一点复习了。

  1. 刷题

    1. 力扣
      力扣是我的主战场,力扣挺好用的,不过我为了快,买了几个月的会员,还挺爽的。
      这时候,刷题的内容很简单,就两个:剑指offerhot100
      可以说,这两套题库就是你整个秋招的考试范围了。
      笔试题你基本没法准备,全靠功底,当我刷透了这两套题的时候,笔试题我觉得明显比原来好做了很多。
      面试题就很有趣了,面试官会在每次面试给你出0-4个题,多少题都可能,基本98%的题都是这两个题库里的原题,真的就是原题。
      那么给你几个建议:
      1. 刷题,刷,刷,刷,反复刷。力扣能开最多五个进度,这是我当时刷的情况。
        匿名进度是我在预热阶段做的,加上第一次刷剑指offer的情况,其他都是后续反复做的记录了。
        我其实一丁点多余的题都没做因为做了也记不住,每个题都有自己的一丢丢特点,关键是熟练掌握每个专题的解题方法,那么你把那两套题刷透了就够了。关键是保证每个题能在压力状态下Free Bug,并且如果碰到一些简单的变体题目,能够立刻想到原型题目,并且活学活用。此外,题目的解法不要只会你一开始就会的!最优解一定要会!
        2022算法秋招总结_第1张图片
        最后我大概等于是把这两套题170+道刷了累积重复刷了1000+道
        2022算法秋招总结_第2张图片
    2. 牛客
      我这里单说了一个牛客,是因为笔试甚至面试的时候,很多时候会用像牛客这样的笔面试工具。牛客用的写代码方式是ACM模式,而不是力扣的智能模式,需要你熟练掌握读取输入数据的方式,要是不会的话你憋一小时也读不进来数据,跑个屁代码。
  2. 知识点
    除了刷题就是机器学习深度学习的知识了,水很深,你得把握住。
    在不了解情况又心存侥幸的时候可能以为只看西瓜书就行了,实际上远远不够。
    需要准备的书籍包括:

    1. 机器学习-周志华
    2. 统计学习方法-李航
    3. 百面机器学习算法工程师带你去面试

    从书的角度讲,机器学习和统计学习方法一定要吃透,百面是用来补全的,也要看。不过百面有的问题有点奇怪,不一定是重点,需要斟酌,并且百面得在另外两本看明白了之后看,不然没有连贯性。
    从章节的角度,每本书都多少有一点不是面试范围的章节,比如西瓜书的后面很多章节其实都不太重要的。此外两本主教材之间也会有彼此没有的内容,你要看的是他们的并集,而不是交集,甚至还有一些是吴恩达的课讲的,这两本书里都没有。比如LR中为什么用的是Sigmoid,为什么长这个样子,你可能会想它是二分类所以就得用Sigmoid。行,但这只是第一层。我在春招的时候阿里的面试官就问了我这个,并且秋招也有人问了这个。答案实际上是要从广义线性模型、最大熵模型两个方向去考虑,是能直接推导出Sigmoid的函数公式的。
    学习这些的难度还是不小的,很多时候自己搞不明白,就需要跟别人一起讨论,还得是跟你同一复习进度的人,怎么办呢?我们的办法就是自己结伴,一块儿学。
    2022算法秋招总结_第3张图片
    算是由我牵头组了个算法岗的小群,制定了个计划,每周两次,每次两人,轮流进行机器学习和深度学习的章节内容讲解,一开始用PPT或者CSDN的形式什么都有,后来统一改用了XMind,还挺好使的,就是知识点多了分支太多电脑可能会有点卡。
    我个人角度,在讨论班开始前,我大概自己从头到尾学了一遍,进度算是比较快,但掌握的也还是有所欠缺。这里我学习知识的途径不光是书籍,还有知乎上的一些讲解、b站上的一些up以及b站上的“浙江大学-研究生机器学习课程”,主讲老师讲的不错,推导也非常硬核。我在CSDN上做了算法题和西瓜书等的知识专题或者章节总结,主要是为了提高学习的质量,实际上后续并没有用这个复习。然后在第一遍小组讨论开始,我就改用了XMind,做了知识点的整理总结,所有内容都在一个XMind文档里,很全,很卡。。。
    然后我们在第一轮讨论结束后,很快又开始了第二轮的讨论,第二轮大家讲解的内容都重新分配了,但是因为都熟悉了很多,所以进度很快。在这阶段我又重新做了一版的XMind,比上一次的相对精简了一些,把肯定不会考的给去掉了一部分。
    此后呢我又整理了一个CSDN博客的版本,做了更进一步的精简,只保留一些提纲或者概要,保证自己能够达到复习的目的就可以了。
    学习嘛,就是把书读厚,再把书读薄的过程。

    后来我还进行了一些个人复习,比如看着知识点的小标题,自己尝试去复原和描述知识点的内容,包括各种公式的推导。
    另外我在后续的每次面试前都会过一遍所有的知识点,包括推导什么的,反正就是都过一遍,所以其实复习的非常好。像XGB、RNN这种大专题,有时候面试官说讲讲XGB,我就说“挺多的哈,那我开始了”,然后讲个恨不得一二十分钟直到面试官喊停。这种表现面评至少不会说你基础不扎实。

牛客SP专场 7月

近两年好像才开始有的这个专场,保证薪资在30+,但实际上就是个噱头。
不过独立于提前批倒是真的,但也有一些公司会不给你面试机会,然后直接把你的这个报名在最后一天给转到提前批,相当于直接帮你开始提前批了。。。
在这个阶段,可以开始小试牛刀了,当然了大厂那些也都要报,毕竟是多一次机会的。刚开始面试,你会发现有些知识点的问法和你一开始准备的不太一样,可能需要进行一些调整。你也会发现你简历准备的内容可能大方向没啥问题,但还需要做些修改,也有可能你的简历介绍的是这个项目,但说了一堆具体实现,没说项目背景,人家就很不耐烦。反正你可能会遇到各种问题,还有时候可能自己意识不到问题在哪,这就需要你保持警觉了,尽早发现问题并作出调整和修改,后面你就会更早有所收获。
我实际上对于简历内容的准备一开始不是特别充分,我以为没什么问题了,但我实际上后来在阿里和字节的面试上出现了两连挂的情况,当时直接给我心态搞崩了,突然某一天我开始意识到自己对科研介绍的部分可能有点不太合理,才做了一些调整。

提前批 7-8月

各大厂的提前批开始时间其实基本就都在七月下旬八月初这样,可以稍微早点就开始投递了,毕竟如果挂了还能反复捞,如果后期再被捞可能hc不够就不给你机会了。但具体多早开始投,是第一天就投还是稍微等等,我也说不好,我感觉第一天就投,在你前后脚面试同一个面试官的竞争对手可能也都很有自信很牛逼,那你就危了。但也有同学第一天就去投,然后那一周就直接意向书了,看命
这里提两点吧:

  1. 内推找个熟人,谁都行,熟人就行,能帮你查面试进度,不过有的厂不能查。如果内推人不能看的话可以问hr,所有hr都能看到,就是可能不太合规,原则上不应该告诉你的。如果实在没人,牛客找个内推码吧,然后要记住找的谁,最好能跟人保持联系,不然你之后也是会找不到人,还不知道面试到什么阶段了。。。
  2. 放平心态,就像我在文章一开始时候说的,你不知道什么时候就突然死亡了,真的太看运气了。遇到个佛系的,或者直接跟你看对眼了的面试官,你很轻松就能过。遇到个脾气冲的看你不顺眼的,或者本身hc就少,你去了就是贡献KPI的,也没准人家有涵养不让你有太差的面试体验,但反正转手你都得是挂。只要没见到意向书,永远别高兴太早,谁也别信
    面试官说你过了,你可能过会儿还是挂了。腾讯系统显示你进复试了,第二天啥都没干你可能直接灰了。腾讯捞了你跟你约了一面,到了那天可能告诉你hc满了不招人了你又挂了。人生太精彩了,面试的时候更精彩。

之前提了,我在字节的提前批一面就挂了,当时面试官只问我毕设的科研工作,问了四十分钟,最后觉得我思考深度不够。后来做算法题,也做了四十分钟,磕磕绊绊,我意识到自己刷题还不够,心存侥幸一个困难题的另一个解法没掌握,这个题是个小扩展,我卡死了。于是我在悲痛了一两天之后抓紧刷了一波题,感觉开始逐渐无敌(后来确实比较无压力了)。虽然当时我已经拿到了百度的意向书,但这两天的悲痛也是真的很悲痛,觉得人生灰暗,毕竟字节提前批一面挂,正式批是不会捞的。春招和秋招直接的历史不共享,但你在秋招中,同一家公司的每次面试,都是能看到你的面试历史记录的,字节的面试历史尤为重要,面评不佳你直接拜拜!阿里和字节都挂了,我寻思今年教育凉了滴滴凉了房产凉了,大厂更没几个了。。最大的俩拜拜了,腾讯还基本不要我们实验室的。妈呀我也凉了!

缓冲期 8月初

这个阶段大概有个一周左右吧,知识点这会儿其实已经差不多了,所以就是疯狂刷题。这是你最后能调整的完整的时间,后面如果正式批还没有开花结果,

正式批 8-9月

投简历吧就,各种投,不过注意排好档期,包括前面几个阶段也是,尽量均匀分布你的面试时间,别都堆在一周里恨不得一天两三个面试。均匀一点,这样对你知识点的掌握也有好处,持续刺激,不至于几天不面试生疏了。
虽然正式批这会儿才是“正式”,但实际上是你最后的机会,继续保持心态平稳是很重要的,说不急不太可能,但你要继续按部就班,别关键时刻掉链子。但说实话,接近秋招末期的这段时间,我们都开始坐不住了,几乎是处在除了面试不知道干什么的状态,不想复习,不想刷题,没有offer。身边的人总会陆续拿到offer的,甚至可能拿到了满意的offer就躺平了。每个人的情况不一样,你可能运气不错很早就可以躺平了,那你后面就是在为了argue谈薪而去面试,收割。如果你运气不佳还没拿到目标的offer,那你就得沉住气了。幸运女神可能会眷顾你,也可能不会。
我应该算是幸运的,在经历了各种坎坷之后,在被阿里挂了两次之后,几乎是最后一次机会,遇到了几位很欣赏我的面试官。
周二一面
周三二面
周四hr面
周六早上意向书
对我来说就像做梦一样。同时这周的周四拿到了迟来一个月的滴滴offer,此时手里只有百度、滴滴、阿里三家意向书,但却是我的救命稻草了。
在这周之前,我手里只有百度,是个不错的选择,但感觉似乎还不够,并且只有一家很容易被压薪资,会让hr认为你没有竞争力。因此在拿到滴滴和阿里之后,我如释重负,后续还有一点没有收尾,但基本可以安心结束秋招了。

谈薪 10-11月

现在还没到,暂且空着
(后期补充:一般情况下正常对答听通知就行了,但就一点最最重要,尽可能保留通话录音等决定性材料证据,极力避免沟通误会或者后期对方变卦的情况,如果真遇到了有证据在手也能据理力争,但实际主动权还是在对方手里。)

信息

获取信息相当重要!你很可能会错过某些比较早的厂的机会,保持信息广泛获取,以及同伴之间的信息交流非常必要。

  1. 大厂官网
    自己上官网查,然后记录整理
  2. 公众号
    会有一些公众号会持续推送
    1. smile招聘
    2. 大厂求职
    3. 伯乐内推
  3. 微信群
    会有各种途径让你加群的,往届的学长学姐们都会组建各种群。。毕竟内推有钱拿
  4. 同学
    多个朋友多条路,同学永远是你的好战友
  5. 往届面经
    往届面经是你面试前最好的参考,毕竟跟你方向相同,还是相似条件。网上的也可以参考,但没准人家清北的,本身就不是一个面试难度。

书籍

  1. 剑指OFFER 名企面试官精讲典型编程题 第2版
  2. 机器学习-周志华
  3. 统计学习方法-李航
  4. 百面机器学习算法工程师带你去面试

工具

  1. 力扣
  2. 牛客
  3. XMind
  4. CSDN
  5. 脉脉
  6. 猎聘
  7. Boss直聘

结语

“天下没有免费的午餐”
我们很难知道一个模型是好是坏
我们也很难知道当前的境遇是好是坏
我们也同样很难知道做出的选择是好是坏

无论怎样,希望多年以后我们都能感谢一路跌跌撞撞却仍不懈努力的自己。

参考链接

  1. 面试经历记录~
  2. 机器学习主要知识点整理

你可能感兴趣的:(面经,算法,算法,面试)