过程是这样的:
一轮技术面:
coding题目
(1)把IP地址转换成INT型存储(考察的位运算)
(2)给一个概率发生器p的概率是0,1-p的概率是1:如何构造一个0.5的概率发生器(简单概率问题)
机器学习题目:
(1)SVM推导过程
(2)Gradient Descent如何做并行化
(3)多线程问题
狼厂实习经历回顾,简单提问。
一轮完毕。(耗时大概50分钟)
二轮技术面:
简单看简历上的排名和成绩。
coding题目
(1)如何求n!的***一个非零位的数字(假设n是很大的数字,n!无法计算)
(2)写一个简单的map reduce job完成score统计和排序(我用python脚本写的)
(3)给定一个数轴,数轴上有间距不等的若干个点;再给定一个长度固定的标尺;问这个长度固定的标尺最多能囊括数轴上几个点(要求O(n)时间复杂度,O(1)空间复杂度)
机器学习题目
(1)Logistic Regression推导(很多细节)
(2)L1 L2正则化都是什么,怎么调参(感觉面试官非常关注细节,而且也懂细节)
(3)如何做LR模型学习的并行化
实验室做过的项目,以及实习做过的项目的面试
二轮完毕。(耗时大概50分钟)
三轮经理面:
经理貌似比较关心学校的排名和成绩(可能可以体现一个人的学习水平)
谈谈对本部门产品的理解和看法,有什么改进的。
什么时候能来实习,学校还有什么事情。
有什么需要问的(我主要关心部门发展的点以及近期发力的方向)
三轮面试完毕。(耗时20分钟)
整个面试过程,算上中间的休息,大概2个半钟头。
给我的感觉是狼厂的面试官非常专业敬业,但不会特别难为人。
(1)技术面的时候问我是否搞过ACM,我诚实相告没有搞过,面试官出的coding题目就侧重一些基础了,没有太难为人的。
(2)面试官对于一些细节比较在意,感觉是真心想考察一个人对知识掌握的是否透彻,并不是走马观花。
(3)补充一点,感觉面试的时候,所使用的语言并不是最关键的(当然,如果能match应聘部门的常用开发语言是***的了);除了能完成基本的算法coding,面试官还关心的是写代码的基本功(比如变量的命名、一些corner cases的处理是否全面)。