干货 | 算法岗如何针对性的准备校招面试

网友投稿 1085 2022-10-14

干货 | 算法岗如何针对性的准备校招面试

干货 | 算法岗如何针对性的准备校招面试

重磅干货,第一时间送达

作者:Cony_Brocco编辑:AI算法与图像处理

这是一期干货满满的分享,在作者的同意下,分享给大家希望能帮到大家,觉得有用的话可以去b站给小姐姐三连哈,当然帮我分享一下文章也是非常感谢的。

链接:​​| 算法岗实习这么难找 ! 如何通过自己的努力拿下字节跳动和阿里巴巴的实习​​

今天想继续和大家聊一下,如何拿到互联网大厂技术岗,尤其是算法岗的offer,这期拿到互联网算法岗大厂算法offer的第二部分,也是最重要的部分,那就是如何准备算法岗的校招面试。

我会先介绍一下算法岗校招面试的基本流程和主要内容,再分别针对于手撕代码、算法基础知识、项目实习经历、场景题与面经利用四个部分来讲讲如何系统地准备校招面试。

校招面试的基本流程

就像大学我们准备期末考试,知道考试要考什么,才能有针对性地进行复习。面试也是一样,我们要先知道校招面试的基本流程,面试都会问些什么,面试官想考察我们哪些方面的能力,才能更有针对性地进行准备。那以我的经验,校招算法岗的面试流程一般是这样子的。无论是远程面试还是现场面试,首先面试官会让你进行一个简单的自我介绍,时长大概在一分钟之内。接下来,现在比较流行的做法是,面试官递给你几张A4纸和一只笔,然后对你说“那我们先来做几道题吧”,这也是面试的第一关,手撕代码环节,主要考察你对数据结构和一般算法的掌握,以及作为码农最基本的编程能力。二至三道编程题写完之后,就进入到了面试的第二关,算法基础知识考察环节,这里的算法指的是机器学习、深度学习以及细分方向上,比如CV、NLP相关的算法知识。在这一环节,比较硬核的面试官会直接说“那我问你几个基本的算法问题哈”,比较善良的面试官可能会说“你能给我介绍一种你最熟悉的机器学习算法吗?”或者“欸,我看你项目里用到了xgboost,能给我讲讲xgboost的原理吗?”在这一环节,最可怕的可能就是要在纸上手撕一些公式了,常见的比如写一些优化目标损失函数啦,一些基本算法的推导过程等等。面试的第三关就要开始介绍你最突出的一个项目、论文或实习经历了,面试官会根据你的叙述内容有针对性地进行发问。有些面试可能会有第四关,就是面试官会给你描述一个实际业务场景,你需要面向这个实际问题设计一套解决方案,包括说出需要用什么样的框架或模型,输入和输出分别是什么,数据集怎么构建,如何确定优化目标等等。在这些都结束之后,这次面试也基本接近尾声了。这个时候一般面试官会问,“你还有什么要问我的问题吗?”,这个时候,你这场面试的点睛之笔就要来了,我会在下一期详细讲讲应该怎么样向面试官提问。下面,我就分别针对面试流程中的每一个环节,来讲一讲我之前是怎样去准备算法岗校招面试的

