当前位置:网站首页>面试官的角度谈谈算法岗面试的过程(岗位涉及到OCR、目标检测、图像分割、语音识别等领域)
面试官的角度谈谈算法岗面试的过程(岗位涉及到OCR、目标检测、图像分割、语音识别等领域)
2022-08-02 15:05:00 【枫桦】
作者|蔡壮@知乎(已授权) 来源|https://zhuanlan.zhihu.com/p/496440910 编辑|枫桦
算法工程师面经
这篇文章将围绕以下几个问题进行展开:
1.算法岗求职的现状?
2.学历和学校是第一要素吗?
3.面试官看重简历上的哪些方面?
4.技术面试都是聊哪些内容?
5.刷LeetCode题真的很重要吗?
6.薪资怎么谈?
7.面试者的雷区?
小结
/ 前言 /
# 面试官教你算法面试 #
大家好,我在某厂AI lab 做视觉和语音方向的算法工程师。本文章写的比较真实直白,很多问题也是面试者比较关心的问题(由于不同公司不同面试官的面试方式都有所不同,这些问题只限于个人的分享,希望能帮助到还在找工作的童鞋们了解面试官的心路历程)。
从2021年的秋招到现在,面试过的人数已经50+,这其中除了应届生,还包含了大量的社招。都说算法岗比较卷,2020年算法岗一片红海,2021年算法岗灰飞烟灭,2022年算法岗人间地狱……,虽然卷,但是也确实缺人,很多公司招不到合适的人。针对面试经历,网上自己也搜寻浏览了一些面经,更多的是“算法面试八股文”,当然这些会对知识的理解和回答有点作用,但是普适性有点低,也没有抓住面试官欣赏的关键点。
/ 1.算法岗求职现状 /
# 面试官教你算法面试 #
互联网的薪资一直高于其他行业,这也导致了大量各个专业的同学在读书时就转行到互联网,算法又是在互联网中薪资比较高的方向,所以在AI兴起的时候就开始涌入了大量的人才。
AI 行业在前几年是巅峰期,也是各个公司不计成本进行投资的一个领域,更多的工作内容是一个research的过程,目前行业热度下降,很多公司AI Lab开始偏向于算法产品的落地。一些刚成立的小公司前几年可以靠AI概念拉一些融资,但是目前芯片、自动驾驶等行业的兴起,小公司再通过AI概念进行融资比较困难,并且本身也缺乏实际的业务,再加上AI 团队的成本比较高,只能靠裁员来降低成本。
算法岗待遇在前几年的技术领域算是独树一帜,现在也在慢慢拉回正常状态,目前很多领域也处于风口,特别是芯片行业,待遇也是远超其他行业。目前从事算法工作的同学也是非常多,每年的秋招可以看的出来,卷也是真的卷。所谓“卷”,完全是从应试者的角度看。从我们面试者的角度看,仍然是求贤若渴的状态。
那大家可能还是会觉得:求职者这么多的情况下,你们还是挑不出满意的,不是更加说明算法岗求职之艰难吗?如果我没有名校光环,没有顶会论文,是不是根本不可能脱颖而出?
对于这样的疑问,我还希望能够为大家树立一点信心的是:名校光环/顶会论文不是顶级 offer 的充要条件。普通高校毕业却能拿到 SSP 的也大有人在。是否应试成功的关键,还是在于其本身的能力是否过关,以及与应聘岗位的需求是否 match。
/ 2.学历和学校是第一因素吗 /
# 面试官教你算法面试 #
不可否认目前从事算法工作的人员都是以硕士研究生和博士研究生为主。学历在HR筛选简历时确实是一大重要因素,学校非常好的确实是有很大的光环,特别是在秋招的时候,面对大量的简历,为了招聘的效率和质量,对于学校非常好的,HR可能会优先挑选,但是大部分同学还是能进入面试的。也有很多非名校毕业的同学面试下来,表现的比名校的同学要优秀。
/ 3.面试官看重哪些方面 /
# 面试官教你算法面试 #
网上有很多关于如何写求职简历的经验分享,对简历的重要性强调得很重,但精致的简历并不是offer 的决定因素。简历的主要作用,是用于筛选是否给予面试机会。一般来说,只要有方向 match 的岗位,简历不是过于离谱,都是会给予初面机会的。
但是简历过于潦草的确实会给人留下不认真对待面试的印象,有同学的学历信息和工作经历写的不明确,或者故意缺失,这可能会导致给面试官留下不好的印象。就算学校不是很好,或者之前的就业公司没有名气,HR希望你的简历能真实有效,因为这些信息不写的话后续都会询问的。
当你能进入面试的环节时,不要过于担心其他信息给你留下不好的印象,这个时候大家就在同一个起跑线了,你的自信再加上过硬的专业知识会让你光芒四射,同时也会给面试官留下很深的印象。
简历上,社招的简历,更看重的是你的项目经历和技术深度,这些是面试官最看重的地方,同时也是面试过程中重点询问的地方。类似在校期间的各种荣誉或者各种组织名号其实不看重。应届生的简历,其实大部分的同学都差不多,有顶会和大赛名次可能简历会突出一点,但这些也不是充要条件。
/ 4.技术面试都聊哪些内容 /
# 面试官教你算法面试 #
模板化的面试中,考察算法的方式多数是直接问基本概念、公式推导、以及一些证明之类的(例如BatchNorm 的作用及其公式,SVM 公式推导等),这些题目流行的现象也被戏称为“面试八股化”。实际上,这些题目是非常容易准备的,有时作为初步筛选的手段也是有效的。
面试的第一步是自我介绍,有同学会问你手中都有简历了,为啥还要别人自我介绍?当遇到面试排期比较紧的时候,在自我介绍的过程中面试官可以大致浏览一下简历内容,同时也能抓住你的重点项目。当然自我介绍不用过长,一般3分钟即可。有的同学可能比较紧张,自我介绍不敢看着面试官,自我介绍像背书一样不停顿的,其实不用紧张,面试官遇到没有接触过的领域时,其实对你有的项目也不是很了解,面试之前有时间的,可能会提前查找一下这个项目目前的技术现状,或则看一下算法涉及到的paper。
面试官第一个问题,往往让你介绍你最新或者自己负责的项目,这个项目需要面试者从头到尾介绍一遍。我作为面试官,希望听到的内容包括以下信息:
- (1)算法的需求及应用场景
- (2)算法的调研和初步方案的制定
- (3)数据的准备(包括数据标注和数据增强)
- (4)算法的介绍(包括输入输出,loss,backbone,训练细节等)
- (5)自己对算法增加的模块的介绍(为什么要这样改?消融实验?)
- (6)各种指标的计算
- (7)算法是否兼顾到参数量和推理速度等
上面的信息面试官会一一剖开来细细询问,实际上这些问题可以判断出这个项目是不是自己做的,以及你对这个项目的掌握程度。在剖开交流的过程中基本上可以涵盖该技术领域的一些知识,并且最好能和SOTA进行一些对比,或则借鉴其的一些理念。不断深入的问题可以考察面试者的技术深度和做项目的习惯,以及思考问题的方式。同时也会对项目进行一些延伸讨论,而这些讨论,就是宏观层面上,技术视野的交锋,看一下候选人对项目整体把控怎么样,技术成长空间大不大。
当然,相似需求的算法在GitHub上开源的比较多,有的同学会直接拿来用,或则用自己的数据跑一下,就算没有根据自己的任务进行改进,你最起码要对其用到算法知识熟悉,有的同学连loss都讲不清楚,这个时候你在面试官心中的印象会减分。
项目的知识问的差不多的情况下,还会对传统的机器学习知识和深度学习知识进行考察以及代码的测试。
以上整个过程,说是面试,实则是思想交流,这期间面试官不仅仅是在提问题,引导候选人把自己的项目讲清楚,同时也会提观点,与候选人的思想碰撞,这也是相互学习和交流的状态,这时候你要是把面试官说服,你的面试也基本上会通过。
后续会分享一些面试的通用问题,下面先列一些大致范围,也是面试者常用到的一些算法。
OCR
完整的OCR产品应该包含图片质量检测模块、文字方向纠正模块、文字检测模块、文字识别模块、结构化信息处理模块。很多同学都集中于文字检测算法(常用的有DB、PSE等)和文字识别算法(CRNN+CTC等),也有很多基于transform算法,如DETR、TrOCR等。这些会根据面试者用到的算法进行详细询问。
目标检测
目标检测算是视觉领域最常规的任务,做这个方向的同学也是最多的。涉及到问题大致包含One-Stage的算法,比如YOLO系列(YOLOV1-YOLOV5,YOLOX等),Two-Stage的算法(R-CNN、Fast-RCNN和Faster-RCNN等),这些算法的相关问题都会在面试中被问道,基于anchor和非anchor的算法也会让你进行对比,很多基于transform的算法也会被问到,如DETR、VIT、Swin-Transformer,当然这些面试者没有用到的算法,可能就不会被细问。
图像分割
图像分割,比较常用的算法包括Deeplab系列、FCN、Unet等,这些也都会有用到,他们的loss,中间特征图的转换以及不同卷积的使用等,相关细节问题会剖开来问。
语音识别
语音方向相关的同学不多,按照细分的方向分为TTS(Text-To-Speech)、ASR(Automatic Speech Recognition)、情感分类、声纹识别等。
语音算法的门槛相比于视觉,个人感觉要高一点,需要一定的信号处理基础才能更好的理解你的算法对象。各种网络算法可能大家比较好理解。目前transformer不仅在CV界大杀四方,在语音上面也是光芒四射,但个人感觉语音的底层特征理解反而更重要,比如音频的时域特性:过零率、短时能量、相关性等等,音频的频域特征:傅里叶变换、MFCC、LPC等。
/ 5.刷LeetCode真的很重要吗 /
# 面试官教你算法面试 #
算法岗在每一次面试后,可能都会有一两道算法题让面试者去解答。每个公司的要求会有所不同。用最优解来解答题目并不是我最看重的,经常刷LeetCode题和没怎么刷过的,在解题的速度和思考上面确实差异比较大,这在面试写题的过程中能一眼看的出来,我们其实更看重你思维的转换过程,而不是靠熟练度来体现。所以根据面试者的反应,后续的题目会有所调整。
有的同学能把LeetCode题刷到500题以上,各种动态规划算法可以立马写出来,不可否认能做到这一步确实付出了很大的努力,也值得称赞。当然如果你连最基本的排序和查找都不会,并且给你思路提示,也没法写出来,虽然理解你没怎么刷过题,但这个时候确实会给面试官留下不好的印象,因为这些基础算法知识在工作中也要用到,这已经是最基本的要求了。
总的来说,不同的面试官对写题要求有所不同,没怎么刷过题的同学需要自己练习一些题,加固一下自己的专业知识,但也没有必要为了刷题而刷题。
/ 6.薪资怎么谈 /
# 面试官教你算法面试 #
薪资除了根据面试结果外,还会考虑的因素有工作年限,学历,上份工作的职级等。针对社招,社招的工资可谈的范围比较大,但是主要还是依靠你原来的薪资和面试结果。在HR谈薪资之前都会查看面试者之前的工资流水,一般都是按照规定的涨幅区间来谈,当然特别优秀的,公司也会开绿色通道给你特别大的涨幅。针对应届生,每个公司都有自己的标准,会按照你的面试结果分为正常的offer,SP offer 和 SSP offer,这个就看你是否接受对应的offer。
综上所述,薪资在你了解到行业水平和职级信息的情况下,可以往HR给的最大幅度范围去谈。
/ 7.面试者的雷区 /
# 面试官教你算法面试 #
由于疫情原因,很多的技术面试都会进行远程视频面试。远程面试相比于现场面试,面试者的体验会更加放松,很多自我介绍部分可能会在屏幕上准备好,这些都可以理解。面试官可能面试的比较多了,对你的面部表情和眼神都比较敏感,这个时候你的诚实、纯粹是最重要的,但是有的同学可能备了两台电脑,在面试或者写题的过程中有搜索题目的过程,这个通过你的眼神是很明显可以看出来的,你在面试官心目中的印象会大打折扣。面试官问的问题有些触及到盲区答不出来是很正常的,本身面试也是一个交流的过程,所以一旦你有作弊嫌疑,面试完可能就会被淘汰了。
/ 小结 /
# 面试官教你算法面试 #
在工作中,做技术的小伙伴都比较真实、真诚、简单、纯粹。无论是作为面试官还是面试者,大家都尽量避免一些套路,真才实学往往都是靠日常的积累,而非临阵磨枪。在面试的过程中,真诚的交流会给面试官一个好的印象,毕竟在以后的工作当中,都是彼此的伙伴,你的真诚表现也会赢得别人真诚回应。
(这里着重说明一下,对于很多转行或则入门不久的同学,对于机器学习和深度学习没有系统的学习过,很多人喜欢看图文并茂的博主分享和解释,感觉容易理解,不喜欢公式的推导,这样其实很多底层原理并没有清楚。本人在读书时刚入门的时候也是这样,但是看底层源码,手推公式或者用numpy把各种传统机器学习算法和神经网络手撸一遍,你对该算法的理解会上升到更高的一个层次。)
边栏推荐
猜你喜欢
5000mAh大电池!华为全新鸿蒙手机今晚亮相:更流畅更安全
华为研究院19级研究员几年心得,终成趣谈网络协议文档,附大牛讲解
servlet交互过程图详解,servlet的常见问题,创建web项目(一)
Mechanical keyboard failure
Selenium元素定位方法总结
(LinkedList与链表) 和 (ArrayList与顺序表)的区别
SQL查询数据之多表(关联)查询
【服务器数据恢复】Raid阵列更换故障硬盘后数据同步失败的数据恢复案例
TMS320C6678开发板( DSP+Zynq )RTOS综合功能案例,嵌入式必看!
QT基础第四天(4)qt事件机制:事件基础概念,常见事件机制,事件处理以及事件的重写
随机推荐
2022 Security Officer-A Certificate Exam Questions and Mock Exam
Advanced usage of vim configuration
状态码以及访问百度过程
面试必问的HashCode技术内幕
codeforces k-Tree (dp still won't work)
太香了!阿里Redis速成笔记,从头到尾全是精华!
SQL查询数据以及排序
Go-5-简单介绍fmt库
【个人总结】2022.7月结
Eight big software attack overview of supply chain
继续来学习有关淘宝的API接口的使用——获得店铺的所有商品 API
Alibaba "MySQL Growth Manual" Lite Edition
Basic management of mysql database in Linux system
【Untitled】
How to check the WeChat applet server domain name and modify it
类的比较大小(Comparable -> compareTo(类自己实现接口),Comparator -> compare(新建一个类作为比较器))
Reading is the cheapest and noblest
Servlet运行原理_API详解_请求响应构造进阶之路(Servlet_2)
“绿色低碳+数字孪生“双轮驱动,解码油气管道站升级难点 | 图扑软件
QT基础第四天(4)qt事件机制:事件基础概念,常见事件机制,事件处理以及事件的重写