2014年秋季校招百度面经和阿里面经
2014年秋季校招百度面经和阿里面经
转载请注明出处:http://blog.****.net/lvsaixia/article/details/42274571
上一篇文章里我分享了中小型互联网公司的面试经验,总结得出企业所考察的能力和知识点。本文中我将继续分享我面试大型互联网公司的面试经验。欢迎广大读者一起探讨。希望你们在文章后面留下宝贵的意见。
百度面经(大数据)
笔试题:
1、hadoop和spart框架有哪些异同点?
2、编码实现二分查找?
3、单例模式的设计与编码实现?
4、现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,第二趟把偶数位的灯泡制反(也就是开了的关掉,关了的打开),第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着?
5、最大和查找问题,给定一个以为数组,求数组中最大连续和?(这个问题我记得不是很清楚了)
6、采用面向对象的思想,设计打麻将游戏?
面试题:
1、编程判断两个链表是否相交?
2、二维数组中的查找?
3、强制一致性和最终一致性的区别?
4、hash、btree、betmap索引的区别?
5、统计ip地址的访问次数?(要求速度要快)
6、一个魔方,转动四次,一个面最多有几种颜色?(一分钟内解答)
参加完百度笔试以后,自己感觉笔试题做得也不怎么好,过了几天都没有接到面试的通知,笔试肯定挂了。大概笔试过了4天左右,那天下午六点左右,接到百度面试的电话通知,说要我9点到**酒店参加百度的面试。先一天在网上查询了一下乘车路线,并在网上看了看别人的面试经验(主要是自己对于大数据这一块没怎么准备),一直搞到12点多才睡。第二天早上我起来得很早,大概搭了半个小时的车就到了面试地点。**酒店感觉倒是还挺好的——至少三星级以上。由于昨天接到电话的时候,忘记问在那间房参加面试了?我问了一下酒店大厅的前台,他们说要我们现在大厅等待。我在等的过程中面试大数据这个岗位的来了好几个。等了好久,说9点参加面试,结果快10点半才打电话叫我去**房间面试。
见到面试官以后,我先递了一份简历给面试官。他也没有看,放在一边,自己继续整理前一个面试者的东西。整理完以后就直接给我一支笔和一个草稿本,让我写出第一个题的代码。在我写代码的过程中,他给我拿了一瓶矿泉水。我代码写到一半的时候,他说你先给我讲解一下思路(可能是我写代码的速度有点慢)。我讲解了自己的解题思路,这个过程中没有考虑链表本身是否有环的情况。面试官问我如果本身有环要如何解决?我说先用方法判断是否有环,然后再判断两个是否相交。接下来的一些问题中,基本都是在谈实现的思想。中间我有些概念不是很清楚,我就反问了面试官,面试官给我解释了一下那些概念,然后我继续解答。最后,第六个题应该是面试官当场想出来的一个问题,其他题目应该都是题库里面的问题。我第一次的答案是4种颜色,然后面试官问我为什么是四种。在解释的过程中发现我把中心那一块的颜色给忘了加上去了。然后,就拍了一下脑袋说忘了加中间那一小块的颜色了。面试官笑了笑,整个面试结束,大概用了一个小时左右。
面试完以后,说回去等通知(我问了一般多久给通知)。自己感觉这次面试答得也还可以。两天过去了,没有接到通知我知道没戏了。
阿里面经(数据研发岗)
今年,阿里在八月底就进行了在线笔试。而我却因为不知道笔试的消息,错过了网上笔试。身边的小伙伴们去参加阿里的面试,令我羡慕不已。
10月中旬,下午5点左右接到一个来之杭州的电话,说是阿里巴巴公司,问我现在是否方便面试。我说可以,我先走到一个比较安静的地方,然后开始我的阿里第一面。先我做了一个自我介绍,主要从以下几个方面进行自我介绍:基本信息、自己的研究方向、取得的研究成果、实践成果和社团能力。然后,面试官就开始问我一些问题。第一个问题:’你自学过java和python,请简要说明这两种语言的区别?‘。我回答说:‘python是解释型语言,而java是编译型语言;pyton支持矩阵运算,而java不支持等’。接着问了我有没有搭建过hadoop平台,有没有使用hadoop平台做过实验。我说我自己搭建过hadoop全分布式平台,并且在平台上试验过。然后,我实验的一些细节和hadoop的一些实现技术。接着问我是不是了解hbase数据库。我说我只了解过hbase数据库,没有真正用过这个数据库。接下来又问了一个关于未来规划的问题。我回答说,我想成为一名数据研发师,同时讲述了为何要成为一名数据研发师,并充了一点,如果有机会,先搞软件开发了解一下业务也挺好的。面试最后,我问了一下面试官,接下来我要从那些方面做准备,整个面试还有那些环节。面试官给我解释了一下数据研发工程师所做的工作,同时也建议我好好规划一下未来,说第二面不久后就会进行。
一面完以后,感觉和面试官聊的还挺开兴的,过一面应该没有问题。我利用这一段时间好好复习了一下岗位所需求的专业技能,也准备了一个自我介绍,以前的自我介绍都是自己想到哪里就讲到哪里,感觉有时候总是忘记说一些关键的点。这一段时间,我经常会登陆阿里的校招官网查看自己的面试状态,大约过了2-3天,我的面试状态就变成一面通过。
二面:第一面后,过了两个星期。接到了二面的电话,此时,正好准备去天津参加全国研究生数学建模竞赛颁奖大会。想在出远门前先回一趟老家。回到家里,第二天,也是在下午4点半左右接到杭州打过来的电话,一猜可能就是阿里的面试电话。我自己找了一个安静的地方,接通了电话。开始也是自我介绍一下。基本和一面差不多。然后,面试官问了我一些项目中的知识。面试官说:‘你做过微信接口方面的开发工作,你们用微信的那些接口,它一共给用户提供了多少接口‘。第二个问题:’你对设计模式是否了解?‘我说,我对设计模式比较了解。接着面试官继续问:’‘那你列举一下有那些设计模式?’然后,我先介绍了一下设计模式,接着列举了大概七八种设计模式(PS:当时我也只想起这些设计模式了,一下子要全部记起来还是有难度)。最后,问了我一个关于迪杰斯特拉算法的用法。我答,迪杰斯特拉算法是用来求网络中的最短路径的算法,同时也讲解了一下书上的证明。然后,面试官继续问,迪杰斯特拉算法是否可以用来求最长路径。我说,这个我以前没有用过,我思考了片刻以后,说应该是可以用来求最长路径的,证明原理应该和求最短路径的方法一样(当时我也不是很确定)。最后,面试官问我有什么问题想问他的。我就说,关于阿里的基本情况,网上都可以查到到我就不问了。我就问一个网上查不到的问题:最近阿里在研究什么样的新产品。然后,他说新产品比较多,他也没有详细介绍。
二面我自己感觉答得不是很好。我回学校以后也时常登陆官网查看自己的面试状态。大概过了2-3天,状态变为了二面通过。二面过后,我就在网上查了一些关于阿里面试流程的东西。
三面:大概是中午11点半的时候,接到hr的面试电话。这一次,问的不是技术问题。一开始hr让我做了一个简短的自我介绍。接下来hr问,你做的这些项目中,那个项目是你觉得自己最有成就的。我回答说,这些项目对我来说都有不同的意义,我就选一个最近我做过的项目介绍一下。然后他问我这个项目中主要的问题是什么。我说是Web API,因为以前我们这个团队都没有开发过这类应用程序。接着他又问我们的团队有多大等问题。讲完项目以后,面试官又问了我的规划。我还是和答第一位面试官一样讲了我的规划。补充说到,其实我以前是打算读博的,所以这一年来发了5-6篇论文。面试官好像对我为什么不读博很感兴趣,就问了这个问题。我如实回答了她,一,家里的变故,我奶奶生病了,让我意识到我要早点赚钱,然后带他们出去玩一玩。二,在找工作这个过程中,让我意识到,直接工作其实也有一定的好处,博士毕业以后可能就是搞科研,进入高校或者研究所。那样的生活我不一定喜欢。接下来又问题,生活中最让你感到沮丧的事是什么?我回忆了一会儿,说应该是英语学习了,我说英语一直困扰这我,不过这么多年我一直没有放弃,现在英语水平也一般。面试官为鼓励我说,学习英语可能是你的兴趣不在这个上面,你其他方面都还不错。最后说:今天的面试到此结束了,过几天我们会联系你。
大概过了两天,我的面试状态变为了三面通过。过了大概一个星期的时候下午5点左右,我那时正好和我的队友在外面吃饭庆祝我们得了国家一等奖,接到杭州打过来的电话,我以为又要面试。没想到就问我有没有参加他们的交叉面试,然后,说我们发给你邮箱的东西先不要管,然后就关了。我用手机打开邮箱一看原来是意向书。给我了又拿回去了(我有点小小的失望)。
四面:天津领完奖回来,三面过后已经快两个星期了,怎么还没有接到阿里的面试电话。我就在网上查了一下信息,他们有一个网上人服务的窗口。我和她聊了一会,她说给我查一查,然后说,我的面试确实没有结束,并且说给我催一催。第二天,大概下午4点左右接到一个北京打过来的电话。一接他说是阿里巴巴面试,问我是不是有时间。我说又,然后就开始了我的第四面。开始和以往一样做了一个自我介绍。然后面试官问了我一些关于我所发表的论文里面的一些问题,说我研究服务生态系统有什么意义,采用什么方法研究的。自我介绍和这个问题的探讨大概就花掉了十几分钟。然后面试官又问我,你开发过微信公众号,那我问你,如果所有的微信用户在一起会有多少个团?我一下蒙了,我说团是什么意思。面试官给我解释了一下,团里面的成员和外界没有联系就叫做一个团。我说这个我没有研究过,不知道有多少个团。他接着问,那你觉得这个可以采用什么方法研究它。我想了想,说深度优先和宽度优先的变异算法,然后详细解释了一下如何实现。微信用户的联系就是一个图,这个问题所要做的就是统计图中有多少颗树就好了。等我解释完以后,面试官又问我,那深度优先算法是采用什么样的数据结构实现的。我思考了片刻以后,说应该是先进后出的数据结构栈。面试官又问我,你还有什么别的方法求团的数量吗。我说目前我还没有想到。最后我问他什么是交叉面试,我需要到杭州去参加面试吗。面试官回答说,这个就是交叉面试,你不需要到杭州参加面试了,那样话费太高了,又不方便。讲完以后,面试官说今天的面试就到此结束了。(我在天津回来的路上其实有北京打过来的电话,我没有接到,回拨总没有反应,不知哪个电话是不是阿里的交叉面试。)
这一次面试感觉面试过程中问的问题都比较灵活,感觉自己答的不是很好。这一次,一共才问了20分钟,以往一般都是30-40分钟。觉得自己挂了,面试完以后打开电脑一看,我的面试状态已经是四面通过了。
四面结束以后,过了1-2天,就接到hr给我发offer的电话了,这一次面试主要是谈薪资。同时,说过几天给我发意向书。等了几天,在圣诞节的那一天,收到了阿里邮件。我想这是圣诞节我收到的最好的礼物了。
总结:
经过这两次面试,我深刻感觉到,面试大公司还是需要一定的实力和准备。大公司考察的知识点和中小型公司所考察的知识点有所区别。对于大公司而言,主要考察面试者的算法,数据结构,编程思想和软件设计模式,以及应聘者的综合能力。笔者觉得最好的准备方法就是参考所应聘职位的要求,然后学习和准备相对应的知识。对每一个知识点有深入的理解,面试的时候就会如鱼得水。最后,笔者在一次强调,多动手,多在纸上写代码,因为有些公司是需要当场写代码的。如果不先练习,真要写的时候就会写得比较慢。同时,也要注意准备中小型公司的面试知识点和技巧。
大型公司面试准备,参考书目:
计算机基础知识
《面试宝典》
《数据结构》
《算法设计与分析》
《剑指offer》
《编程之美》
《设计模式》
转载请注明出处:http://blog.****.net/lvsaixia/article/details/42274571