我几乎面了所有知名公司的算法岗位(CV方向)

TinyMind 2019-06-20 11:41
关注文章

大家好,我是非计算机科班的一个应届毕业生。因为本身研究方向的关系,就选了CV这个岗,一路跌跌撞撞,最后也收货了几个不错的offer。额,自身的基本情况的话,无大赛经历,科研项目紧所以找的实习也没敢去。基本上就是实验室的项目+论文,从研二下开始准备微积分、线代、概率论、机器学习、图像处理和深度学习,还有算法和数据结构的东西(这个岗要求比较多。。)谁知道今年的算法神仙打架,加上自身贪玩没努力,后边才开始做准备。于是,在各路上仙大显神通知识,开始各种陪跑。没大赛经历没实习的我找算法岗,真是看各路神仙打架,我只有在旁边鼓掌的份。

虽然没有什么各种大厂拿到手软,SP和SSP一堆随便挑,也拿到了几个满意的offer,因为自己的经历确实也不是很突出,没有多华丽,能力也一般般,总之挺开心的。这里也不在大神面前班门弄斧了,就把自己的一些秋招的经验和经历分享一下,希望对大家有帮助。嗯嗯,想找算法这块的工作的话,研二最好找个实习或者和朋友一起多参加一些比赛,但主要还是看个人能力。另外就是,有论文的一般会问论文的东西,包括论文里方法的细节以及相关的知识点。没有论文的,基本就是抠项目或者实习经历了。所以,不管怎么样,一定要把自己做过的东西,梳理一遍,从前到后理清楚。一般有以下这样的流程:项目背景(为什么要做这个项目)——项目目标(要实现什么功能)——项目用到的方法(这个地方一般抠的很细,会延伸出来很多知识点,还会同其他方法比较)——项目的难点(自己如何解决的,也就是创新的地方)。所以,项目和经历是重中之重。此外的话,牢固的基础也是必不可少的。算法这块主要涉及到:微积分、线性代数、概率论、最优化方法、C++这块的算法和数据结构、机器学习、深度学习。微积分、线代和概率论这块的话,就本科的知识熟练掌握就可以了;C++的话,多刷题(LeetCode、牛客),多看书(算法导论啊、Effective C++等等),看一些经典的C++面试题,还有面试的手撕代码(剑指offer);机器学习的话,推荐西瓜书和《统计学习方法》;深度学习,推荐《花书》等等。除此之外,还要感谢SIGAI这个平台的课程,在我准备秋招期间,SIGAI的课程给了我很大的帮助,主要是基础巩固这块。我跟随课程学习复习了微积分、线代和概率论的基础知识,还学习了最优化方法这块的知识。除此之外,跟随课程学习和推导了机器学习各种方法的原理,掌握了各种神经网络的原理和使用,也让我对这些方法的了解更加深刻。除此之外,课程老师的答疑和一对一的指导,也能给我解疑答惑,带来很多帮助。总之,算法之路不容易,但只要做好准备,充实自己的能力,就可以从容应对,马到成功。最后,谢谢大家的聆听,感谢努力的自己和帮助过我的人们,付出就会有回报,努力就一定会成功。

哈哈哈,不说了,我要继续加油。大家也要继续加油,不到最后,不要放弃当初选择的路。勿忘初心,方得本心~也祝之后找工作的大家都可以收获自己满意的offer!以下是我的一些秋招的经历:


(7.27)阿里(CV算法工程师)一面:接到阿里国际部的算法面试的,小哥说他是阿里国际部的算法工程师,随后远程共享桌面手撕代码。第一个是英文句子(This is a dog\0)的翻转,单词顺序反一下,单词不变,说这个考速度的。写之,通过~第二个题目是英文题目,面试官让我先把题目意思说给他听,说之。一个N*N的棋盘,一个马在(r,c)的位置,r代表row,c代表column。马按照走“日”字的方式走,每一步走任一种“日”字的概率相同。走完K步或者走出棋盘停止。k步之后,马在棋盘上的概率有多大。限时三十分钟。我选了map做,面试官看了说,你的思路没问题,就是复杂了点儿,可以用队列。我说,没想太多。

