本文正在参与【 面霸养成记  】 征文活动,一起来聊聊校招的那些事吧,牛客周边和百元京东卡等你来领~                  0 导读          这是我之前写在公众号里的一篇文章,在此分享到牛客上,一来是希望能和牛客上的朋友们一起交流学习CV算法以及相应的知识,也欢迎大家关注我的公众号WeThinkIn。[比心]           1 写在前面           姜文先生在全球维度都是我非常喜欢的一个导演,他的“民国三部曲”我百看不厌,我和朋友经常会在大庭广众之下互飙台词以示致敬。嚯,巧了,我这篇文章刚好也是「2022年,校招计算机视觉算法岗」系列的第三篇,我亦想将其作为这个系列的结尾章。如果接下来还能再拓展这个系列的更多维度,我将以番外等其他企画的形式呈现。          接下来,讲讲本文的核心。           首先,本文所有的思考都是以我自己实习/秋招过程将近60次的面试经历和研究生阶段掌握的相关信息为基础。          再者,本文主要聚焦业务与工程方向CV算法岗的面试逻辑。          so,enjoy:          2 干货篇           一定要多参加面试!不要错过任何一次面试机会!通过不断的面试来习惯面试节奏以及增加面试适应性!比如我到后期在宏博一楼吃鸡腿套餐的时候边吃边面试,在寝室睡午觉时立马起身面试,在五道口边看人潮边面试,在去实验室的路上边走边面试,轻盈的柳絮随风飘过。          总的来说,就是要在不同状态下都能较快进入面试状态,并满嘴跑火车,这样面对不同的面试压力也能更从容。           2.1 面试主要考查逻辑          当我们参加一个面试时,面试官将如何考察我们的能力呢?          以有完整算法场景上下游链路,也具备用算法创造出现金流通路的公司为例,面试官主要以下面这些维度对面试者进行一个完整的考察:               深度学习基础              机器学习基础              简历感兴趣内容              数据结构与算法(手撕代码)              编程语言基础(Python/C/C++)              场景设计&&前沿论文跟进能力              计算机基础              数学基础               首先,简历对整个面试流程的把控至关重要。如果你的简历内容丰富,能突出你的优势与基本面,整体方向与面试岗位相match,那么面试官大概率会将深度学习基础 + 机器学习基础 + 数学基础集成到一起进行考察。以简历中感兴趣的内容为核心,逐步深入,横向拓展发散。对面试者来说,面试风险得到了极大的控制,就算会问一些其他问题,多半也是与这些内容相关联;对面试官来说,面试者的项目可能会对面试官提供一些思考(比如我有一次参加某公司面试,对方直接问我这个算法你是怎么优化的,他们用的时候效果不好)          再者,数据结构与算法(手撕代码)部分基本上是无法避免的,加之现在CV算法岗越来越卷的趋势,给出的算法题也越来越向medium和hard方向发展,而且往往算法题起到一个筛选作用,即如果面试者没做出相应的题目,大概率这轮面试会不通过。          接着,场景设计&&前沿论文跟进能力是算法岗面试里很重要的两个考察部分。场景设计题一般都是面试官结合部门的业务场景,给出的一类开放性问题,主要考察我们的思维和逻辑能力,我们根据自己的思考与认识,表达出能自圆其说的答案就好。如果回答面试官很满意(从你的回答中他找到了解决实际业务问题的灵感),整体上会加分很多。注意:千万不要不回答,就算没想好,扯也要扯上几句。而前沿论文跟进能力的考察主要是问平时如何高效看论文?一篇论文看多久?你研究领域相关的新论文看了吗?讲讲?这个方向的新论文你有看吗?讲讲?平时一些有价值的新论文大家还是需要看看的。          其次,在编程语言/计算机基础/数学基础中,对编程语言的考察一般会问一些核心的知识点,大家平时能有较好的理解并不断复习即可。而计算机基础与数学基础的考察一般都占很少的比重(在我经历的面试中基本不会考察,最多问问Linux的一些常用命令)          最后,一般会有一个反问阶段。通常大家以为这是一个走形式的流程,其实不然。我们可以通过以下三个问题来了解面试官部门的主要业务情况,面试官对我们的看法,以及我们自己对工业界业务场景的延伸:贵公司/部门主要的业务方向有哪些?通过面试您对我的评价如何,有哪些地方需要再努力,您有什么好的方法思路提供吗?您认为未来计算机视觉在工业界还有有哪些应用与突破?          这里要引申出一个特殊的情况,如果面试官一直在让你手撕代码,问大量不可控的深度学习/机器学习/计算机基础/数学基础的知识,那么说明你的简历内容对这次面试价值不大,无法引导面试官与你在一个维度上,那么面试不通过的可能性就会大大增加。(排除一些厂就爱让人手撕代码的情况)          总体上来说,由于算法岗面试门槛越来越高,基本上手撕代码中有一两道没写出来,大概率挂;简历中内容不熟悉,面试官根据简历跟进的多个问题都没回答上来,大概率挂;深度学习/机器学习基础知识有多道题目答不上来,大概率挂。            2.2 面试厮杀技巧          首先,最好的面试技巧就是不断地面试,把每次面试都当作一次训练,久而久之就能从容,就能应对。          再者,手撕代码阶段,就算一开始没有思路,也要和面试官多多探讨,询问相关信息,如果有思路,可以边写边说给面试官听,这样既能让自己不太紧张,也让面试官能收到你的思路,从而增加印象分。          其次,面试是一场博弈。从一开始的自我介绍,到简历感兴趣内容的询问,到后面不可控问题的回答,再到最后的场景题等阶段,都要有意向自己熟悉的研究方向和学习领域引导,让自己的能力有更好的发挥空间。          最后,面试遇到不会的问题,一定不能直接说不会,要边思考边说,能说多少说多少,结合自己的想法,往自己熟悉的方向上迁移,让面试进行下去,不至于被打断。          2.3 线下Tips               模拟面试。一方面,把面试的自我介绍部分时常模拟一下,说得通顺熟练;另一方面,和小伙伴们进行全流程的互问互答,让自己更加熟悉面试的节奏。             打怪升级。在最开始,先投递一波小公司,刷刷面试经验,再刚大厂,事可成也。             调整心态。不要因为一家面试不顺利,就心态崩了,因为接下来还会有许许多多这样的情况             持续复盘。每次面试结束后都要进行总结,哪些知识点是经常考到的,怎么描述简历内容面试官的回复是积极的,整个面试过程中哪些点是需要改进的等等。             简历熟悉。简历上的内容一定要搞懂!简历上的内容一定要搞懂!简历上的内容一定要搞懂!并能通过简历告诉面试官你擅长的方向在哪里。             看面经。面试前看看相应的面经,参考一下,让自己心里有个数。              2.4 高频面试知识点          下面所列的知识点仅供参考,抛砖引玉,大家可自行拓展更多的知识点维度。          【深度学习基础】:               经典卷积神经网络(AlexNet,Inception系列网络,VGG系列网络,ResNet系列网络等)             轻量级神经网络(ShuffleNet,mobilenet等)             卷积基础知识(卷积运算,计算卷积参数量,1*1卷积核,感受野,反卷积,空洞卷积,卷积时间复杂度等)             反向传播算法(BP算法),学习率,Batch-size等             BN系列相关问题(BN的基本原理,手写BN的公式,BN放在什么位置,BN在训练和测试阶段有什么不同,BN为什么可以防止过拟合,BN与其他正则化方法的异同等)             不同的优化器(Adam,Momentum,SGD,公式推导,不同算法优劣,平时怎么用)             常用的损失函数(MSE,较差熵等)             常用的激活函数(ReLU,Mish,sigmoid,tanh,softmax等)             梯度消失与梯度爆炸             过拟合与欠拟合             目标检测YOLO系列网络,手写NMS,手写IOU,小目标问题等             评价指标(mAP,Recall,Precision,Accuracy,F1,ROC/AUC等)             图像分割任务逻辑以及其实用模型(U-Net,FCN,Mask R-CNN等)             dropout             数据增强方法             类别不均衡问题             网络权重初始化             归一化             上采样的方式             降低模型复杂度的方法             你所研究领域的前沿模型和实用模型              【机器学习基础】:正则化(L1,L2),bagging和boosting,模型融合,相似度衡量尺度(欧式距离,余弦相似度距离等),偏差与方差,鞍点,凸优化,SVM,LR,K-means,PCA等。          【数据结构与算法】:leetcode高频题以及前300题。数据结构侧,数组,字符串,链表,二叉树考得很多,还有栈和队列,哈希表,堆也要熟练掌握。算法侧,各种排序算法要熟练,动态规划,深搜回溯,分治,二分,贪心算法等算法也要熟悉。          【Python基础】:numpy广播机制,迭代器,生成器,装饰器,各种切片操作,常用数据结构,多线程与多进程,GIL,浅拷贝与深拷贝,*args与**kwargs,lamba,类与继承等。          【C/C++基础】:指针和引用的区别,static变量,结构体,宏,const,STL库,虚函数,多态与继承,智能指针,c++11新特性,函数重载,浅拷贝深拷贝,构造/析构函数,内存分配,函数指针等。          【数学/概率题】:我碰到的比较少,但是牛客上很多面经里都会有,大家可以去看看。(我看到的有抛硬币,排列组合,摇骰子,扑克牌,概率题等)          【计算机基础】:Linux一些常用的命令(find,grep,查看CPU使用情况等命令),进程和线程,网络七层模型等。          3 最后           本文写到这里,也就要写完了。回想起2020年,突如其来的疫情,无法回学校的焦虑,时间紧张的科研,千军万马厮杀的暑期实习与秋招。这期间有收获,有遗憾,有喜悦,有伤心,还有很多宝贵的记忆。我也相信这就是前行的意义。          最后,希望大家在今后的暑期实习与秋招中都能收获满意的offer!                
点赞 32
评论 1
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务