2017-我的秋招之路:机器学习/算法工程师(含大量面经)

本博文已经发布在牛客网上的讨论区:
https://www.nowcoder.com/discuss/61907

前言:

从今年的8月1号正式开启秋招到现在,过去三个多月了,发生了很多事情,经历了N多场笔试和面试,深深感慨到本硕双非的学生找算法岗的艰辛。。。,当经过了8、9月份的种种面试挂掉后,终于从十月下旬陆续收到了几个offer,而且其中还有自己喜欢的公司,不得不感慨那句《极限挑战》的结束语“这,就是,命!”

奇怪的数字:

对于我的整个秋招情况,有下面几组数据,我感觉很有意思,而且感觉和自然数e有关:

  • 发送的申请内推邮件: 100多封邮件
  • 秋招期间投递的数量:120多家公司
  • 收到笔试的公司数量:43家左右
  • 收到面试的公司数量:18家=13家+5家(内推无笔试)
  • 收到offer 的公司数量:5家左右

    如果仔细对比一下,不难发现,从投递的公司数量120一直到收到offer的数量呈现一个递减的趋势,关键这还是一个等比数列,递减的倍数(公比)大约是1/e=0.368……呃。。。好诡异的数字,感觉这不是个巧合,看来我们普通人找工作还是符合自然规律的吧

笔面试经验浅谈:

1、发现还是走实习转正最方便,因为整个实验室他们全部都是实习转正,他们要么去的百度,要么去的滴滴,不管是公司平台还是年薪,都过那些985的学生,所以秋招期间整个实验室基本就我自己找工作。。
2、找内推,渠道:师兄师姐,相关微信公众号,北邮人和水木社区论坛,牛客网等等。因为只有进入面试才能有机会获得offer,可惜今年许多公司连内推都要先笔试,我擦嘞。。。,但是个别公司歧视学校,尤其是我们本硕双非的学校,连笔试都不给我机会的公司:华为,网易,唯品会,迅雷。。。
3、笔试:不多说,只能刷题吧,牛客网和赛码网都行,因为今年所有公司选择的笔试平台数量顺序大致是:牛客网,赛码网,AMCAT,微测网。。还是建议刷牛客,上面讨论区的活跃率很高。
关于机器学习方面的话:

  1. 书:理论方面李航的《统计学习方法》、周志华的《机器学习》、《深度学习》
  2. 实践方面:《机器学习实战》《利用python进行数据分析》、hadoop、spark、TensorFlow等等。
  3. 视频:吴恩达的<机器学习><深度学习>
  4. 博客:其实都差不多,随便搜就行,还是建议多看书、视频和敲代码。

4、面试:这就尴尬了,offer=实力+运气,缺一不可。但是面试经验还是很重要的,我是面试挂了十几家公司后才摸清了面试官套路,然后后续的其他公司的面试就开始反击了。。。但是有的面试官很奇葩了,这个时候你就得怼回去了,上去就一个字,干!

我的面试情况和结果:

按照面试时间顺序,没给结果的我也归档为挂

  1. 便利蜂(内推,二面挂)
  2. 链家(内推,一面挂)
  3. 滴滴(内推,二面后没给结果,挂)
  4. 百度(校招,一面挂)
  5. 云脑科技(内推,一面挂)
  6. 中兴(校招,二面后没给结果,挂)
  7. 京东(校招,一面挂)
  8. 完美世界(内推,一面挂)
  9. 苏宁(内推,一面技术,进入offer池)
  10. 乐信(校招,两面技术+一面HR后给了offer)
  11. 新浪(校招,一面挂)
  12. 58到家(线下校招,二面挂)
  13. VIPKID(线下校招,二面技术后给offer)
  14. 美团(三面技术+HR面后给offer)
  15. 去哪儿(校招,一面挂)
  16. 凤凰(校招,三面技术+HR面,给了offer)
  17. 瓜子二手车(校招,一面技术,拒绝了后续面试)
  18. 知乎(校招,三面技术,等hr面中)

    那些线下的不知名公司的面试,还有一个特殊的自荐面试,我就不列举了,反正各种面试加起来应该超过了二十几家公司。这里我想吐槽一下360和京东的面试,360今年雇的中华英才网来安排面试,那叫一个混乱,说好的给改内推面试时间,然后就没有然后了,连校招也不让参加!还有京东,它今年完全是玄学面试,各种坑逼,搞的进入十月份,大量学生违约,尤其京东物流开始疯狂补招,不,应该说是直接补招发offer。。