首先对于手撕代码环节,没有什么捷径,众所周知就是刷题啦。我是从研二上学期,自从有了找实习的想法之后,就开始有意识地在leetcode上面刷题了。前期时间不是很紧张的时候,我是平均每天刷一两道的样子,说实话,刚开始刷的时候我会觉得上面即便是easy级别的题对于我来说也是蛮困难的,所以我第一遍刷的时候,遇到感觉没思路的题,我就直接去网上搜题解来看,因为我没有参加过ACM的训练,当时本科的数据结构和算法课也是很久远的事情了,所以有些算法如果你不知道的话,想也是想不出来的,反而很浪费时间。我看完题解之后不会完全照着别人ac的代码抄一遍,我会记住解题的思路,或者哪怕把自己原来不会的一些写法背下来,然后再自己独立地敲一遍,直到ac为止。一道题通过之后,我不会马上接着开始下一题,我会把我自己对这道题的理解和解题的方法,用简单的语言描述下来,整理到我的笔记上,并且按照题目的类型,比如链表、数组等进行分类。所以我基本上刷每一道题都是这样一个三步走的过程:就是先看题解,然后自己敲一遍a掉,最后整理解题笔记。我所有的笔记都是网易云笔记这个软件来记的,它在手机上也可以同步,所以后来我每次面试,在去的路上坐地铁的时候,就可以直接看这些解题笔记来复习一下,非常的方便。我前期大概花了六个月的时间一共在leetcode上面刷了200多道题,大部分是easy和medium难度的,其实我觉得medium以下对于面试已经足够了。在后期临近秋招开始的时候,我就没有再刷leetcode了,有一本书叫做剑指offer,应该算是人手一本吧,其实书的话也没必要去买,因为它上面全部的题在牛客网上都可以在线提交,而且很多笔试也都是用牛客网的环境,所以直接在线刷题就可以。剑指offer一共只有60多道题,而且难度都不是很大,覆盖的知识点也比较全面。所以我的建议是,如果你之前没有系统地刷过leetcode,时间又比较紧迫,可以直接从剑指offer开始,每天刷六七道题是没有问题的,这样十天左右可以刷完第一遍,再用三天的时间快速过一下第二遍,两周的时间就可以达到一个能够去参加笔面试的程度。当然刷题永无止境嘛,如果你想更熟练的话肯定是多多益善了。对于第二关,算法基础知识考查环节,我们当然就需要对基本的机器学习、深度学习知识进行全面的复习。还记得所有入坑算法的同学,桌子上都会摆着三本书,一本是周志华老师的机器学习,俗称西瓜书;一本是李航老师的统计学习方法,俗称蓝皮书;还有一本是三位业界巨佬的deep learning,俗称小花书。但是非常惭愧,这三本书我一本都没有读完。我唯一一本从头读到尾,并且在我秋招阶段一直在看的书,是这本叫做,百面机器学习——算法工程师带你去面试,现在大家好像喜欢叫它葫芦书。因为它是由Hulu公司的算法团队编写的,内容基本上覆盖了算法工程师需要的一切基础知识,像一些常见的机器学习算法,还有包括一些比较新的深度学习模型其中都有涉及到。关于这本书,我喜欢它的原因是,因为它的出发点就是面试导向的,所以它里面每一小节的标题就是一个面试中有可能会问到的问题,比如像“什么是ROC曲线?”、“能否说出几种降低过拟合和欠拟合风险的方法”、还有“神经网络训练时是否可以将参数全部初始化为0”等等。所以你看书的过程中会始终带着问题,非常地有目的性,还能帮你把这些零散的知识点全部串起来,形成一个完整的知识体系。还有就是,这本书是彩印的,里面有很多图,还有很多方法对比的表格,看上去一目了然,非常清晰。我觉得我以后每次面试之前应该都会拿出这本书来复习一遍。对于算法基础知识的考察,还有一个特别让人头疼的问题就是在白纸上手推公式了,对我这种数学基础一般的人来说,这一关就真的还挺难的,因为有些公式,光是做到看懂它、理解它我就要花上很长的时间,好不容易看明白了,要是让我自己推的话,我还是写不出来。后来对于推公式,我的方法非常简单粗暴,就是智商不够,记忆力来凑,既然我自己推不出来,那我背下来总行了吧。其实想想,有可推公式空间的算法,无非就是像逻辑回归、SVM、神经网络反向传播等等,加起来可能都不到十种。所以我第一步做的是把所有可能会需要推公式的算法列出来。第二步,对每个算法,我就去网上搜索“XX公式推导”,然后找一篇你认为写的最清楚,你完全能够看明白的推导过程,按照你自己的理解,在纸上抄下来。接下来,这几张纸就变成了课本一样的存在,我用上了我高考的时候背古诗的方法,每天把纸上的公式推导过程默写一遍。说到这里你可能会怀疑,这样做会不会只知其然而不知其所以然,会不会面试官再追问一下细节,就不知道如何回答了。对于这种情况,我觉得是存在一定的概率,但是有句古话,叫做书读百遍其义自见,其实在你背的过程中,会不知不觉加深对这些公式的理解,而且会帮助你克服你对于大量公式的恐惧心理,当你对它们已经熟悉了之后,再回过头去看西瓜书、蓝皮书,就会觉得理解起来也变得更容易了。关于项目、论文或是实习经历,很多同学可能认为毕竟是自己亲身做过的,对于每个细节都了如指掌,所以就不需要准备了。我觉得这种想法是非常危险的。因为有时候,你自己能做好一个项目,并不代表你能够跟别人讲好这个项目。如果你叙述的过程不够清晰不够有条理,那听得人可能就会一头雾水,完全不知道你做了什么,做这个项目有什么意义。所以我觉得,一定要留出一部分时间,专门用来认真梳理你做过的项目。一定要思考清楚,你做这件事情的背景和动机是什么,核心是要解决什么问题,为此你提出了怎样的解决方案,你设计或者用到了什么样的算法模型,到底为什么要采用这种方法而不是其他方法,是如何验证方案的有效性的,是否有考虑方法性能上的问题,你的项目目前是什么状态,有没有在实际业务中上线,论文有没有发表,如果应用的话可以推广到哪些场景,是否还有进一步的优化方向等等。除此之外,对于你项目中所涉及到的任何一个基本算法,都要百分之百清楚它的原理。如果你觉得复习时间不够用的话,其他算法都可以忽略掉,但是掌握你项目中用到的模型和算法,这个优先级一定是最高的。最后对于一些业务场景题,可能比较依赖于个人的基本素质,项目经验丰富的同学可能会比较有优势,准备起来也没有什么特别有效的技巧。我只能提供一个小小的思路,就是充分利用好前辈们的面经。我看面经经常用到的网站有:一亩三分地、牛客网和知乎。尤其是一亩三分地,它本来是留学生常用的一个论坛,但它的国内求职版块里面面经质量还是很高的。我秋招的过程中,一直在关注同学们发的面经。一方面我会收集一些场景题、智力题;另一方面,我会把面经看成是一个查缺补漏的工具,每看到一个问题我会想一下如果是我的话我要怎么回答,以及这个问题是否在我目前复习内容的射程范围之内,如果没有的话,那就说明有某一块的知识点我可能还没有覆盖到,就赶紧去补上。而且面经看多了你还会发现,好像有几个问题面试官都特别喜欢问,所以在这些问题上就要多花一些心思。因为我始终觉得面试问题的难度也是一个正态分布嘛,太简单和太困难的问题本来碰上的概率就很小,那我们能做的就是把期望附近的知识点都掌握扎实,如果真的有被问到特别冷门的问题,而且因为你没答上来就把你挂掉的话,那这个面试官招人真的有诚意吗,这样的公司我觉得不去也罢。

下期内容预告

那这期的全部内容就到这里啦。下一期的视频我会和大家分享如何出色地完成一场算法岗校招面试。包括如何进行简短的自我介绍、手撕代码的过程中要注意哪些问题、如何有逻辑地介绍你的实习和项目经历,如何主导这场面试,如何通过向面试官提问来提升你的好感度等等,如果大家对接下来的内容感兴趣,请关注我,外加一键三连,谢谢大家,那我们下期再见吧~

谢谢你看到这里! -?

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一个有趣的案例 | 页面扭曲矫正
下一篇:编程学习网站总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~