【一只渣硕算法菜鸟的面经】百度+京东 offer

一路跌跌撞撞终于收获offer,百度运维研发(数据挖掘),京东算法工程师,小米因为某些原因放弃offer,华为的offer还在路上.

本人本科某一流211文科学校,硕士末流985工科学校,非机器学习科班出生,实验室研究项目也跟机器学习无直接关系.一次偶然的机会被好友带到机器学习这个坑里来,从此走上了算法工程师这条不归路.作为climbers战队面经三部曲的第三曲,我也记下找实习找工作笔试面试以来的总结吧,更加倾向于未找工作的师弟师妹,其他详细的算法基础知识与面经请移步:
同时别忘了在右上角点个赞,谢过.

1.项目经历很重要

主要的项目经历呢就是参加数据挖掘竞赛,国内的像天池/datacastle/CCF等,国外的kaggle(比较学术,我没参加过),由于实验室没有数据挖掘相关的项目,那么参加比赛是一个很好的途径,事实上这些经历在我的面试中起到了很大的帮助.

由于春招表现不好学艺不精,以至于暑期实习只能去小公司实习.我是在一家创业公司做推荐算法实习生,学到蛮多东西.虽然在简历上看起来不是那么耀眼但至少面试时跟面试官有的聊.

说这么多就是一点-----项目很重要.

2.一定要准备

做算法工程师,后台同学要会的东西你一定也要会,同时还要懂机器学习方面的东西.这些包括但不限于编程语言,数据结构,操作系统,计算机网络,机器学习算法,神经网络深度学习,大数据框架比较常见.以下列举的内容是我在笔试面试中遇到比较多的,可能不全面或者有些许错误,我只起抛砖的作用,引玉的工作读者自己来吧.

编程语言 :java或者C++至少熟练掌握一个,虽然平时做数据挖掘可能用python但强烈不建议用python做笔试编程题.笔试选择题会有相关的基础知识考察(java垃圾回收,C++内存指针之类的)

数据结构 :八大排序(能在五分钟内手写,快排,归并,堆比较常见),数组,字符串(最大子串之类的),二叉树(二叉树遍历,递归非递归5分钟内手写),图(不太常见,深度优先广度优先得懂).....要刷题,不然笔试很难过.有很多刷题网站可以去,leetcode,lintcode,newcoder等.

操作系统 : 进程线程,进程间通信,同步异步阻塞非阻塞,段页,虚拟内存,堆栈,系统调度算法

计算机网络 :五层协议及对应层的协议,TCP/UDP区别,IP地址子网掩码网络号那些会计算,TCp的拥塞控制,TCP的三次握手四次释放,http/https的区别等.

机器学习算法 :KNN,决策树(ID3与C4.5区别,剪枝),NB(推导),LR(推导,梯度下降,牛顿法,拟牛顿法),SVM(推导,核函数,与LR的区别),EnsembleLearning(RF,GBDT,XGBoost原理,区别,实现),聚类(kmeans的原理,缺点,改进),CF(itemCF,userCF),文本处理(tfidf,word2vector).其他VC维,EM算法,KL距离,特征选择等等在笔试出现频次比较高.这里列举的只是我在简历中提到的以及面试中遇到的.

深度学习 :这块儿我不懂,但得了解一下

大数据框架 :hadoop,spark,分布式计算,关系型数据库,非关系型数据库,sql代码常见的至少得会写

(说实话以上任何一块儿内容足够精通的话找到的工作肯定比我好)

3.面经

微信 (处女面,内推,一面挂):

先给一小时写代码,大概有四个题目.然后面试官回来做面试,看一下代码问一些问题,epoll之类的.(我想说的是,我不会C++,耶不懂后台,可能想让我去做后台吧)

腾讯 :

一面:自我介绍,讲项目以及简历和项目中提到的技术点算法等,kmeans的原理优缺点(比较基础,根据简历准备就行)

二面:自我介绍,问项目,上文提到的机器学习算法问个遍,看什么书平时怎么学习

蚂蚁金服 :

一面:自我介绍,问项目,线程进程区别,Java垃圾回收机制等

二面:自我介绍,问项目,基本算法

三面:HR面,聊人生谈职业规划,公司文化等

四面:先问选择面java还是算法,选java,又问java基础还是java框架,选java基础,然后问了个:android里的layout继承自哪个类(汗),java异常类的父类

美团点评 (很正规,第一二面连续面,三四面第二天连续面):

一面:自我介绍,问项目算法,GBDT的代码实现等.手写代码:寻找第k大的数,能力题:蓄水池抽样算法