2017的应届算法薪资情况:

这个话题有点敏感,但是学生还是应该了解行情的,网上说今年应届算法岗的年薪批发价是30W,呃。。。这个我不敢肯定,但是25W的话,我还是承认的。关于批发价,北方的公司大概分这么几类:
1、普通互联网公司:15*15
2、滴滴,今日头条,爱奇艺,新浪等:20*(15-16)
3、百度,美团等:17*14.6和16.5*15.5约等于25w
具体的薪资,有个薪资网站,大家可以看下:offershows

所以整体上看,除了个别加班严重或者融资较多的公司批发价是30W。其他不管是bat还是普通互联网公司,年薪大都是25W,除非你是sp的offer,那样的话年薪>30W,可惜我们大都是普通人。

我的面经:

便利蜂 一面(内推无笔试,北京公司面试,2017.8.14,40min)
1、问实习项目
2、特征工程做的有哪些?非线性可分的情况怎么处理的?
3、SVM的核函数了解多少?
4、L1与L2区别?L1为啥具有稀疏性?
5、xgboost的原理
6、sigmoid函数的导函数的取值范围是多少?其实就是一元二次方程的y值范围,0-1/4

便利蜂 二面(电话面试,2017.8.24,15min)
1、 实习内容:数据之间的关系和特征?
2、 Python中协成的概念,即微线程,具体可以看廖雪峯的网站
3、 C++中vector增删改的时间复杂度,O(1),O(n),O(n)
4、 MySQL中索引用的什么数据结构?B-Tree或B+Tree
5、 Hash_table的底层是什么实现的?拉链法,数组+链表
6、 HBase的列式存储解释
7、 面试官建议多注重工程方面的能力,全程不问机器学习方面的问题

链家 一面(内推笔试过后,北京公司面,2017.8.27,40min)
1、 面试前全体做五道编程题:
1数组中出现次数超过一半的数
2括号匹配
3一串珠不同颜色,求包含所有颜色的最短子串
4从日志中找出IP出现次数超过1024次的恶意IP
2、 最小二乘与极大似然函数的关系?从概率统计的角度处理线性回归并在似然概率为高斯函数的假设下同最小二乘简历了联系
3、 LR为啥是个线性模型?本质就是线性的,只是特征到结果映射用的是sigmoid函数,或者说回归边界是线性的,即P(Y=1|x)=P(Y=0|x)时有W*x=0
4、 Hadoop中MR是怎么实现联表查询的?
5、 分类的评价标准,准确度,AUC,召回率等等
6、 有的逻辑回归损失函数中为啥要加-1*m
7、 欠拟合的解决方法?模型简单,加深神经网络,svm用核函数等等
8、 L2正则的本质?限制解空间范围,缩小解空间,控制模型复杂度
9、 SVM引入核函数本质?提高维度,增加模型复杂度

滴滴校招 (内推笔试后一面,牛客视频面,2017.9.12,45min)
1、 介绍实验室的项目
2、 介绍xgboost、gbdt、rf的区别
3、 树模型的特征选择中除了信息增益、信息增益比、基尼指数这三个外,还有哪些?
4、 Sklearn中树模型输出的特征重要程度是本身的还是百分比?
5、 介绍下SVM以及它的核函数
6、 熟悉FM算法不?
7、 算法题:两个链表的第一个公共节点

