时隔两年又一次面试腾讯。大三的时候面试的是微信后台的岗位,如今面试的是基础研究的岗位。岗位不太一样,不过初面的时候考的内容还是有点类似的。
online 笔试
在线笔试考的基本都是数学题,选择题都是跟一些跟统计相关的数学,简单的如求平均数之类的,这些个人感觉基本不用复习,纯粹提前准备好计算器就好了。比较困难的是一些线性代数相关的题目,大概本人学习线性代数的年代太久远了。。。主要是行列式,特征向量,特征值,正交之类的东西吧。。。 基本靠蒙。。。
后面的大题就是很开放式的题目,比如评价神经网络的优势与劣势之类的问题。初面
初面很考验知识面的广度。
机器学习方面,经典的机器学习十大算法基本都问得差不多。比如svm的原理,lr的推导,gbdt和random forest的区别,em算法的原理,knn的原理,k-means的原理,神经网络的推导和原理,Apriori算法(这个我没有答出来,因为基本没用过。。。)总而言之,搞机器学习研究的,这些都是必须要过一遍的。
非机器学习方面。
1,有Hadoop的原理(一开始听到被吓死了,以为要我去思考怎么实现一个Hadoop。。。其实就是考一下Hadoop的hdfs和mapreduce机制。。。如果你是大数据岗位的话,我建议还是要把Hadoop的基本设计模式过一遍吧。。。)
2,还有spark的原理,也是主要考一下基本的知识而已,比如rdd,rdd的转换之类的。
3,c++也问了一堆(楼主其实已经放弃c++很久了。。。然而腾讯偏爱c++),比如虚函数的虚指针表,虚函数和纯虚函数的区别,面向对面语言的三要素。。。
4,算法,基本就是排序,那些排序是稳定,空间时间复杂度是多少。。。这些东西基本面什么岗位都是需要背下的,特别是后台相关的岗位,其实后台架构每个公司都不一样,不会要求你会用什么框架,能面的一般都只有基础数据结构和算法了。
5,网络协议(我也不理解我一个面机器学习岗位的人为什么会被问到这个,不过以前面后台的时候也是被问的),万年不变的问法,网络协议有多少层,tcp的三次握手四次挥手之类的。
6,java(本人直接说不会,然后面试官就没问了。。。)
7,概率统计,问了一些简单的概率分布吧,比如贝塔分布,伽马分布,T分布,珀松分布,正态分布。。。
8,线性代数,特征值和特征向量。。。楼主也忘了,没有答上。。。
9,操作系统,文件系统的知识(楼主忘记问了什么了,反正楼主也不会。。。),线程和进场的区别
总而言之,前面问机器学习的时候简直对答如流,到了后面问的楼主都是差点要被问傻了,没想到面试一个基础研究岗位竟然被问了那么多其他的东西。。。不过好在问的都是没有什么深度,面试官好像也是主要想考验你知道不知道这些东西而已。总监面试
总监面试遇到之前在百度工作过的面试官,先聊了一下他自己的情况,然后拉了一下和我的关系(主要就是扯一些我们在百度认识的一些共同的人和他们的近况)。。。。
然后面试官要总结前面面试的小伙伴的面试结果,直接扔了我两道简单的算法题让我去做一下先,面试官的要求是尽快,其实潜台词大概是他总结完之后就要听我讲答案了吧。。。
第一题是问在一个方格图内,可以向右走和向上走,问从左下角走到右上角有多少种走法。 答案:c(m,n)
第二题就是用O(n)的时间复杂度,求出一个整数数组的和最大的子区间。 答案也不难,小伙伴们可以自己思考一下。
然后两道算法题做完。面试官看了一下我的简历,觉得我好想做过挺多工程类的机器学习项目(其实好像我的都不是。。。),就说不问基础知识了,直接拿他们部门正在做的项目,比如网络直播的个性化推荐要怎么做,从构造特征到模型建造,还有手Q的兴趣部落的帖子要怎么个性化归类,怎么个性化推荐。。。这里面其实被问得挺懵的。。。 不过答案是开放式的。面试官大概是在考楼主解决一个实际问题的思路吧,中间曾跟我说过我讲的方案他们都试过,效果不好,问我原因。。。(其实就是热门的主播就那几个,怎么个性化推荐,大家还是看那几个。。。哈哈哈哈哈)
然后又问了下我如何实现输入法的补全。。。(答案也是开放式的,小伙伴们可以自己思考一下,简单的可以是朴素贝叶斯,n-gram,有意思一下可以是基于rnn,lstm之类的模型)- hr面
聊人生
总的来说,这次面试已经淡定了很多,基本没有怎么复习就去面试,因为无论项目还是机器学习的基础知识,个人还是比较放心的。最后也没有什么意外地拿到了offer,准备6月初入职,深圳的小伙伴们一起来合租呀!