大厂算法岗求职之路,双非+非科班有戏么?
大家都知道算法岗近几年是非常卷的,主要是 岗位数量趋少,再加上涌入的人太多。
很多非科班本科,读了研究生之后都首选 算法岗,毕竟算法岗“对编程能力要求不太高”,当然我这里打上了引号。
也正是因为竞争激烈,现在基本算法岗要求代码能力,要求顶会,要求项目,要求名校。
一位录友分享了自己,冲大厂算法岗的过程。
他是双非本硕+非科班,可以说非常不容易。
假设他当时问我要不要冲算法岗,可能我给的建议也是 转开发稳一些,毕竟我也是从大概率上给出建议。
但这位录友还是依然坚持自己的算法岗,最终拿到了offer。
这个过程很艰难,有幸运,更有努力,分享给大家:
------------------
年前拿了大厂补录offer,双非本硕+非科班面试算法岗,真的很难也很幸运,但还是有机会(经历无需效仿,经验可供参考)感谢与『代码随想录』的相遇,详细说一下从0到1的过程,一个求职小故事 ~ 算是对自己的总结吧!
背景(有点复杂)
双非一本院校就读,本科专业数学、金融专硕。
2020年考研失败调剂回本科院校。
2020年有过几个月的找工作经历,当时觉得自己考得不好,2月份开始复习一年没碰的python和机器学习,做了剑指,靠着几个建模比赛面试了华为数据岗(有点离谱,两年了,现在还是主管面未安排~),最后拿了银行的科技岗offer。
当时疫情,调剂复试推迟到了4月底,找工作同时面了复试。
依然记得我拿到入职体检报告的那天,学校老师打电话说:”我们这边多出了一个名额,给你30分钟考虑~”,后面选择读两年专硕。
研一做了本本分分的读书人,在国内期刊发表了一篇专业相关论文。
本来打算考雅思,2021年4月论文录用后才开始投递暑假实习简历……投的是机器学习算法岗,院校和专业,让我在找工作的路上举步维艰。
4月份开始,实习、秋招、补录,都没有想像中的那么顺利,也可能是我目标太高。
幸运的是,结果还不错,一切的坚持和努力都是值得的!
暑假实习之路
2021年玩了一个过年,当时没什么打算,到3月份入学,就业气氛让我开始迷茫,本来想考雅思进一步深造,可是后来考虑了很多因素,决定就业。
开始复习coding(之前有做过一点,剑指offer,会简单的coding。当时还没遇到卡哥)和机器学习基础知识(之前论文有用到)。
大概集中复习了四周,主要是剑指和《百面机器学习》、看了一些视频。投了10多家大厂+小厂(现在想想真的太少了,时间也太晚了),当时的简历十分简单,只有获奖和几个小项目,可想而知,最终好多石沉大海,笔试也很糟糕,但又不愿意去小厂实习,毕竟这份实习对秋招影响很大,最后就在等A厂给我的面试机会~

大概时间:2021-4-15 笔试,2021-5-8 一面,2021-5-27 二面,2021-6-7 hr面试,2021-6-23 收到二面面试官的消息~说后续……
然后就没有后续了。
也可能是其他没说出来的原因吧,当时收到这个消息也难过了几天。

第一次找实习最后在等这个offer,最终没能等到想要的结果。
系统的学习和准备秋招——缘起『代码随想录』
在实习面试失败后,刚好是暑假时间,那个时候没有找到实习,感觉自己秋招的压力会特别大,于是选择回家,系统的准备面试。第一次见到carl哥和代码随想录是在7月份,那个时候逛B站,看到了carl哥,依然记得那个时候看他在小楼梯讲动规5步曲。
之后” 顺藤摸瓜”,找到了『代码随想录』的公众号,下载了pdf (yyds)、加了微信群(群里的大佬真的赞,有一段时间整个群的氛围都是大家在讨论题解和遇到的题目,还有大佬贡献自己的模板,真的学习了不少东西,这个群几乎是每天都活跃)。

