首先需要说的是,百度每年8,9 月份时,会有一个内部员工的内推机会,这个时候论坛上会有
师兄师姐发贴说可以帮助内推,对于一个真正希望进入百度的同学来说,这个是最好的机会,
因为百度笔试每年都搞得声势很大,而从我身边来看,基本很少有经过百度笔试进入面试这一
环节的,而内推时师兄师姐会认真的看你的简历,这本身就是对你的简历的第一遍审查,所以
想进百度的学弟学妹们应该把握住这个机会。
我就是找论坛上的一个师姐内推的,后面也会提到,师姐的人真的很好,不但帮忙内推,还打
电话提醒我注册的注意事项等等,对于师姐,我也心存感激。9 月份内推后,是漫长的等待,
这个时候百度各个部门开始面试,各个部门的进度不一样,11 月初我接到第一面的时候,很多
别的部门已经开始发offer。
第一面是一个比看上去我年纪大一两岁的师兄,果然就像传说中的那样,穿个拖鞋就过来了。
见面后先说了下面试的流程,主要分三块,我先说说项目,他问项目相关的东西,然后就我感
兴趣的东西聊聊,最后我问他问题。我说好。
开始说项目,balabala 说了一堆,师兄不时打断,对细节发问,你觉得项目的技术难点啊什么的,
主要考察你对项目的把握,如果真的是你自己做的,这个应该很好应付。接着师兄对项目问一
些扩展性的问题,比如我的项目中有屏蔽平台硬件差异性的问题,我们提出了两个方案,他会
问,除了这个还有什么比较好的方案没有啊类似的,考察发散性思维。项目大概说了二十分钟,
说完,师兄问我对什么东西感兴趣,我们就聊什么。我心想果然牛,什么都懂,就说我对linux
内核比较感兴趣,可以聊内核的东西。师兄就问了下内核中内存管理的方式,问为什么有高端
内存啊,又问高端内存在线性地址中怎么映射的,又问了些页表的东西,还是问得比较深入。
接着师兄问了下OSI 七层模型,让从TCP 层开始往下讲,说了一堆,师兄点头表示满意。接着
师兄问一些web 方面的东西,我说不太了解,师兄点头也就没有多问。接着让写程序,之前感
觉百度算法会考很难,准备了一堆算法,这里师兄就叫写一个链表排序,心里一阵狂喜,很快
写了个O(n*n)的给他,
师兄又问可不可以降低复杂度,磨蹭了一下,磨出个O(nlogn)的给他, 师兄点头表示过关。问我对他有什么问题,我问了一下他们的工作状态以及主要的项目都是什
么方面,师兄说每天会加班到很晚,因为每个人手上都有很多活,但是成长的也很快。项目说
了一些,主要是内核方面,以及分布式服务器方面的,我都很感兴趣。双方握手道别,总之这
次面试感觉还是很好的,师兄很平易近人,面试就像朋友间的对话。
第二天就接到二面的通知,在说二面以前,先说两个小插曲。第一个小插曲是我在前台等待面
试的时候,发现百度的gg 们都喜欢抱着笔记本到处走,我开始不明白,以为他们是在测试无线
信号,后面才想通他们是在干嘛。料想在百度这样思想活跃的公司里,每天都会有很多想法,
每人都能发起一个会议,而每层的会议室又是有限的,所以百度的gg 们总是抱着笔记本到处抢
占会议室。说这些是想说,像百度这样活跃的气氛我很喜欢,之前也去过一个公司,感觉技术
部门死气沉沉,没有什么活力。另外,而相反百度的mm 很少这样,料想百度的mm 们都注意
保护自己的皮肤,不喜欢整天和辐射产品打交道。
另一个插曲是,我在前台等候时,看到一个哥们,其貌不扬,留个小胡子,过来前台来了句“你
好,我是来拿接收函的。”立马激起我敏感的神经,我才知道原来offer 的中文名叫接收函。然
后我就像哈巴狗一样伸着舌头目不转睛的注视着那个哥们,帅气的从人力手中拿过百度的offer,
然后潇洒的转身,目送他扬长而去,只留下我的一滩口水。这个时候面试我的人来了,我赶紧
吞了吞口水跟着进去。在去会议室的途中,我知道面试的面试官中有一个也是北邮的师兄,另
一个胖乎乎的,一看就是个高手,姑且称他大牛。
到了会议室坐定,大牛笑眯眯的开始发问,首先还是说项目。感觉百度对于你做过的项目真的
是很重视,我又开始balabala 说一堆,大牛中间不时打断,问细节,说完,大牛点点头,来了
句让我晕倒的话,“哦,就是这样啊,我还以为做了个很厉害的***呢。”大牛果然是大牛,一说
话就不一样。
说完项目,开始问技术,说看我简历上说对驱动了解,就直接问网卡驱动的原理。说完,又问linux
底下/dev 目录怎么根据设备的设备号进行设备管理,我直说不太明白这个问题,就照我的理解
说了设备号作用,系统怎么对设备进行发现的过程,以及设备驱动中怎么在/dev 目录下生成相
应的设备文件,大牛点点头。大牛接着问,说一下linux 里面的init 进程的作用,根文件系统,initrd
的作用等等,问得都是linux 下一些比较基础的问题,但是范围很广。
另外也有一些考察深度的问题,例如,让谈谈你做嵌入式linux 与桌面linux 的区别,这是个很
宽泛的问题,能谈到什么程度,就看你的功力了。大牛问了一堆,看来是想休息了,就对师兄
说了句让我晕倒的话,“来吧,这个是你的校友了,不要客气了,上吧”,师兄开始发问。
先问linux 中一些基础的问题,inode 作用什么的。接着问C,说有一个文件中很多ip 地址,怎
么样对其进行排序,让比如191.1.1.1 放在192.1.1.1 前面,如果数量很多的话用什么排序法。接
着师兄问了一些实际情景题,还记得的几个问题是
1 一个磁盘阵列,想一个算法,让其中一个磁盘坏了,能保证其中的数据不丢失。我对于磁盘
阵列完全不熟悉,当时一下就晕了。面试过程中,这样的情况会经常出现,遇到一个你摸不着
头脑的题,这个时候该怎么办呢?给大家说一个小技巧,这个时候你一定不能冷场,一旦冷场,
你就会感觉空气像凝固了一样,越想心里就越乱,越乱就越想不出答案。这个时候,应该主动
的问他问题,尝试着把这个摸不着边的问题一步步的限定到一个具体的情景中。比如这个问题,
你就可以问,需要几个磁盘啊,两个坏了的情况要不要考虑啊,总之,一步步的把场景具体化,
只要你不问磁盘圆的方的啊这样的问题都行。可是到最后,发现自己还是没头绪,那就直说不
会,不要瞎扯,尝试着去说一个完全不懂的东西,在懂行的人眼里是一件很可笑的事。在师兄
循循善诱下,我还是没头绪,最后直接说“我母鸡”。下来查了下,磁盘阵列里面有一个奇偶校
验盘的作用就是这个。
2 在一个局域网里面,如果两台电脑ip 什么的都设好了,但是互相之间就是连不上,问分析出
现什么问题。
说了几种情况,网关的问题,协议栈的问题,防火墙的问题,实在想不到有什么可能了,连网
线的问题也说了,这题感觉答得也不太好。
问到网络,大牛把话接过去,问TCP 协议中拥塞避免的机制,甚至让画出其中拥塞窗口变化曲
线,还好这个还比较熟。这个问题多次在面试中都被问到,凡是需要考察网络,TCP/IP 的地方,
光知道TCP 的三次握手是不够的,建议大家以”TCP,流量控制,拥塞避免”等为关键字google 一
下,最好再加一个”filetype:ppt ”,这样,对TCP 协议可以有一个初步的了解。
二人又你一言我一语的啪啦啪啦问得兴起,题目不太记得了,就在我渐渐感觉有些招架不住时,
大牛终于说,问完了,说两人要出去商量一下,我才长出了一口气,想着总算完了。
过了一会,师兄进来说,还有一个同事再面我一次,我的脚瞬间就软了,心想今天活着是走不
出百度这栋楼了。没想到,过一会师兄说那个同事请假没来,让我回去等通知,一周内答复。
于是我就回去虔诚的等待着,没想到两周后等来了thanks letter,给我打击很大。这件事也告诉
我保持平常心的重要性,对一个东西抱有越高的期望,对你的打击也越大。
在准备百度的过程中,我也收获到很多。每年百度的offer 给钱很多,属于顶级的,北邮今年有
进去的,但起码就我身边看来,数量还不如中科院与清华的学生。我试着总结一下,主要就是
两点:
1、编程能力、算法等基本功。算法是个很见功力的事情,看三年算法和看三个月(就像我这种
菜鸟)一眼就能看出差别。这方面,参加ACM 训练,看《算法导论》等经典书,都能让你在
找工作的过程中如虎添翼。
2、项目因素。我在中科院实习过一段时间,对比在中科院做的和在自己实验室做的项目,老实
说,实验室的项目根本拿不出手。北邮除了一些很牛逼的实验室外,其他的实验室可能都有这
样的问题。对于百度(只了解我面的系统部,别的部门是不是这样不知道)还是很看重项目经
验的。所以早一点去大公司实习,参与到实际的项目中,对你会是一个很大的帮助。那如果不
能实习,实验室有没有什么好项目的同学怎么办呢?参加开源项目! sourceforge,freshmeat 会
是你的良师益友,其实就sourceforge.net 就已经足够。就算下来几个你感兴趣的项目源代码,
看看人家官方的说明文档, 弄清楚项目架构流程什么的也很有帮助。另外多上上论坛,
Chinaunix,咱们北邮人的linux 版,做内核的话,可以加入到linux 内核开发者中文邮件列表,
起码能知道人们都在做什么,关心什么。
总而言之,我认为百度对你的考察其实很简单,就是看你够不够牛,这也是他们选人的标准,
当然,他们的待遇也对得起这样的标准。我觉得,能进百度的人,在进入前,基本就能知道自
己的能力大概在百度的要求范围之内。想进去的同学,就苦练算法,早做准备吧。...查看更多