从9月18号开始投实习简历到10月21号,差不多一个月的时间,面了三个互联网公司,有研发岗和算法岗,有的拿到了internship, 也有的被惨虐;会有面试通过的惊喜,也有一轮游的不甘;对结果的无法控制和等待过程中的焦虑,更会有对自身的不自信,相信每个面试的人都经历过,但无论如何实习这件事算是过去了,希望自己在接下来的路依旧不卑不亢,努力前行。
一、 某度内容推荐平台架构岗面试总结(拿到internship)
时间:9月18号–9月28号
由于有玩的不错的同学腾二在这家公司,于是就直接内推了,从投递简历到三面结束共10天,不得不说其效率还是挺高的。其实本想是和腾二一样做web开发岗,当时面试准备的也是和web开发相关的,但由于之前没咋做过项目,servlet、session等知识不会,就被转到推荐平台架构设计岗了,最终通过面试,也是挺幸运的。下面总结下面试内容:
- 一面:
一面是个姐姐,之前听腾二说它的部门经理是学姐,然后我就以为是她,就一个劲称呼她学姐,可惜后来才知道不是。她问的比较基础,建议大家要熟悉考研408的知识,这样至少不会一轮游。
- 介绍项目
参加过天池大数据竞赛,所以这个问的比较细,这个比赛前前后后被问了有四次。虽然感觉一次比一次表述的好一些,但还是缺乏有力的总结,比如为什么用RF模型,这个模型比别的好在哪里,适用场景有哪些,优缺点是啥;特征工程的时候,为什么要这样处理,这样处理有什么好处;你自己的创新点在哪里?总而言之就是细节一定要把握好,多问问自己那块为什么这样做,针对可能会被问到的问题都准备下。 - 数据库知识
由于自己学过慕课网的数据库实战项目课程,对mysql有一定的了解,故在简历中刻意提到了这些。mysql数据库的索引优化,sql优化,常用sql语句的书写也要懂(嵌套的,稍微复杂些的也要会),熟悉下较流行的数据库,比如memcache,redis等。(主从复制原理也要懂,,多线程访问数据库) - 网络
tcp协议三次握手四次挥手,http协议包含哪些请求,tcp对应协议,udp对应协议 - 编程语言
java的hashMap、hashTable等必问题,java虚拟机的GC回收算法,和C/C++区别等等 - 数据结构
两个编程题,判断单链表有没有环,并输出第一个环节点;找两个链表的公共节点。
- 介绍项目
总体来说,一面不是很难,这些需要大家有目的性的积累。
- 二面
二面是个男的,具体职位不清楚,但感觉比较难,个人面完后觉得要跪。问的网络方面的东西比较多,涉及到的原理性知识也偏多了些。
项目:
各种细节吧,每个人关注的点不一样,所以还是要把项目屡清楚,创新点、逻辑、多问几个为什么等等。
还问了我如何处理负载均衡,我回答的不好。网络:
浏览器输入www.baidu.com会发生什么?(说的越详细越好),这个问题可以看出一个人对网络的熟悉程度,根据这个问题,牵扯到了许多,比如常见路由选择协议及底层原理,ARP/RARP协议,html界面如何返回,servlet /session等等,由于这些我之前不太了解,感觉面的很差。
数据结构:
就一个,全排列算法
编程语言:
java必问的那些,GC算法,多线程(最好有多线程项目,会是亮点)
二面完个人感觉很差,因为网络那块的知识感觉被虐惨了,但是数据结构方面问的其实不难,感觉复习的时候复习到树那块的知识就足够了。算法部分推荐大家看july的《编程之法》,不多,很系统。
- 三面
三面基本上没有问技术,问了两个智力题,然后就问了下实习时间,介绍了下他们做的内容,以及自己要去的话会做啥等等。但是由于自己的时间问题,不能满足他们实习6个月的要求,所以很遗憾,最终没能去成。
二 、某一线互联网机器学习岗面试总结(一轮游)
机器学习岗还是很有挑战性性的,对机器学习算法理论要求比较高。这次面试主要围绕两个大数据竞赛,问了很多比赛中模型的细节,穿插着问了常用的分类、聚类模型原理、适用场景等问题。由于是第一次面算法岗,理论部分准备的不是特别充分,导致一轮被挂,没有觉得遗憾。以下是建议:
对常用模型要有熟悉的理解,从理论到应用,从推导公式,到深入理解,一个环节都不能少。要熟悉的理论知识:决策树、贝叶斯、逻辑回归、RF、GBDT、xgboost、KNN、k-means、adboost,甚至正则项L0、L1、L2的作用。
下面说说面试中被问到的:
决策树:信息增益、信息增益率、GINI系数。
信息增益用来度量属性划分样本的能力,信息增益越大,树的划分情况越好,越简洁,高度越低。
信息增益率:信息增益比上分裂信息熵,为了解决信息增益作为衡量指标的一个缺点(参考jiawei han那本书)
gini系数:用来度量分布不均匀性(不纯),总的类别越杂乱,gini指数越大,所以要找最小gini指标。
贝叶斯:贝叶斯原理,朴素贝叶斯。注意若某属性A是连续值的情况,gini系数和信息增益都如何处理。
贝叶斯定理:
朴素贝叶斯: 掌握某属性是连续值情况如何处理(高斯分布),遇到0概率值怎么办(拉普拉斯校准)。若属性之间不是相互独立的怎么办?(贝叶斯网络)
k-means缺陷,knn如何制定k,kd树原理。
L0、L1、L2范式
参照下面两篇博客:
http://blog.csdn.net/zouxy09/article/details/24971995/
http://blog.csdn.net/vividonly/article/details/50723852
三 、某小公司机器学习岗面试总结(internship)
这家面的是一家小公司,由于不是前两场电话面试,而是face-to-face,所以问的更具体一些。
主要还是问了天池的竞赛,不过又细化到了python下scikit-learn包API如何调用、参数如何设置等问题,当然RF等模型原理还是少不了问的,还问了模型的输入和输出等。日后我会整理出一篇关于天池竞赛思路的博客,以便下次面试使用。还有C++的多继承的缺点,java为什么要有接口。剩下的就是白板面试,现场写算法。总而言之,face-to-face问的更细,问的也最久,虽然是小公司,但是面试压力还是挺大的。
最后,祝愿大家能够不断努力,证明自己,找到自己喜欢的岗位。