然后开始询问项目,问的很细。挑一个你最满意的项目说。项目中你的思路,你用过哪些方法,为什么选这个方法。问完之后问一些机器学习的知识,常见的有监督无监督学习方法,过拟合概念,表现,解决方法。选一个你最了解的分类模型,说原理,优缺点,具体实现过程。

随后,是一些开放性的问题。1.如何训练一个“评判图像清晰度的模型”。2.如何做文本检测。3.让你做淘宝的下拉搜索推荐,你如何做?(推荐系统我是外行,就站在一个用户的角度上说了说)。面试官问推荐系统了解么,协同过滤了解么。答:不了解。面试官说好的。最后,面试官问你有什么想问的么?意识到自己很菜,所以也没想二面的事儿。不过确实学到了很多,很有收获。

百度(CV算法工程师)一面:8.9晚上7点准时收到了面试小哥的电话,首先是自我介绍,然后半个小时的项目,细节问的很足,具体怎么实现,用什么方法,为什么用这个方法,达到什么效果。之后是机器学习,L1 L2正则化特点和原理,一些经典的卷积网络,bp传播,1×1卷积核的作用,残差网络的特点。算法题,一维数组,代表股票价格,求极大值,输出一个极大值即可。你有什么想要问我们的么?然后说到“嗯嗯,看起来你基础还不错,后续留意下北京的电话,会有后续的面试”。emmmm,然后我留意了一个月,没有然后了哈哈哈


(8.8杭州)银联一面(群面):5分钟阅读材料(金融风险排序和提3点建议),1分钟自我介绍+材料总结,20分钟无领导小组讨论(声音足够清楚),3分钟派代表总结

银联二面(技术面和HR面一起):问最近做的项目,研究生期间最满意的项目,针对项目细节询问。(面试官问你的作品集网址怎么打不开,让以后把作品集带着,做好面试准备)。以后的职业规划和个人工作意愿。个人基本情况。对工作地点,加班什么看法?如果有BAT给你offer了,你还会选银联么?你更倾向于算法研究还是落地实施?你有什么问题么?

银联三面(电话面加面):主要是项目细节和实现。然后问机器学习的贝叶斯和svm,之后是深度学习的一点基础知识和几个python函数。。还有,你有什么想问的么?啥时候能毕业?能来公司实习不?


(8.8)vivo(视频图像算法工程师)视频一面:自我介绍,项目。细节,达到的效果。

全景照片的畸变校正,surf特征提取原理,canny算子原理。svm,朴素贝叶斯,原理,核函数。你有什么想问的问题么?

90%的问题都答上来了,然后过几天官网一看,已处理。


Face++(CV算法工程师)一面:主要问项目,具体到细节的每一个点。一个算法题,求一个正整数N的所有约数,用O(N)的方法。你有什么问题么?

Face++二面:主要问项目,一个算法题,如何判断一个链表内是否有环?(两个指针,一前一后,一快一慢),你有什么问题么?等HR消息就行。

然后,,呃呃,就没有消息了。。。


(9.4)虹软(CV算法工程师)一面:之前线上笔试通过然后去的现场。一面面试官做人脸检测的,而我检测这块,做的比较浅,简单聊了项目,面试官表现出不耐烦的样子,早早结束。尴尬。。。

虹软二面:因为大老远赶过去的缘故,出于礼貌,让我面了二面。二面的面试官是做追踪的,问了问相关的知识。主要是提取特征这块,还有特征匹配这块。(Haar,LBP,HOG,ORB特征,Sift和Surf特征)如何提取(详细到具体每一步,让你画出来),surf特征描述子怎么提取出来的(描述每一步),如何匹配的(怎么计算距离的,用的什么距离,出现错误匹配怎么办,怎么通过特征确定是否匹配),读过哪些OpenCV的源码,看过哪些论文?不得不说,要求还是挺高的。