滴滴校招 (二面,牛客视频面,2017.9.12,15min)
1、 面试官一直看时间,感觉就是为了走个过场
2、 介绍下实验室项目
3、 进程和线程的区别?
4、 HBase数据库的优点?
5、 闲聊。。。你想从事哪方面的算法?c++用了几年?有啥问我的吗?我是做路径优化的

云脑科技 (散招,AI研发工程师,现场一面,2017.9.14, 5min?)
1、 到公司后先做一道题,一个小时之内做出来:
输入:今天,有,很多,笔试
昨天,“全运会,比赛”,结束了
明天,“不知,”“有多少笔试”“”
输出:今天 有 很多 笔试
昨天 全运会,比赛 结束了
明天 不知,“有多少笔试”
输出与输入的关系,即句子中有逗号的话,则用“”包住;有“”的话,先用“”将其包住,再用“”将其所在部分包住
2、 做完笔试,面试官来了,看了下代码,说你写的代码不是我想要的,谢谢您今天来北京面试,WTF ?!

中兴 (一面基础面,天津晋滨国际大酒店,2017.9.18,20min)
1、 两个面试官,一个大叔,一个女的,貌似领导级别
2、 问实习项目,重点关注特征工程和模型选择方面,为啥用深度学习,当时调参的具体数据是多少?多层的神经网络有没有用GPU?
3、 有啥问我们的么?我们主要在天津做AI方面,涉及金融,比较缺人(其实是缺985。。)

中兴 (二面综合面,天津晋滨国际大酒店,2017.9.19,20min)
1、 两个很年轻的面试官小哥,来自北京燕郊那儿的
2、 全程不问任何技术,聊人生,性格怎样,喜欢看啥书,打游戏不?本科为啥学的数学?blabla。。。
3、 有啥问我们的没?我们来自北京燕郊那儿的,业务主要是通信研发,无算法岗位,且他们主要用c

京东,玄学招人 (一面挂,北京海润艾丽华酒店,2017.9.18,20min)
1、 自我介绍,全程不写代码。。。
2、 聊实习项目,特征工程,模型选择,项目中的细节,你是如何选择算法模型的?效果如何?
3、 重点来了,你有什么问我的么?哦,我们是无人机部门,涉及到视觉,路径规划,通信方面的算法,基本没有传统机器学习算法业务,WTF?!
完美世界 (数据开发工程师?一面挂,完美世界大厦现场面,2017.9.19,30min)
1、 两个面试官,其中一个主要负责问
2、 介绍实习项目,怎么判断特征的重要性?rf与gbdt的区别讲下?
3、 对实验室的项目丝毫不感兴趣,面试官果然不是做算法的。。。
4、 算法题:两个数字链表求和,将结果也存到一个链表里面,注意相加超10时进位就行

苏宁 (一面,天大现场面试,2017.9.21,70min)
1、 是一个年龄不小的面试官,貌似经理或者总监
2、 自我介绍+聊实习项目
3、 RF与xgboost的区别?怎样选取的特征?如何判断这些特征的重要程度?最后RF的层数和深度是多少?
4、 还用了深层神经网络?几层?用GPU没?特征维度到底多少?服务器配置?啥?你能把全部数据放进内存?
5、 有啥问我的没?我是搜索部门的,即所有涉及搜索相关的业务。。。

乐信 (一面,牛客视频面试,2017.9.25,40min)
1、 自我介绍,介绍实验室项目,发表的论文内容
2、 关联规则中,置信度和支持度的概念?
3、 MySQL中MYISAM和InnoDB的区别
4、 LR,svm,rf等算法的区别
5、 模型评价指标,解释AUC,准确率和召回率
6、 对于同一个数据,怎样根据AUC判断模型的好坏?数据?没听懂。。。
7、 介绍实习的项目,服务器配置
8、 有啥问我的么?我们是大数据部门,数据仓库、分析、算法,涉及各种与金融相关的业务

乐信 (二面,牛客视频面试,2017.9.28,34min) 10.17晚上HR电话直接给了offer
1、 女面试官?后来才知是女主管。。全程没有问技术。。
2、 讲实习经历,为啥不留在实习公司呢?
3、 你遇到的问题,是如何解决的?
4、 介绍了部门,同一面面试官所介绍的

