[社招/校招面经] 平安/深信服/腾讯等面试问题及考察点总结

19.3.8更新:感觉之前废话太多放前面不太好,这次调整下,把有用的放前面吧…

正文:面试问题

综述:
面试十几家,除了一点基础知识,其余都是根据我的介绍和简历中的项目来问,OPPO和另一个有问数据结构和C++基础语法,然后一家问了yolo IOU公式和代码实现softmax公式。
变成社招之后,很多基础知识就默认你会,产品组不像研究组,它比较注重工程能力,对于数学功底,应该不像研究组那么看重,达到理解知识原理、看懂论文的程度应该就好了。
所以重点还是放在基础知识和项目上面,究其根本,其实都是在考察面试者的知识深度,理解深度。
具体哪一家的问题我就不单独写了,我就参照我的简历把相关问题整理出来:

我的简历内容: 就是博客里面这些,还有很多没有总结完,所以还没有发。具体的就是
1.caffe框架的使用,调参训练(这部分基本都没怎么问,应该觉得太一般了,但是问了除了调参还用过哪些优化?比如网络优化,自定义层,剪枝,数据增强等)
2.NCNN/FeatherCNN框架的使用和测试
3.TensorFlow(Keras)框架的使用和训练,tf量化和yolo训练
4.本科研究生毕设:基于传感器和视觉的手势识别

(简历这里也比较重要,可以找些简历写作方法,定性地量化自己做的成果,这样比较好评估)

问题总结:
1.caffe和tf等框架的训练里,用了XX模型,为什么用这个模型,是根据要分类的图片特征还是别的什么,图片数据是什么数据,分几类,为什么不用别的模型,这个模型用在什么场景,不同模型有什么优缺点,有没有改源码添加自己的层。
2.传统机器学习:讲一下逻辑回归,线性回归的原理,怎么用,怎么解决实际问题的。做手势识别,怎么找他们的特征,根据什么指标来筛选特征,怎么知道他们的区分度(特征工程,机器学习处理实际问题的建模流程)
3.ncnn这里做了什么,有没有用里面的优化方法,修改的哪部分源码,这部分比较少,记不太清了…
4.讲一下量化怎么做的,它的数学原理,为什么用完全量化不用另外两种,有没有测试量化前后模型的速度,量化其他论文,为什么要对应零点?零点怎么计算?如果最小值为0.1怎么对应零点,零点偏移?scale在推理阶段还是float的,怎么使用?卷积和relu为什么要fused?
yolo原理是什么,怎么用的,yolo交并比计算公式,怎么找到两个框的交集,预测出的两个框有几种位置关系,yolo用的哪个loss,知不知道yoloV3。
(大概都是这种,就是不同面试官能力不同,你感到的压力也就不同,一针见血的可能直接把你问的结束话题了…)
5.本科课题,怎么选取的六个特征,为什么选这六个,分了几类,为什么用决策树,不用回归,回归也可以解决。研究生毕设做的什么,不是深度学习相关的,就没怎么问。
6.项目,没什么落地的,不是产品的,说我做的杂…所有面试都提到这一点,我觉得这部分很没有竞争力,只能靠扎实的基础,完整的知识和清晰的思维来弥补,这就去了半壁江山啊…
(2019.1.28更新:项目内容我重新梳理了一下,明确了项目名称内容,并把我做的事全部串联起来了,这样清晰多了,写简历也是要有逻辑的啊,感觉整个工作内容最好可以体现出自己的职业规划,有个清晰的思路也会让人觉得你不是没有想法,只知道听领导安排的)
7.拓展,知不知道自己领域或者相关领域的最新技术或最新产品,了不了解nlp,语音识别,自动驾驶等,知不知道resnet,rnn,dnn,lstm等,类似的看知识广度的问题。
8.职业规划:说一下自己的发展方向,以后想做的,3~5年的规划。

考察点:
1.学习思维:
基础知识理解深刻,有知识体系架构,所有涉及的方面,都知道里面的模型,网络,算法为什么用,优缺点,也就是整个解决问题的过程最好都能说出来,这个简历上每个东西都要深挖一下,即使你做的只是公司的要求,但也不能表现出来,要自己补齐那些知识。
这就涉及到下面的工作态度。
2.工作态度:
要有责任心,积极完成任务,当然不能只完成上级交给的任务,要独立思考,知道为什么做,了解相关知识,要有判断能力,比如产品说做什么,要先思考一下有没有必要,想别人想不到的东西。
不能只做执行者,要做领行者。有自我驱动性,就是多思考,多学习,多创新。
这里可以看下这篇文章:
【干货分享】菜鸟如何成长为技术总监
3.职业规划:
这个想好自己的职业发展,有个明确的规划,这个能看出你是不是坚定做这个行业并想成为领军人物,有没有热情兴趣,应该还可以根据你的技术回答和规划,看出你有没有践行自己的计划。
这个应该也是技术和思维的考察。
4. 项目,也就是看你的工作经验,如果直接上手,岗位契合度高那是非常好的。

ML/DL基础知识整理汇总:
1."机器之心"整理,算法岗汇总
2.算法工程师面试题整理:
https://github.com/PPshrimpGo/AIinterview
3.机器学习:
1)机器学习算法Python实现
2)ML-机器学习基础
3)算法/深度学习/NLP面试笔记
4.深度学习:
1)《深度学习》整理
2)深度学习基础
3)深度学习 Deep Learning

语言coding:
1.C++:https://github.com/huihut/interview#cc
2.Python:https://github.com/taizilongxu/interview_python
3.数据结构、算法(左神):
1)https://www.nowcoder.com/discuss/61529
2)https://www.csdn.net/article/2015-10-23/2826015