(9.8)依图(CV算法工程师)一面:先是简单的自我介绍,加项目细节,然后手撕代码。是一个排好序的数组,找某个数(简单地二分查找);然后加了查找代价的二分查找。最后是一个概率题(一个虫子,一个周期内,死掉的概率是1/3,活下去并且繁殖两个后代的概率是2/3,求这种虫子不会灭绝的概率)。你有什么问题问我的么?


依图二面:自我介绍+项目细节,都问的很细。然后手撕代码:第一个是,求某一个数n是否整除具有m个1的十进制整数(写之);第二个是,求一个数组里第k大的数字(剑指offer原图,写之)。你有什么问题么?


依图三面(总监面):项目细节,问的很细很细,包括为什么用这个方法,还有没有更好的方法。然后问了问深度学习方面的知识,而后出了一个逻辑题:登机口有100个乘客站成一列,第一个乘客忘记了自己的座位号,后边的99个都记得。第一个乘客登机之后,会随便坐一个座位。接下来的乘客,如果自己的座位被占了,也随便找一个;没有被占,则坐自己的位置,求最后一个人坐在自己位子上的概率。


(9.7)网易互娱一面(因为自己喜欢游戏,所以还投了网易互娱的游戏测开):远程视频面试,先是问项目,然后问学生工作,之后远程手撕代码:一个排好序的有重复数字的数组,统计重复的次数并去重,写之。而后一道智力题:一根金条,你只能切两次,你每天给工人给1/7块金条的工费,一共给7天,如何切?最后问了一些算法和数据结构的基础(像DP和贪心问的多一些,STL用过哪些,区别?)常用的排序算法以及时间复杂度等等。你做过最有成就感的事


(9.11)网易互娱二面(现场面):主要是游戏理解。对于玩过的游戏,讲自己的理解,如何去优化,去平衡。讨论游戏可玩性和趣味性。挑一款游戏仔细探讨,你有什么问题么?


(9.11)网易互娱(HR面):不得不说,网易的伙食确实不错,吃了午饭,下午两点去面的HR面。先是问项目,然后问最有成就感的事情,之后又问了算法和数据结构,当然是基础。然后问了点儿Python的知识,说看你的项目有机器学习方面的经历,谈谈机器学习和游戏吧,聊之。最后一道逻辑题,爸爸妈妈儿子女儿管家狗过河的问题。当时想了好一会儿,还有两步想错了。下来百度搜了一下,恍然大悟,自己有些蠢。期望薪资和工作地,什么时候可以来实习?


(9.13)多益(AI及大数据):简单的自我介绍,项目。问了一些机器学习的基础(LR和线性回归的区别,LR和SVM的区别,SVM原理,SVM为什么可以处理非线性问题,多分类怎么解决?什么是过拟合?怎么解决?L1 L2正则化区别,效果?决策树的分裂,剪枝),然后是深度学习的基础(卷积和池化,感受野,过拟合的解决方法,BN了解么?怎么做,为什么?目标检测方法了解哪些?)最后是个大数据的问题,好像是100W个IP吧,找重复次数最多的几个。你有什么想问我的么?


(9.15)贝壳(CV算法工程师)一面:简单的自我介绍,项目深挖。主要是问了几个机器学习的方法(像LR,SVM之类的),和项目中用到的CNN及卷积池化softmax等基本操作。然后问C++基础,虚函数,构造函数,析构函数,虚函数表和多态。写了一段程序让找问题;而后是关于重载和覆盖的函数实现。最后手撕代码:一组数字,入栈,如何可以做到O(1)时间复杂度求Max?包括Push和Pop之后同样成立(用辅助栈存最大值的索引)。当时思路出错没写好。你有什么想问我的么?

贝壳二面:项目深挖。然后问了一些关于图像渲染和三维重建的基础(我虽然是做三维显示的,但三维视觉这块,了解的不多,以后还得好好学习)。然后问了深度学习用于检测的一些网络的知识,最后手撕代码:leetcode.com/problems/t