新浪门户 (一面,新浪大厦,2017.10.10,40min)
1、 很严肃的一个面试官,感觉他面试了很多人的样纸,不让自我介绍,有点小傲娇的样纸。。
2、 讨论实验室的项目
3、 介绍LR,为啥用的是似然函数不用最小二乘?当用lr时,特征中的某些值很大,意味着这个特征重要程度很高?对吗?不对,用lr时需要对特征进行离散化。。。
4、 L1和L2正则的区别?
5、 树模型中,特征选择方法有哪些?ID3和C4.5分裂后,节点的信息熵是变大还是变小?变小
6、 RF和gbdt的区别
7、 介绍下深度学习,CNN中的卷积和池化
8、 Hadoop中shuffle过程
9、 有啥问我的么?我是新浪手机客户端部门那儿的,主要做推荐等等

58到家(一面,天大现场面,2017.10.12,1h)
1、 很年轻的面试官,感觉面试经验不足,大部分时间是我讲。。。
2、 项目期间遇到的问题,怎么解决的?
3、 为啥你的svm训练起来那么慢?
4、 了解贝叶斯不?它的应用场景都有哪些?
5、 知道哪些深度学习的框架?
6、 网络分几层?TCP和UDP区别?写个快排吧
7、 场景题:一个10T的文本,一个10M的文本,从大文本中找出与小文本中相似度大于80%的文本,提示,用SameHash
8、 我们是58速运部门的,主要做路径优化和推荐

58到家(二面,天大现场面,2017.10.12,40min)
1、 这个面试官是58家政部门的
2、 同一面,详细介绍了下实习项目,从特征工程到最后的模型融合
3、 场景题:北京市所有小区的客户发出家政请求的可能性(回归问题);或者从家政的全部业务流程中找出一个具体场景进行分析:家政阿姨接到派单通知后,进行家政服务的路径选择,可阿姨一天顶多服务2-3个家庭,该如何派单?
4、 讨论之前的笔试题编程题:最短回文串,但是题目中有要求只能向字符串的末尾插入字符串,使得新字符串是最短的回文串,不是向任意位置插入。。。

百度 (一面,百度大厦C座,2017.10.15,1h)
1、 很年轻的面试官,问的很广,感觉回答出来了80%,依然没过
2、 介绍实验室项目,是怎样用的KNN进行的预测
3、 XGBoost与RF的区别
4、 RF的随机性体现在哪里?它的代码中输出的特征重要程度是怎么进行计算的?
5、 实习项目中的评价标准是什么?accuracy和precision、recall这些一样吗?AUC的解释
6、 了解哪些损失函数?区别是啥?
7、 线性模型为何用的最小二乘作为损失函数而不用似然函数或者交叉熵?
8、 了解哪些深度学习模型?keras底层用TensorFlow和theano时,代码有何不同?TensorFlow原理、流程图,session是啥?
9、 编程题:两个数组的最长公共子序列和最长递增子序列,用DP写出来后,让继续优化。。。

陌陌 (一面,望京soho,2017.10.16,1h)
1、 介绍实验室项目,对问题是回归还是分类进行了详细探讨。。。
2、 LR与SVM的区别
3、 GBDT与XGBoost的区别?
4、 实习期间遇到的问题,是怎么解决的?
5、 了解FM吗?GBDT的数据在使用前有什么需要注意的吗?
6、 做过广告点击率预估没?LR+GBDT和GBDT+FM怎么结合的知道不?