其他:

个人背景介绍

本人本科双非,硕士985渣硕,18年12月底经历互联网寒冬,失业,然后开始整理工作,准备简历,投递,面试。
去大家最爱的牛客网,查了好多面经,确实都是应届生的面试问题,会考察:
基础知识,项目内容,论文,比赛等相关知识,以及代码能力,算法等,不同公司侧重不同。
但看得多了,确实感觉问题都差不多,虽然都看完了,但我心里还是没底,我还是不太清楚复习什么,可能东西太多了吧,想要年前(2.5之前)找到工作,这个时间还是很紧迫的。
因为我之前没有参加秋招,实习也只面了三家技术,然后就确定了实习,然后就直接转正工作了,所以现在相当于重头开始。

找工作期间感悟

在此,特别奉劝还没毕业的学弟学妹们,无论能不能进大公司,无论之后去不去那些公司,都要去多面试,多实习,多了解这个行业内的信息,早点确立职业目标,毕竟以后是要在这个领域工作学习,不断提升的(如果想转行就要考虑好所有因素,然后坚定下来,这个涉及的东西也不少,我也算有点这方面的经验,需要的也可以跟我聊下)。
而且面试就是个完善自己知识面的过程,能补上好多遗漏的知识或者思维上的不足,受益良多。

但像之前说的,我看了那么多面经,还是不知道怎么准备,我想这可能是很多小白(项目少,基础差)和之前没那么早确立目标的这类人的问题。

所以,在我看完了牛客的面经,咨询了工作后的大佬、同事,在网上查了面试官的考察点以及面了几家公司之后,我准备总结下这段时间的收获和对于ML、DL岗位该有的学习思维,这些也是平时学习工作中应该注意的东西,来给大家看一下。
因为我觉得那些面经写的太具体了,我个人比较喜欢先从宏观入手,再看细节,也可能他们默认大家都有好的思维了吧…太细节可能会让看的人钻进去,然后忽略了大局观,容易像上学时候的那种题海战术,这样肯定是费时费力的。
所以,我觉得大家还是要培养出学习思维和工作技能。与其授己以鱼,不如授己以渔;与其临渊羡鱼,不如退而结网。

在结网之前,还建议大家看一篇指导性文章,明确下自己的方向,属于学习内容和职业发展的问题:
文章:入行 AI,如何选个脚踏实地的岗位?

(其他: 其实,我觉得这段失业的经历特别好,虽然不能工作赚钱了,但给了我非常好的修整期,让我重新审视自己,重新定位。让我意识中产生危机感,有充足的时间去思考实践,了解行业信息和动向,了解这个领域的要求,不至于闭门造车,落后时代。
同时,也学习到了正确的学习方法和思维,这些都对以后的职业发展很有帮助,这是一个蜕变的过程,我觉得我经历的一切都是对我而言最适合的。所以,要自信,要坦然,重要的不是抱怨迷茫,而是抓住机会提升自己。塞翁失马,焉知非福,是不?)

面试者的几种程度

1.大神级别:
在校参加各种比赛,发表论文,大厂实习,各方面的能力综合者。这种人不用说了,学习方法正确,方向明确,行动力执行力强,综合实力突出,是大家学习的榜样。(SSP/SP)
2.学霸级别:
有比赛或者论文,大厂实习或者闷实验室一心准备秋招的。属于第二层级的人,也是很厉害的,同样方向明确,实力突出,各种大厂的SP或普通高薪阶层。
3.学渣水平:
(就是我~)没有比赛和论文,没有大厂实习,也没有准备秋招,毕业去了创业公司工作还没有实际落地产品项目的渣渣(只做了没啥价值的预研,思想态度也没跟上去)。主要这之间并没有学到技术思维,没有培养出自己好的学习工作状态,跟部门沟通也不好,跟在实验室一样,没人带,太凄惨…
(遇到这种问题,应该开始警惕,要多交流,查资料,看看怎么解决自己的问题,改善环境,这种寒冬更应该时刻保持警惕,不然就很容易被裁了,,)。
所以,在这里再次建议各位,找个有人带,有人管,高效沟通,有产品赚钱项目的组待着,并且独立思考,多做事,多想为什么,多分析总结,写博客,做开源,快速提升!

我就是妥妥的学渣水平了,但得相信自己学渣也是可以逆袭的!我们只是经验不足,学习时间不足而已。因为面了几家之后觉得问题其实挺简单的,只是我平时思考的深度不够,不过思考深度这个问题在你找到正确的方法之后成长起来是很快的,所以,我就把我找到的方法在这总结一下,给大家一些启发,也给我自己提个醒。

(2019年2月21日补充: 虽然问题问的比较简单,但其实想让你答的是不只问出来的冰山一角的,所以尽量深挖,不要等着面试官提问,能说多少说多少,但是要注意逻辑,要有体系架构,然后条理清晰地说,这个可能要好好练一下。)

总结:
以上是我自己总结的部分,只是给大家一点启发,我觉得看完这些,大家应该就知道自己哪里欠缺,哪里有待提高了,可以再去找找同类型的文章看看,我看过几篇感觉还不错的,推荐大家看一下:
1.知乎:面试官如何判断面试者的机器学习水平?(前几个答案不错)
2.作为面试官,如何判断一个面试者的深度学习水平?
3.应届硕士毕业生如何拿到知名互联网公司深度学习 offer?
4.如何优雅的介绍自己的项目经历

最后, 前面涉及到的东西,工作的方向,学习的思维等,都可以评论交流,如有错误,也请指正~
大家一起努力吧~ 祝大家都有个好工作~

你可能感兴趣的:(工作感悟)