百度2013校招研发面经

三面之后一直在等,终于今天晚上等到了北京研发的offer,顺便把真实的面试情况记录在这里。


百度笔试:

百度研发的笔试不好做,三道基础题,三道算法题,一道大题是SQL。自我感觉不太好,最后得分是56,进面试是可以的。基础题里HTTP是网络的哪一层也写错了,第一题关于哈希算法的实现方式也感觉答错了


一面:
刚开始没有状态,面试官因为我是本科的缘故,就让我讲排序,思维也乱,叫我写快排,一下就写了一页纸,是一个很标准的quicksort的java类,毫无悬念。然后一题海量数据的题,我却因为ip要多少位表示给弄蒙了,前两次我都说32位,面试官看我底气不足,要我再好好想想,自己去玩了会电脑,之后我算出一次40,给跪了,最后还是坚定当然是32位,面试官来了一句,一个ip地址有多少位表示很困难吗,我无奈的,还好面试官也挺好,没有表现不耐烦或者放弃我,我还是理清思路,大数据还是分治,各份处理后归并或者最大堆排序,我是直接提出了最后用mapreduce做一次map和reduce,面试官可能没想到我会这么答,一直点着头,于是对我印象开始好转。问我为什么选择北京,聊我简历。之后又出了分布式文件系统存储文件的时候要几分冗余,我秒答三份,参照HDFS的存法,面试官看上去也还没准备好,题目也是他临时想的可能,所以要我说三份的好处坏处,这个追问其实很无力。之后又是一题分布式题,关于集群提供服务的负载均衡和对应一个ip的客户端尽量同一个做应答。我们探讨了比较多的存储记录的问题,我一直坚持用zookeeper,监控呀什么的,聊了比较久,面试官一边在完善自己出题的条件和目的,我也是随着他不怎么健全的问题一步步答清楚,至于每次需要之前的slave继续给提供过的客户提供服务,我最后说用一致性哈希来做,貌似是可行的,不知道面试官怎么觉得,反正他点头着也没有质问我什么。之后的聊天越来越轻松,呈现出主动要我询问百度情况的意思,我问了好几个问题,比较轻松的结束了一面。感觉是可以过的。


二面:
收到二面还是很开心的。早到了看到面试官在看我的试卷,我也看到我得了56分。还是先聊我的简历,问我进实验室,为什么不读研的问题,一面也问过我。做题的话是给了两个表,要做merge,要我定义合理的数据结构,合成一张新的表,像是join。我第一个念头是mapreduce可以解决,并说了下,他说我们不考虑大数据,我只是想你写个简单程序,其实我也知道他的意思,我就是想表现下我的反应,于是我就用hashmap来做了这件事情,写了十几分钟代码应该是有的,最后给他讲解了下,他表示赞同,快快过了第一题。第二题,来个算法的,求最长子数组最大和,只要这个max值就可以,这题见过,max正数的情况我写了个例子马上回忆起来并和面试官解释了,面试官问如果是负数呢,我一想的确这种方法只适合max非负,集中精神想了三分钟,想出了负数解决方案,在给面试官阐述的过程中完善了思路,面试官说能整合在一起吗,我就边说边把思路理的更清楚了,ok。接下去面试官不断从头至尾看我简历,不断找些问题,比如要我说说搜索引擎这个事当时怎么做的,java语言什么的。后来问你用的hashmap这个东西什么什么的,我就说hashmap和hashtable区别,前者线程不安全,代价比较小,还问我那用的时候要注意什么呢,我回答注意resize,可以事先设定个size初始化是最好的,避免自动resize不必要开销。二面感觉比一面顺利,没出什么岔子,最后问到面试官是凤巢的,顺便多问了些java工程师可以干的事,最近360黑百度广告什么的事。那时觉得三面可以是稳的。


三面:
终于到经理面,面试官看上去稍微成熟些,没有想象中那样,不过严肃多了。看我简历,我主动告知自己的求职意愿,还是hadoop相关,最好是基础架构方面,或者基于上面的应用,总之要能玩hadoop,还有云计算。面试前我准备很多东西,都没有机会讲,原因是讲到搜索引擎后,面试官来了兴趣,我感觉不对劲。问我为什么用lucene,lucene的索引怎么做的。我没有温习lucene文件里的索引机制,只能边扯api边回忆,因为时间太久了,面试官提醒我他需要我讲述索引怎么建,query过来我怎么处理接收的。最后他直接说,你实现一个建索引过程,尽量细致一些,查A空格B这样的请求,我当时就感到果然问的比较细,不好搞。正排转倒排,有些细节部分忘了,勉强把过程写了出来,然后开始讲查询词进来后返回top10怎么处理,他要问两个关键字呢,我说假设用户更侧重A,从A的每个top10里的文件到B的top10里去找,用加权计算权值,但是这样的做法是有不少问题的,他指出了几个问题,我改进,还是没有解决本质问题,他要我写下整个过程,我写了伪代码,我告诉自己要冷静,把思路讲清楚,不要慌的。面试官看我的方法改进的已经差不多了,说出了比较本质的问题,我听的80%理解,点头道对,没有多说,面试官还是比较耐心补充了下他的意见。我感觉这题答得悬,不顺利。之后他问的是综合性的问题,比如为什么想去北京,为什么喜欢hadoop,mapreduce做过多少实践,你讲一个你已经实现的目标或者你正在为那个目标努力实现的事,你都买什么技术性的书看,最近看的书讲讲最深刻的内容,为什么喜欢下棋,我顺带讲了四国军旗的合作配合,他看我讲的很开心,说你怎么讲hadoop的时候没那么开心呢,我说之前在讲正排转倒排,索引的事,没有讲hadoop,囧,我暗想我多想和你谈谈hadoop和云计算的啊。总之我想加一些我准备好的内容给他听也很难。最后他说我这没什么问题了,你有什么要问的吗,我第一反应是这句话来的比我想象的早了一些,我有些不安,这是被拒的节奏。我问了本科研究生的区别问题,他思考良久,“入职前有区别,入职后无区别”并说入职你本科生比研究生薪水低些,之后做的事一样的,我还表达了我的特长方向对公司的对口问题和就业现况,想表达百度对我的重要性。关于对我的评价,他说他也是请来把关,具体是那边需要的部门给不给你offer。临走时面试官还起身送我到门口,告诉我电梯方位,感觉最后比较客气,不一定妙。总结是三面比之前悬。
上一篇:[LeetCode] Solve the Equation 解方程


下一篇:atitit.解决SyntaxError: missing ] after element list"不个object 挡成个str eval ....