陌陌 (二面,望京soho,2017.10.16,15min)
1、 LR与GBDT的结合了解不
2、 智力算法题(说是它的校招笔试题):
f(x)=p,y=0; 1-p,y=1 将这个概率函数转换为T(x)=1/2, y=0或者y=1
提示:f(x)执行四次可能出现的结果有0,0:p^2 0,1:p*(-1p) 1,0:p*(1-p) 1,1(1-p)^2
里面有两次结果的概率是一样的
陌陌 (HR面,望京soho,2017.10.16,20min)
1、 来一很结实的HR小哥哥。。。很少看见男的HR。。
2、 说说自己的优缺点
3、 喜欢啥样的老板和同事
4、 期望薪资?我们发15个月的,还有加班费
5、 如果有其他公司的offer,你会怎么选

VIPKID (一二面,天大现场面,2017.10.17,40+20min)
1、 一面试官是做java后端开发的,有点尬聊。。
2、 简单介绍下实习项目,解释了rf和gbdt
3、 项目中遇到的问题,怎么解决的?
4、 了解各种大数据框架不?呵呵哒。。。。
5、 二面面试官貌似主管或者经理级别
6、 对公司的业务进行了详细的介绍,并展示了团队在硅谷的人员。。
7、 场景题:如何向小学生推荐或者预测适合的外教?怎样准备数据和算法?
8、 别人二面后直接HR面,我面后,被告知加一面,等待北京算法负责人电面,什么鬼。。。

美团 (一面,天津维也纳酒店津南区,2017.10.18,40min)
1、 总的来说,美团的面试官还是很好的,循循善诱,技术不是太差的话,应该都能过
2、 介绍了实习项目,数据特征怎样选择的?怎样表示的?模型的选择?当时的模型参数是多少?结果效果如何?
3、 RF与GBDT的区别?为啥你要用集成的方法而不用准确度更高的算法模型?
4、 推导LR
5、 编程题:删除链表中倒数第K个节点,写出来后,面试官加难度:如果是个带环的链表呢?也就是先找到环的入口,再注意边界条件就行
6、 有什么问我的么?我们是风控部门,主要涉及资金、账号安全,作弊,刷单,反爬虫等

美团 (二面,天津维也纳酒店津南区,2017.10.18,30min)
1、 纳尼?!美女面试官!秋招期间碰到的唯一一个女的算法面试官,还是美女。。。。
2、 介绍实验室项目,交流下预测那里怎么做的
3、 为啥LR的输入特征一般是离散的而不是连续的?
4、 了解各种优化算法不?梯度下降和随机梯度下降的区别?牛顿法和拟牛顿法的区别?为啥提出拟牛顿?因为牛顿法涉及海塞矩阵,它的逆矩阵求解很麻烦
5、 KNN的使用场景
6、 智力题:
1<=a,b<=99,甲手里有a+b的结果,乙手里有a*b的值,两人目前都不知道a和b的值,两人对话如下:
1甲:你肯定不知道a,b的值是多少
2乙:我好像知道了
3甲:我好像也知道了
问:a,b的值是多少
思路:对话1说明a+b的可能性有多种组合,其对应的乘积也有多种组合,形成两个集合S和T
对话2说明乙根据手里的乘积结果,可以得出S和T这两个集合的交集是唯一的
对话3说明甲猜到了乙的想法,故也能猜出交集唯一。。。

美团 (三面,天津维也纳酒店津南区,2017.10.18,30min)
1、 这个面试官貌似是一总监或者技术经理
2、 介绍实习项目,和上面的类似
3、 项目期间遇到的问题以及怎么解决的?
4、 从数学角度和你的个人理解完整推导和讲解LR
5、 又仔细讲了下风控部门的主要业务,

美团 (HR面,天津维也纳酒店津南区,2017.10.18,20min)
1、 自我评价,自己的优缺点
2、 工作中遇到的问题怎么解决的
3、 家庭对你的影响
4、 遇到的最遗憾的事情,最有成就的事情,最后悔的事情,what?!这是要闹哪样。。。
5、 朋友和同事对你的评价

