Bard's Gallery

百度系统部面经

Bergwolf 我的大学

其实都过去半个月了,自己一直懒,没有写总结。。。

简单写一点吧。实验室师兄内推的,所以免去了笔试环节。内推的时候我以为至少会10月份再面试,心想着不急,还有十一长假可以准备呢,结果刚刚第二天就通知下周面试,着实让我急了一阵。不过还好,项目不是很紧,所以花了不少时间去准备,虽然准备的问题基本没有问到。。。

通知的下午2点普天7层面试,我到早了点,发短信找推荐我的师兄聊了会。师兄跟我特别强调自己会什么就说什么,不会就说不会,不要吹牛。这点我之前在看面经的时候也看到过。

一面是位很和蔼的GG,这天面试的人很多,我们就在一个花台旁边坐下来聊了起来。问的都是分布式上的东东,主要集中在DFS的设计上,说到了一些Google的DFS可以优化的地方。其他的就问了问环境变量是如何工作的,这个问题正好我准备到了,于是blabla一番。这时面试地点换到了10层。10层仍然没有位置,于是找了个空沙发两人坐着又blabla了一会。

一面结束后GG让我在那等一下,还有面试。哦,这里8一8百度的面试流程吧。之前我看的面经里面也有说到,一共是三面,一般来说三面一天面完,如果三个面试官都觉得可以的,就当场给offer,如果都觉得不行的话就当场据掉,如果意见不统一的话就进pending list。

二面是位JJ,也非常nice。一来就说我的background和他们的需求非常match,弄得我心里一阵感激。JJ上来也问分布式,简单blabla一番后,开始问项目。因为我有写对Linux文件系统比较熟悉,就问了几个文件系统相关的问题,如ext2/3/4的区别,ext4的数据块分布结构,ext3如何保证磁盘数据一致性,日志文件系统是否能够完全保证数据一致性等问题。完了还说部门有分布式和kernel两个组,问我想去那个组,能不能去实习,说如果能去实习的话对以后拿户口有帮助之类,心里再次泛起一阵感激。

二面结束后让我再等一下,还有三面。三面过来了两个GG,一看就知道是技术大牛的那种。前两面一直比较轻松,我心想这下危险了。三面从简历上的项目经历问起,这部分没什么问题,于是blabla。项目问完后就开始问内核,ext4的extent tree在磁盘上是什么数据结构。说实话这个问题我一直没考虑过。。。想了一会儿后放弃。。。出来之后才觉得自己当时傻了,简单画一画就知道是btree了。。。sigh。不过这只是开头,然后又问了ext2和ext3在块分配算法上有什么区别。在ext2分区上,命令touch a会让内核完成哪些操作,echo "hello" >> a又会完成哪些操作,for i in $(seq 10000);do echo "hello" >> a;done又会完成哪些操作。接着问ext4在这方面有什么改进,delayed allocator和以前的allocator有什么区别,有哪些好处和劣势,mballocator的分配算法等。还问了ext4的delayed allocator造成空文件的原因,这个问题以纠正我长久以来对delayed allocation的一个误区结束。这之后就没有什么问题了,kernel team的那位GG问我有没有什么要问的,我自我感觉表现的不怎么样,还是鼓起勇气问了下什么时候能出结果,GG说要等他们商量之后才知道。

三面完了之后又过来了一位帅GG,自我介绍中知道原来是系统部的技术经理,仰视ing。寒暄了一阵后GG说现在还决定不了,要到10月中旬hr部门才能发正式的offer。我心里一下就凉了,想完了,这下进waiting list了。GG也看出了我的表情变化,微笑着说不过现在可以给我一个口头的。想不到leader还挺会逗人的。。。之后还是问有没有什么问题,能不能去实习之类的。然后留了下联系方式,说有什么问题可以直接给他打电话,再次感激ing。然后leader送我出去,我不是很放心,出门的时候再次跟leader确认了一下,leader说应该没问题,自己才放心一些。

下电梯后给师兄发了个短信,说拿到口头offer了,改天请师兄吃饭。

Bergwolf
Everyday citizen, A gear