前言

hello大家好,我本次分享的主题是计算机专业校招想去互联网公司担任算法工程师该怎么准备,例如笔试和面试需要准备写什么,实习,项目以及论文中会问些什么问题。我将结合自己以及身边小伙伴们的秋招经历来进行简要的分享。当然这个视频仅仅是自己的一些看法,如果有什么问题的话欢迎大家指出,如果你对这个话题比较感兴趣的话,就看下去吧!

岗位投递

其实算法岗前几年也非常之卷,一方面是由于算法岗的薪资水平较开发要高,毕竟大部分计算机方向的从业者都会选择“向钱看”,另一方面是由于算法岗招聘的岗位较少。不过去年秋招来看稍微好些了,一方面是开发岗的工资有所上调,另一方面很多小伙伴们发现算法岗的需求量太少了,卷不动了,就选择算法转开发了。我个人认为算法工程师的就业门槛相对高些,如果想去大厂的话,最好是有相关的实习,论文,项目或者参加过相关的竞赛,因为算法岗既需要相关的算法知识,同时也需要工程能力。算法岗的方向大体可以分为计算机视觉,自然语言处理,搜索算法以及推荐算法。其中计算机视觉,也就是cv,主要做图像,视频相关的,自然语言处理,也就是nlp,主要做文本,语音相关的,搜索算法的话主要负责一些APP的搜索业务,推荐算法主要是为用户推荐一些可能喜欢的内容,目前cv的话发展的更为成熟一些,也有许多落地的产品,比如说人脸识别,无人驾驶等,同时招聘的岗位是最多的,自然语言处理的话是非常具有挑战性的,这个领域还有好多的问题没有解决,同时涉及到的业务也相对少一些。

笔试准备

算法工程师大部分的笔试内容是和开发工程师重合的,不同的是可能会涉及到一些机器学习、深度学习以及对应方向的基础知识,例如cv或者nlp相关。

面试准备

面试的话主要分为算法题,实习,项目,竞赛,论文以及基础知识,当然我这里所指的项目,竞赛以及论文都是和算法本身相关的,比如说cv或者nlp等相关领域的。其中算法题的重要性不言而喻,如果是非科班的小伙伴对于刷题还存在一些疑问的话可以看我“计算机就业-后端开发工程师”那个视频的最后一部分,在这里还想补充的一点是如果实在没有时间刷很多题的话,可以先做《剑指offer》中的题目,leetcode上是有相关的题集的。关于项目或者论文的话,一定要是自己亲自参与或者是做过贡献的,里面所包含的基础知识是准备的重点,就比如说你的论文是使用深度学习来进行图像分割的,那么论文最大的创新点是什么,网络是如何搭建的,损失函数是如何设计的,为什么要这么设计,以及分割常用的网络框架有哪些等知识点都需要再回复习一下,竞赛也是同样的道理,关于实习的话,可以回顾回顾当时主要做了哪些工作,最大的收获是什么,遇到的最大的技术难点是什么,怎么解决的,这些问题都是面试过程中经常问到的,同时在项目中也经常会问到这类问题,关于这一类问题,大家可以看我上一个视频,很多内容都有涉及到。关于基础知识的话,主要包含机器学习、深度学习以及对应方向的基础知识,如cv或者nlp相关。

这里还有四个小tips分享给大家:

1)第一点是我认为面试官主要分为两种,第一种是上来就问你各种基础知识,比如说开发的问八股文相关,算法的问机器学习,深度学习相关,第二种是结合你的项目,论文以及实习经历来进行考察,而这种是最常见的,所以我们一定要对我们简历上的内容及其涉及到的相关知识非常的熟悉,因为面试也就半个小时到一个小时,如果你的简历上有足够的东西可以探讨,对于其它基础知识的考察就会少一些,这样对于我们面试准备也是最有利的。

2)第二点是算法岗的话其实可以分为研究型和工程型,研究型的话主要还是以发论文为导向,一般都是非常优秀的硕士生以及博士生来做的,比如说微软亚洲研究院(msra)里面的一些岗位,这一类岗位需求量非常少,工程型的话主要还是负责算法的优化以及落地,所以我这里以及后续视频中会提到的算法工程师默认都是指工程类的。但是无论是哪种算法岗的话都是需要多看论文的,需要紧跟最新的的研究进展。

3)第三点是近期互联网公司裁员严重,也给我们这些程序员们敲响了警钟,一方面我们不应该盲目的追求互联网公司的高薪,而是要结合自己的实际情况进行职业选择,另一方面也告诉我们在工作的过程中也需要注重自己综合能力的提高,不管是对于现在的工作还是后续的跳槽都是十分必要的。

4)第四点就是大家在看一些别人公开的技术路线的时候,一定不要照搬照抄,因为每个人的学习能力、理解能力都是不同的,在发现自己学的比较费劲或者不太适合的时候一定要及时进行调整。任何的经验分享都不具有普适性,大家一定要结合自己的实际情况进行参考。

后记

如果你也是一名热爱编程的程序媛,就关注我吧。我将会分享身边不同专业、不同工作岗位的小伙伴们的相关专业选择以及求职经验,希望能给你人生中一些重要的决定,一些启发~

(微信号:我是一名程序媛,b站号(视频版):我是一名程序媛)