当时是在面试官的提示下想出思路的,最后下来发现是LeetCode原题。最后和面试官讨论了下三维视觉的相关业务方向。你有什么问题么?

HR面:主要就是聊面试体验,面试感受,聊人生,聊项目。聊自己对公司的认识,主要是对公司的定位、业务、发展各方面的探讨。聊的十分愉快。

不得不说,贝壳的面试体验是真的好:各种通知十分到位,现场各种设施齐全,吃喝零食都有,面试过程十分规范,面试官的问题也十分专业,是一次很不错的面试体验,但愿有好的结果。


(7.30)华为(CV算法工程师):

因为实习生面试通过,所以面了终面和HR面

终面:主要聊项目,问各种细节,针对简历上你写的东西问。然后就聊了聊他们部门的业务方向和发展,就没有了。。。

HR面:聊了项目和人生,问了意愿部门和工作地。你有什么想问我的么?


(9.17)搜狗(CV算法工程师):

之前笔试行程冲突没做,然后打电话去酒店面试,故去之。


老规矩,项目深挖(我一般会自己带几个小demo),所以项目这块解释地比较清楚。面试官主要对项目中的系统框架和具体用的算法问了下细节。然后问了问相关的原理。之后是深度学习CNN的一些基础,而后问有关图像处理的东西。最后让我手写了中值滤波的代码实现。然后说之后给消息。


(10.10)vivo(图像算法工程师-图像加速)

说是新成立的一个部门,专门培养新人,所以组织了校招。主要问的就是项目,以及项目中的一些图像优化、图像加速的方法。还有一些OpenGL、并行、多线程等等的知识。


(9.21)寒武纪(算法工程师)一面:

当时是中秋节前一天,晚上还和朋友在玩桌游,突然来了电话,就出去面试了。主要是问项目,然后是机器学习和深度学习的基础。(有点儿久远,记不清了)大概是LR、SVM和我用到的AdaBoost,深度学习主要问了卷积神经网络,各个层的作用,一些常用的激活函数,池化卷积操作的作用,以及1*1卷积核。最后说了他们部门在做的东西,你有什么想问我的么?


(10.10)寒武纪二面:

分到的是架构部的算法面试官,深挖项目,然后问了问实验室的一些情况,说挺不错的,后续联系。


(10.12)商汤(CV算法工程师)

远程视频面,手撕代码:计算一个数的立方根。在面试官的补充下,写了出来,主要还是自己考虑的不够全面。然后就是了解了项目的一些情况,深挖了一下细节。主要是为什么这样做,用其他方法不行么,优势在哪里。最后根据我的经历问了问图像优化这块的知识,主要还是多线程和图像加速。。。但无奈自己能力一般,遂跪之。


(10.18-10.19)腾讯(算法)

去公司面试的,首先面试前有笔试,一页纸,数学题,多线程,链表以及两道手撕代码。做完之后会开始一面,一面主要了解下项目,然后根据你之前笔试的情况问一问C++的知识和了解下项目,然后一个开放场景的题。

二面主要就是深挖项目细节,问一些机器学习和深度学习的知识。比如:评价指标、决策树和Boost类方法、各种分类器,SVM等等。因为项目涉及到人脸检测这块,又问了一些经典的网络和自己搭建网络的一些情况,以及一些调参的技巧。最后开放场景题:门口的人脸系统,你如何设计,考虑哪些因素,后期如何评价。你有什么想问我的么?

三面是部门leader面,主要是了解项目,然后让你说说项目中的难点和有挑战的地方,然后说说自己是怎么解决的,然后跟你聊一下部门的业务这样。

HR面就不说了,都差不多这样。

谢谢大家~


转自知乎SIGAI文章:https://zhuanlan.zhihu.com/p/55698399

{{panelTitle}}
支持Markdown和数学公式,公式格式:\\(...\\)或\\[...\\]

还没有内容

关注微信公众号