去哪儿(开发工程师?岗匹配度严重不符,一面,2017.10.23,30min)
1、 去哪儿没有纯算法岗么?官网也是把算法归档为开发工程师里面去了。。。
2、 面试官是一个做后天开发和存储的,注定要尬聊!
3、 自我介绍,简历上的机器学习项目一个都不细问,刚推了两个公式,打断我停止。。。
4、 本科数学?计算机基础知识会吗?TCP与UDP区别,三次握手,四次挥手解释下?
5、 知道哪些linux命令,知道多少说多少
6、 选个语言,python的数据结构有哪些?都有哪些特性?但是这面试官不搞python,对我说的丝毫不感冒
7、 数据库了解多少?mysql的引擎InnoDB是怎么实现的?
8、 场景题1:如何针对邮箱中用户名和手机号的匹配和存储,实现以下功能:
1> 数据量很大,存储方案怎么设计
2> 根据用户名快速检索出对应的手机号
3> 如何保证用户名的唯一性
场景题2:模拟高德地图或者百度地图中,求两地间的最短路径?只考虑公路这一种情况,没清楚面试这是搞哪样。。。

凤凰网 (一二三面试+HR面,北京中轻大厦A座16层 ,2017.10.25,2.8h)
1、 一面貌似来的是数据分析的年轻面试官。。
2、 自我介绍+实验室项目
3、 实习项目,主要集中于特征工程那里
4、 Linux 命令知道多少?网络基础呢?TCP和UDP的区别?
5、 编程题:数组A[N+1]中每个数据的都是1<=x<=N,其中只有一个数字是重复的,请找出来。使用一些技巧性的方法,比如根据值找对应索引位置,将其变为负数,依次这样,知道发现要变的那个已经是负数,找到了。。。
6、 二面了,好高大的年轻面试官,而且还是懂点算法的
7、 解释rf,xgboost,gbdt的区别
8、 编程题:从数组A中找出所有和为S的两个数的索引,leetcode 原题。。。
1、三面是经理,上来问了问特征方面的事儿,尤其是特征组合,详细介绍了下部门涉及的业务,数据量很大,可以开展各种业务,推荐,视频识别等等
1、HR面就厉害了啊,微胖的女HR小姐姐屌屌的样纸,上来就说:“我们给不了你这个期望薪资,我们这儿每天好多985的来排队面试,他们都还能来提前实习”(WTF,看不起我这天津的双非,呃。。。好像大都看不起。。)

瓜子二手车 (笔面试?,微信 ,2017.10.27,1h)
1、 奇怪的面试,本以为是面试,谁知变成了远程在线笔试。。
2、 微信发来两个算法编程题:
1> 输入一个整数,反转输出:比如输入1234,然后输出4321。我给的答案。。

2> 最大合数的质子分解,比如输入20,输出2,2,5
3、 笔试通过后,约的11.03天大面试,拒绝了。。。

知乎(一二面,微信 ,2017.11.04,2h)
1、 又是微信?搞不懂了。。。
2、 一面面试官让简单自我介绍后,不问简历内容!直接撸代码。。
1> 一个大小是N-1的数组,所有数字范围是1<=x<=N,请找出缺失的那个数字。提示:求出当前数组的和,然后根据1到N的求和公式,两者相减。。
2> 求无序数组的中位数
3> 数组中出现次数超过一半的数字:剑指offer上的原题
4> 求最长的无重复字母的子串
5> 将一个二维的n*n的数组,逆转90度,空间复杂度是O(1)。提示:剥洋葱般,一圈圈的从外向内逆转90度
3、 二面面试官终于让说简历内容了,先简单介绍了下实习内容
4、 数据的特征怎么处理的?用了哪些算法模型?
5、 RF和GBDT的区别?二者的优化目标是什么?
6、 撸代码:
顺时针打印矩阵:剑指offer上的原题
7、11.10三面面试官,50min
8、上来就先写两道算法题:
1>一个m*n的矩阵,求顺时针矩阵的最后一个数字
2>一个大小为N的数组,里面的值代表的是股价,求一次买入卖出所能够求得最大收益?如果是两次买入卖出呢?动态规划解决
参考的题目
9、聊了聊实习项目,特征工程和模型选择

点赞