看完pdf后,豁然开朗,决定重新开始刷题(之前自己没有目标的刷题真的是不堪入目,都回忆不起自己都做过哪些)。
于是我按照代码随想录的目录来,一个一个专栏刷题,做过的也再做一次,卡哥推的”课后题”我也没落下,最后刷了240多道题,把目录跟完了。
我觉得理解题目之后,就是记忆了。我把自己做过的题放到jupyter notebook做成pdf,最后还打印出来(我感觉这是一种不错的方法,在代码随想录的基础上,形成自己的代码,每一个专栏都放在一起,到时复习也不用去翻leetcode,可以提高复习的效率)
打印出来后,我会把核心的代码标黄,重点复习(自己的笔记做的很花,可能只有自己看得懂)。


就好比滑动窗口,我会在纸上画出每一块代码的作用,记忆的时候,先将这些文字串起来,之后再回忆这些功能都是怎么实现,从整体到局部,写出整块代码。
其次善于总结代码的共同点,比如kmp算法实现strStr(),其实get Next数组的代码和main()的代码差别不大,可以一起理解和记忆,同时也可以归纳不同题的相同点,好比我从2Sum、3Sum、4Sum代码总结了nSum的模板,记一个可以解决这3个问题。
后来carl哥出了网站和书,作为铁粉我都跟了,经常关注题目的更新,偶尔和carl哥提出自己的一点小想法。
这大概是我用考研经验来刷题的一种方法吧,对我来说效率挺高的,后面我按照自己的pdf复习了两遍,后面一个多星期就能复习完这240多道题,而后不断的重复,就能记住很多套路了。
这是我coding的一个刷题经历,对我后面大有用处,代码随想录不仅给了我信心,还助我通过了coding考核。
这就是我刷题的一个过程,也伴随着我实习、秋招整个过程。

我把面经、知识点和coding全部打印出来反复看,反复看。
我的真正意义上的第一份实习和秋招offer
7月底,我开始投递秋招简历,那时候秋招提前批也已经开始了,面试了几家公司,后面也是了无音讯,那个时候,我连一个实习都没有。
我意识到自己的问题所在,我缺少实习。
于是我实习和秋招一起找,一起投,在9月份拿到了几家小公司的秋招offer,和两个实习offer,这都和我的前期准备分不开,但是我不甘心。
国庆后,我独自来到北京,开始在B厂实习。
实习这段时间,实习期间也学了很多东西,学会使用hadoop等大数据工具,也能在项目中复习知识点。
我的秋招也在继续,大厂小厂都有面试,各种情况都有发生,简历挂,初面挂,终面挂,过了没hc,捞了面,面了捞…还有好多在泡池子,还有现在还在面试中的……原因也不得而知,可能是我的背景问题吧!


这个过程真的很折磨人,毕业论文、实习工作、秋招面试三重压力,早起晚睡是免不了的,面经一遍一遍的刷,题目一遍一遍的打。
但是,整个过程中,我的笔试都能完成1/2以上(虽然不是很好,但是有不少面试机会了)、手撕通过率也很高的(记得有一次面试做了3道,但都是做过类似的)。
这都要感谢代码随想录的加成,对面试的信心很有帮助,感谢B站的那次和carl哥邂逅哈哈。
但是,这段时间我还是没能拿到满意的offer。

