早晨 8 点半,晨梦中接到了百度的面试通知……立马起床,打起精神,吃好早饭,回来啃书,看《编程之美》和《算法之道》。下午四点半面试,我就琢磨着还有 7 个小时左右,去掉 2 个小时吃饭、上网、发呆、上上厕所的时间,大概还有 5 个小时的时间,抱抱佛脚也够了。

下午 3 点换了身新行头,又去打印了几份简历,快四点在北门果断打上了出租,直奔者浙江百瑞大酒店。

面试官比较和蔼,还给我倒了杯水,贼感动……先是传统的自我介绍,我就开始耍无赖了:“简历上的东西我就不说了,我就单说说我的潜力和优势吧。您一边看简历我一边说。” 然后就开始扯淡,还扯上了电影《The Pursuit of Happyness》的句子……一通胡扯后,感觉面试官有些被我震住了,好了,气场来了就好办了……

接下来就是问简历上的东西,先问实习做的东西,这个比较熟悉,又是一通胡扯,包括 Shell、集群、Python、Nginx、负载均衡等等,反正就是有东西扯就行了,别停下来。

然后看我对 Linux 比较熟,就让我写个 Shell 脚本,要求是输出下面的三角多维数列到一个文件中:

0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5

这个应该比较简单,两分钟完成,没什么大问题。注意下 Shell Script 中的数据类型就行啦。

然后又给我出了个小题目:给定一个数组 A[n] ,给定一个数字 m ,求有多少对 [i, j] ,使得 A[i] + A[j] = m 。这道题目最初的思路肯定是排序,然后大小配对。第二个思路也是数组先排序,然后对 [1, m - 1] , [2, m - 2] 等进行二分查找……不过面试官还不算满意,又问我可不可以不经过排序。我左思右想,说了句那就用哈希表吧,直接线性查找就行了……貌似说对了,pass……其实我对哈希表不太熟的。

然后就问我了解哪些排序算法,各种排序算法有什么特点,我就把我知道的各种排序算法都吹了一通,单独考了快速排序——其实要让我当场写,我还真不一定写得出来。还有一些小问题,比如 Linux 常用的一些命令( dffreedu ),还有 OSI 七层参考模型, TCP 三次握手过程等等,剩下的我就想不起来了。

最后问我有没有什么要问的,我就问了三个问题:

  • 百度的中文搜索是全球第一、为啥英文搜索比不过 Google,这点百度自己怎么看
  • 百度内部用什么开发语言和开发工具
  • 我自己在这次面试中有哪些需要改进的部分

就这样,然后在 HR mm 的房间里看了会儿喜羊羊和灰太郎,就进了二面。

二面并没有问太多技术性的问题,感觉主要是聊天为主了,又深入问了我实习期间做的一些东西,然后问我为什么会选择运维而不是搜索算法部门,我就说自己没有竞赛基础,比不过大牛,而且也只是个本科而已,相反自己对 Linux 比较熟,也比较感兴趣。然后他就让我说说对运维的理解,我就 balabala 地吹了一通。又问我简历是用什么排版的…… 我说用 LaTeX。问我是不是一个心细的人,具体表现在哪里?我就自卖自夸地说自己是个“胆大如斗心细如针”的人……然后问我工作是否严谨,体现在哪些方面?我就说自己写代码都怎样加注释,为何简历用 LaTeX2e 排版等等……

后来也给我出了一道题目,感觉有点小学生脑筋急转弯的意思,说甲方乙方做一个游戏,总共是 100 个球,两人轮流取球,每次只能取走 1–5 个球,甲方先取,拿到最后一个球的那一方为胜利者。问甲方应该采取的方案才能保证自己的胜利……这个比较简单了,2 分钟就有思路了,简单叙述了下,pass。

然后就完了,告诉我回去等三面的通知,说在两天内就会结束,我说周三要去上交听一个会议,很多人应该都会去,他对我提供的这条信息表示了感谢,over。

大概就这样,感觉百度的面试官还是挺和蔼可亲的,不向有道那样,不看简历上来就把你整晕,那就挂了。

明天下午 2 点三面,希望我自己能早点定下来吧,我的心已经飘到东南亚啦。