一切总算都尘埃落定了,从正式开始准备面试到现在确定公司整整五个月,中间经历的辛酸苦楚如今也终于有了回报。五个月里面真的勤勤恳恳的刷了很多题,也复习+预习了好多专业书,感觉五个月里面学到的东西比自己过去三年都要多。
三月下旬开始觉悟,四月正式开始看各种书包括数据结构、数据库、算法、操作系统、计算机网络等等,网上推荐的师兄推荐的乱七八糟买了不下十本书,有些精看有些扫视,好多被遗忘到角落里面的知识点都被一点点回忆了起来,到五月中旬的时候觉得光看书不行正式开始刷题,比较了下用户体验最后选择了Lintcode,花了一个半月的时间大概把里面的题目过了一遍就已经七月了,正好赶上几次内推就投了简历,不过虽然感觉自己看看书刷刷lintcode的题目水平已经提高了很多但是还是不够好,因为几次内推面试后的结果都不好。于是中途又上Lintcode好好研究了下之前刷过的但自己还没太掌握的题目,跑参考网站上研究了好一阵别人是怎么写代码理思路处理逻辑的,九月陆陆续续参加的很多公司面试结果总的来说还不错,有大的也有新的创业公司,虽然也有被拒的,但毕竟到手好几个自己满意的Offer,包括阿里、百度、有道等,最后因为个人实在是对阿里有比较大的憧憬,所以最终选择了阿里。关于阿里的面试过程实际上还是颇具点戏剧性的,这个接下来会另外开个贴好好讲讲,这里先按照顺序讲下百度的面试经历。
总的来说,百度给我的印象很好的,面试的时候面试官非常和蔼,面试过程中也不会一味的咄咄逼人,而是平和的和你交流他们自己的想法,一场面试下来可以学到很多东西。通过面试官,相信百度氛围一定很好。
百度的面试一共有三面,都是技术面,而且安排的非常紧凑。我当时三轮面试是连着三天进行的,都是当天面试,当晚确认面试通过并且约第二天的面试时间,这样还是很不错的。而且百度的Offer给的也快,面试完第三天就给我通知说过了给了Offer,效率真的很高。
百度面试的内容记得不是很全了,下面就简单说说我记得的
印象比较深的是简历里面的项目部分被翻来覆去的问了很多。一轮面试和二轮面试的面试官都花了很大的时间在问项目的事情,不过在第一轮的面试更偏向于问项目一些具体实施的技术问题,比如项目中一些技术难点是怎么克服的,怎么对现实情况进行建模的,用了什么结构,能否进一步降低算法复杂度等;在问到我一个涉及到网页和信息索引的项目时,我被问到了是否使用了爬虫,因为确实用到了所以当时说了是,结果之后就被问了很多关于爬虫的问题,被问的一脸懵逼,这里建议还是尽量避免说自己用过爬虫,这是一个大坑,水非常深,非大神牛人难以应付。第二轮虽然也问了项目里面的一些技术问题,但更偏向于问项技术之外的问题,比如人员的分工,整体项目的架构是怎样的,小组内如何进行统筹安排,通过项目有什么感悟等。其实这些内容在面华为、阿里等公司的时候也都有被问到,所以答到后来已经非常熟能生巧,不过确实百度是问的最多的,面阿里的时候大部分时间都是写代码讨论代码,面美团也只用了不到五分钟带过项目。所以准备百度面试建议还是要把自己的项目从框架到细节,从技术到人文都要好好准备。
一轮面试里面,除了项目以外还被问了一些很基础的问题,比如计算机的网络结构,internet使用的是那种网络协议,引用和指针之间有什么差异,知道哪些设计模式,具体解释一下什么是职责链模式等。中间还给了一张白纸写算法,题目是我之前在Lintcode上面刷到过的交换链表节点。之前在lintcode上第一次刷到这个题目的时候刚进入难度模式medium,没做好,所以这道题被记在了Lintcode的自带笔记上,面试前两天准备的时候正好回顾了下,所以面试的时候写的很顺利。
一面那天,我一个发小正好来了,我俩还大晚上的出去吃了烧烤,本来由于我当时手头还没比较好的Offer,对二面还是有点紧张的,但和发小嘻嘻哈哈了一个晚上就放开了,当晚一觉无梦直到正午,准备准备就去参加百度面试了。确实轻松的心态让自己面试的时候发挥的更自在了。像后来我手头有offer的情况下去面试因为心里有底比较轻松,实打实的感觉自己面试状态更佳。
二轮面试倒是没让直接在白纸上写代码,而是给了我一个线段树查询题,让简单描述下思路。因为之前刷题时没少在Lintcode 上做类似的题目,所以总体回答的自认为比较满意。另外,二轮的时候还问了HTTP和HTTPS之间的区别、堆栈溢出的原因、JVM调优、观察者模式、linux下如何调试程序,如何调试gdb、多线程的使用场合等。总的来说和其他互联网的面试点没什么太大区别,心态放平不要太紧张把自己会的都说出来就好。二面结束的时候面试官突然对我说:你表现的很好。受宠若惊,就知道自己肯定过了。当时就膨胀了,那天晚上除了花半个小时又过了下能想到的一些常规问题、花了半个小时又翻了Lintcode上面的笔记,就早早滚上床睡觉养精蓄锐了。不过三面确实比较简单,只问了一些简单的基础问题,然后问的过程中正好看到我简历上写的网站制作的项目经历部分,就加问了如何避免黑客窃取用户账号信息,因为项目做得时候考虑过这个问题,所以回答的还算让面试官满意。估计是因为之前两轮面试表现的都不错,这一轮面试官在后半场面试主要就变成了半HR面,聊了下职业规划和对百度这个公司的了解,为什么要来百度,期待的薪酬是怎么样的之类的HR常规问题。最后例行问我还有什么问题。本来想好好根据面经来问的,但是又觉得那些实在太常见了,就释放了吃货的本性,问了下去了百度的话,公司附近好吃的店多么?面试官听了我的问题都笑了,然后和我讨论了好一会吃的问题,还说有机会请我吃一顿。可惜了后来没去,这里和热情的三面面试官说声抱歉。
总的来说百度的三轮面试不是很难,只要好好准备下在简历上写的东西,对那些基础知识都能有比较扎实的认识,然后面试前好好刷刷题就行。另外,推荐一个查参考答案的网站www.jiuzhang.com/solution,无论你在什么刷题网站上刷题,基本上只要你报的出题目名字,都能在上面找到参考代码。我搭配着Lintcode使用,节省了很多找答案的时间。
百度的经历就写到这里,最后祝大家都轻松拿下面试这只大狮子,进到心仪的公司。