2019 年第 24 篇,总 48 篇文章 本文大约 5000 字,阅读大约需要 15 分钟
周末了,就不写技术了,来聊聊关于春招/秋招面试的事情,刚好最近也是逐渐开始春招找实习或者找工作的时候了,我就介绍一些当初准备春招实习和秋招工作面试的一些经验吧,主要是算法工程师岗位的经验,但其实除了在面试的知识准备部分有所区别,对所有技术岗位都是适用的。
个人认为,面试是否成功,主要就是靠硬实力+运气,前者是基础,后者则是可遇不可求,即便你努力去转发锦鲤或者杨超越妹妹,也不一定会受到幸运女神的眷顾,所以首先还是牢牢把握可控的因素--自身实力!
而实力部分主要是对知识的准备,包括以下几项:
不过,如果是春招找实习,那么可能很多人是缺乏实战经验的,即没有实习经历和比赛经验,对于研二的同学,也会遇到科研项目和寻找的岗位不匹配,没错,这里实战经验的大前提是与寻找的岗位匹配!不匹配的项目等实战经验千万不要写在简历上,它对你的面试并没有太大帮助,甚至可能有反作用。
实战经验的重要性在于可以将面试官会提问的问题固定在某个领域,比如如果是图像方面的项目,面试官一般也是提问图像方面的问题,而不会突然问语音或者推荐系统的问题(除非你还有这样的项目或者投这方面的岗位,否则概率极低)。
所以有实战经验,面试官就会根据你做过的项目/实习经历等来开始问题以及拓展到对应的算法知识,比如你做的是图像分类的问题,用的是 CNN 网络模型,那么除了问你在项目中的工作以及成果,还会继续问下 CNN 的一些知识点,比如 BatchNorm 这个非常常见的问题(我当时面试时候,经常遇到这个问题),然后也有可能会一些分类方面最新最前沿的一些技术或者网络模型。
因此,对于自己的项目,需要非常熟悉,并且最好提前进行演练,即对项目的介绍,这里建议可以给自己的同学介绍项目,保证表达比较顺畅,不会有过多的停顿,而且将重点内容都完整表达出来!
而如果没有这部分知识,面试难度就会自动提升至少一个档次了,面试官就只能提问算法、数据结构、编程语言部分的问题,这时候你得祈祷面试官问的刚好是你复习过的,掌握了的知识点,毕竟这几个方面其实包含了很多知识,要想完全复习好这几个方面的知识,并不容易,除非提前几年就开始有计划的系统性的学习和复习。
除了对于知识的准备,还需要准备一份大约 1 分钟左右的自我介绍,简单介绍自己的基本信息,求职岗位,自己的优势点或者掌握的知识和技能,以及为什么投递这个岗位和选择面试的公司。
然后呢,还需要准备几个提问面试官的问题,这是因为通常面试结束时候,有的面试官会给你提问问题的机会,这时候最好是要问1-2个问题,而不是说没有其他问题,一般可以咨询下面试官的部门(了解自己被哪个部门面试,也是可能实习的部门)、部门的业务内容,比较有风险的就是询问自己这轮面试的表现了(特别是明显知道表现不好的情况)
此外,这里推荐几个有关面试的 Github 项目:
1.第一个也是最近非常多公众号推荐的一份面试总结 Github--2018/2019/校招/春招/秋招/算法/机器学习(Machine Learning)/深度学习(Deep Learning)/自然语言处理(NLP)/C/C++/Python/面试笔记
https://github.com/imhuay/Algorithm_Interview_Notes-Chinese
2.之前推荐过的一个深度学习 500 问教程:[资源分享] Github上八千Star的深度学习500问教程
https://github.com/scutan90/DeepLearning-500-questions
春招实习是非常重要的,无论如何都务必好好准备春招实习,并且争取拿到实习 offer,这有几点好处:
所以,即便被 10 家、20 家、50 家公司拒绝了,也不要放弃,实习经历真的非常重要!
对于技术岗位,简历其实不需要太过花哨,简洁明了即可。我有以下几点经验:
1.首先简历一般需要包含以下的信息:
2.简历最好是保存为 pdf 格式,而不是直接发送 word,这是考虑到 word 不同版本会导致格式出错问题; 3.简历名字一般以“姓名+学校+求职岗位”命名,并且发送邮件时候,主题也应该以这样的格式来写;
其中第三点就是为了保证能通过简历筛选,当然这一关对学历是有要求的,通常 985/211 学校会容易通过,非 985/211 的学校同学可能这一关会遇到很大的难度,但一定不能放弃,原因自然是第二点说的实习很重要,特别是如果你的学校已经不占据优势了,如果还没有实习经验,那么秋招寻找工作就难上加难了。
对于技术岗位来说,需要准备的东西真的非常多,从编程语言,到数据结构,再到算法,计算机网络、Linux、操作系统,每一项如果要深入了解,都有很多问题可以问的,所以完全准备好再投递简历,基本是不可能的,或者说时间不等人,完全准备好可能就错过实习面试的时间点,通常都是先开始面试,然后查漏补缺,以战养战!
但这也是有一些技巧和策略的:
通常面试有三种形式,电话、视频和现场面试,难度依次增加,不过实习时候通常会以电话和视频面试为主,主要也是很多公司实习一般只会在特定的几个城市设置现场面试的机会,一般就是公司总部所在的城市,当然其实也就是几个大城市,北京、上海、深圳、广州、杭州,杭州还是得益于阿里和网易两家大公司。
为什么现场面试难度会是最大的呢?
第一,是因为手写算法,比如手写一个快速排序算法(非常容易问到的排序算法);
第二,直接面对面试官,如果心理素质或者经验比较缺乏,容易因为没有答出某个问题而影响后续的发挥,特别是遇上很有气场的面试官,完全看不出表情变化、一脸冷漠的面试官,压力更加大了。
视频面试难度次之,一般视频面试阶段会要求在指定的在线网站编写算法,而电话面试一般只需要给出解题的思路,所以难度上,现场 > 视频 > 电话。
面试的轮次也是看不同公司来决定的,有的就三轮面试,两轮技术面+Hr 面,但有的可能会有 5,6,7 轮技术面试,面试官的级别越来越高,不过,这种情况不多见,一般是评级比较高,也有的是因为面试两三轮后,面试官觉得你更适合其他部门部门,帮你调到另外一个部门,继续面试,也可能是被当前部门淘汰,其他部门又捞起你的简历进行面试。
通常,第一轮面试会问比较基础且全面的内容,包括项目、算法、数据结构、编程语言,时间一般也是控制在半小时到一个小时之间,刚刚说到的实战经验的重要性在于,如果这个阶段,你对自己的项目非常熟悉,准备充分,很有可能在项目这部分就占据面试时间的 80%-90%,面试官在问完项目后,可能直接结束第一轮面试,或者简单提问几个数据结构等问题;
第二轮开始,就会比较深入,重点考察解决问题的能力以及你的潜力,对于项目的询问就会涉及到你如何解决遇到的问题和困难,如何改进优化,甚至会给出其他的场景,让你提出解决的方案;
对于 Hr 面,一般就不会涉及到技术问题,主要是考察其他方面问题,比如沟通交流能力、兴趣爱好、家庭背景以及薪酬福利等问题,并且 Hr 面也不代表你就一定可以拿到 offer 了,所以还是需要重视,好好做好准备。
最后一条,其实是尽可能多拿几个 offer,提供选择的空间,这里主要有几个考虑的角度:
即便你拿到了心仪公司的 offer,如果不是所有条件都匹配,比如部门、岗位或者城市之一都不满足你的希望,还是需要努力多拿几个 offer,多几个选择,并且多几个 offer,也有利于在 hr 面谈论薪酬待遇,有底气来争取更高的薪酬待遇。
以上就是我的一些关于春招/秋招面试的经验,因为距离时间有点久(两年了),加上我不是大神(没有手拿十几个offer),所以上述经验只是当初经历过春招实习和秋招工作面试后得出的几条经验,并且限于我的表达能力,可能描述得不是非常简单明了,有些啰嗦,请见谅!
欢迎关注我的微信公众号--机器学习与计算机视觉,或者扫描下方的二维码,大家一起交流,学习和进步!