秋招补录
我知道我之前错过了很多机会,所以现在每个机会我都要抓住,补录也一样,我已经做好实习转正面试和春招的准备,但是补录我也要抓住机会,补录的过程也很中规中矩。
于是在12月中旬开始,投了10+个大厂的补录,最终面了3个大厂,只有一个拿到了offer,算是比较满意的,总算可以休息一下了。
在收到这封信的时候,百感交集,真的不容易,一页一页的面经,见证了这整个过程。
总结
整体来看,我的每一步都很慢才开始,这是一个教训。总结了几点:
1. 机会不会自己来找你。
你得事先做好准备,什么时候该干什么自己要清楚。
如果想秋招顺利,那么暑假以及暑假前最后就要有实习,如果想有实习,那么你在年后就要好好刷题和准备面经了。
2. 辩证看待别人的说辞。
前面说到,在群里确实能够获得很多大佬的帮助,但也有些人不是很正能量(在群里加了一个找同样岗位的人,本来想交流一下面经,对方了解我背景后左一句你非科班卷什么算法,右一句双非找这个干嘛……,后来我删了他)。
我不否认双非、非科班真的很难找这份工作,没必要"卷进来",可我就喜欢这个,有些人只会给你类似这些没用的言语。
而他们并不提供任何经验、方法,就好比之前有人就说,学数学的将来你除了做老师什么都干不了了,这些都有个前提,那就是”同等条件下”,那么我们可以准备多一点来超越这个同等条件。
辩证对待别人的观点和言论,同时,如果给不了别人的方法和有效的建议,就不要直接否定别人的观点。
换做是我,我会给别人介绍难度低一点的岗位,让他多做尝试,等拿到容易获得的东西之后,再冲刺。
3. 学东西。
准备东西到最后,无非是要面试,我们不可能面试的时候拿着厚厚的一本书,那么在准备的时候,就要学会一遍一遍的浓缩知识,浓缩记忆点,在保证理解的基础上,不断提取关键知识。
到最后,就是一遍一遍的重复了。不断重复,真的会有意想不到的东西。
发一下自己的经历,希望能给要春招、秋招、跳槽的同学点鼓励,相信相信的力量。
最后,感谢代码随想录一整个过程的帮助,谢谢卡哥的付出!
------------------------
在知识星球里,这篇找工作总结很火,很多录友来留言提问,他也都认真回答。
好多评论都很长,感觉对大家还是有很大的参考意义,我就直接粘过来:
------------------------
星球录友提问:
老哥,我看你走的是算法岗,还是关于机器学习方面的,感觉是不是还要对自己研究生期间负责的方向有比较深的理解才行啊?不知道要不要论文什么的。。因为我本身也是做的机器学习相关的,但是说实话我本身对于这方面并不是多感冒,我怕到时候面试他会问你神经网络啊,rnn,lstm这种各种机器学习方法之类的
回答:
嗯,我的回答希望能帮到你。我对自己的研究方向(金融相关)也不算很深理解,我发的论文是神经网络解金融问题。面试了20+次bat面试,机器学习的面试神经网络是少不了的,面试官会问你更偏向哪个方向(nlp ,cv等)。
然后提问,不会再局限于传统机器学习,但区别于nlp这些岗位是不会很深到最新的model如erine3(简历写了除外)。
像我写了bert,提问的知识点会从rnn如何优化,到lstm,seq2seq,attention,transfromer的细节(如,attention为什么要正余弦位置编码。
后面百度知道周期性可以大概解释),这些也是一面一面过后积累下来的,网上也有他们的对比,这些可以做深入了解,形成自己的理解,像有一次提问了cbow和skip-gram的区别。
在介绍结构和区别后,我会补上:我形象的理解为,多个老师教一个学生和一个老师辅导多个学生的关系。传统的机器学习xgboost,svm,rf比较热门,各种算法原理和对比都要准备、理解,他们的出现不是没有道理没有联系的,如果能形成知识网络,那就差不多了。
神经网络,不是很复杂的东西,确实需要深入些,用深度学习的水平准备机器学习的岗位。个人见解,希望对你有帮助!
-----------------------
星球录友提问:
cv工程师和nlp工程师和你的算法岗要求差不多嘛
回答:
要求比我这个高(门槛,学历要高,有些要发过相关领域论文,了解的知识点也要求深),他们工作有些做算法研究。我偏业务,没有积累很多nlp前沿的算法。
他们那些面试会问比较深的细节,之前面过A的nlp(被捞),有些模型没见过,crf也是面了之后才补充,只不过我做的项目有点像nlp。总结就是,相对比较专业。
--------------------------
还有很多评论,我直接上截图吧:

网址:programmercarl.com,200道力扣题目刷题顺序,详细题解,支持C++、Java、Python、Go、JS等多语言版本,一个你只要发现,就会收藏的硬核算法学习网站。
觉得不错的话,还请小伙伴 点赞 支持下,希望能帮助到更多同学 ❤️