二面:自我介绍完,面试官的第一句话是:我们先做个题吧(紧张),已知某二叉树的先序遍历序列判断它是否是合法的二叉查找树.然后问项目,GBDT,XGBOOST,RF的区别与实现,LR推导,SVM推导.由于前面代码写的有bug,补加一道:二叉树的先序遍历非递归实现5分钟写完,能力题:一根棍子折三段能组成三角形的概率

三面:压力面,引导性的问点击率的改进:拉普拉斯平滑,给商家的信息判断所属商圈,取topK算法,代码实现(堆,partition两种实现),取top(mn,(m+k)n)算法比如:top(100,150)(至今不会,我当时答的先取150再取100-150)...面试官有个特点就是只要你回答问题他马上就是为什么怎么做,一直问下去

360搜索 :

一面:自我介绍,问项目针对项目提问,手写代码:带有权重的二叉树结点间的最大距离,topK算法实现

百度 (提前批,电话面):

一面:自我介绍,问项目算法,三次握手,慢开始错重传,机器学习用在什么地方

二面:自我介绍,项目介绍,职业规划,兴趣爱好

三面:对前两次面试给自己打分,职业规划,会什么技术,用过什么技术....(由于我擅长的是机器学习,而面试官是运维研发,可能他懂的我不会,我懂的他们不会吧,但又需要做机器学习的,所以没有问特别深入的基数问题)

最终是拿到百度运维研发工程师offer,把岗位从北京调整到深圳

小米 :

一面:问项目机器学习方面的基础知识,我没答上来的还用笔给我推导

二面:问一下项目,视频推荐怎么做,优缺点,atoi函数手写代码实现

三面:第一个现场面的女HR,人超好

京东 (笔试比较差,简历应该是被捞上来的):

一面:问项目,算法,java的反射机制(好久没看java了)

二面:问项目及项目中的技术,面试官介绍部门,问意愿.

三面:比较正规的HR面吧,鼻子为什么两个孔,讲一个三分钟的故事,有情节完整,怎么看待京东(经过他的提示我才搞懂他的意思,百度的技术,腾讯的产品,阿里的运营,京东是什么),怎么看待程序员中的鄙视链以及外界对程序员的调侃等

最终是拿到了京东深圳的算法工程师offer

华为 :
一面:项目介绍与基本概念解释,面试官对感兴趣的项目提问,其中问到一个项目他问开源了,我说上传代码到github,然后就把电脑挪过来让我登陆github,一行一行的看代码,同时提了一两个问题.可是他说他不懂java
二面:问家庭情况,对华为的了解,怎么看待华为的狼性文化(我当然说我愿意加班)

YY (挂的很疑惑):

一面:YY总部环境真的很不错,自我介绍问项目,看笔试题成绩,问mapreduce的四个步骤哪个花费时间最长,多个机器日志怎么统计(想考察kafka,hadoop HDFS,Streaming等),统计大文件出现频率最高的ID,shell命令统计文本中每句话出现的ID次数(awk,uniq,sort,wc)

(讲道理,我答的不错,等了五天没消息)

4.总结

以上就是我的粗鄙见解了,由于现在校招已基本结束,所以更加倾向于给来年找工作的师弟师妹们看,希望有用.再次求赞,嘻嘻

全部评论
请问你认识hzb么
点赞 回复 分享
发布于 2016-10-16 11:53
很好很强大
点赞 回复 分享
发布于 2016-10-16 11:59
所以楼主准备去哪个公司呢?
点赞 回复 分享
发布于 2016-10-16 12:07
这个队伍真赞啊~所以你们仨都去深圳哪个offer呢?百度和京东反而不太详细呢...
点赞 回复 分享
发布于 2016-10-16 12:48
对了我觉得你们应该分享一下做比赛的心得~~有技术博客吗?
点赞 回复 分享
发布于 2016-10-16 12:57
厉害了
点赞 回复 分享
发布于 2016-10-16 13:22
666
点赞 回复 分享
发布于 2016-10-16 15:11
YY还真是挺诡异的,这么厉害的人都挂?!
点赞 回复 分享
发布于 2016-10-16 15:36
正在投暑期实习,楼主厉害!
点赞 回复 分享
发布于 2017-03-01 11:53
楼主机器学习自学的?
点赞 回复 分享
发布于 2017-03-02 09:48
鼻子为什么两个孔呀
点赞 回复 分享
发布于 2019-07-29 11:31

相关推荐

70 273 评论
分享
牛客网
牛客企业服务