百度面试需要先到前台签到,领取自己的编号,这个编号最好记住,毕竟会有重名的。然后排队等待面试,百度会有专人引领去面试场地(由于人很多,百度的面试场地设在了自己公司的中餐厅)。
一面是一个挺和善的帅哥,年龄差不多三十来岁,人家也很客气,主要问了以下问题(与序号无关):
1.自我介绍;
2.实习项目的介绍以及你在项目中做的内容;
3.Java有几种基本数据类型?分别占几个字节? 当时一紧张忘记char占几个字节了,他很客气告诉我是2两个字节。百度员工还是不错的,没让我感到太多拘束。
4.有两个有序数组a[10, 20, 30],b[5, 15, 25],设计算法如何取出两个数组中第3小的数(也就是取出15); 设计时一定要考虑效率和内存问题。
5.HashMap底层的原理,put(key, value)、get(key)原理 ;
6.接口与抽象类的区别;
7.什么是继承与多态;
8.常用的设计模式并分别讲解一下;
9.Linux常用命令;
10.数据库的联合索引;
11.数据库事务,ACID的介绍;
12.从坐标原点(0, 0)到坐标(m, n)有多少条路径;
13.Java虚拟机的堆与栈以及回收算法有哪些?新生代用什么算法,老生代用什么算法?
14.你有什么想问我的吗?可以随便问。
15.平时关注谁的博客?有GitHub项目吗? 还有几个问题记不得了……一面下来差不多一个多小时,大部分都能答上来,不会的就说不会,面试官有时候还会告诉你该怎么做,叮嘱我一定要刷题。
面完之后差不多11:40,百度提供零食可以自助;如果需要吃正餐需要自己出去。
二面是下午1点开始,等到快3点多才轮到我,百度的负责人把我安排到一个C/C++面试官那里,我问不影响我面Java吗,她说都可以面,现在没有Java面试官了,都排满了。我就信以为真了,呜呜……
面试内容如下(与序号无关) 1.自我介绍;
2.实习项目介绍,以及项目中用到的算法(问的很细);
3.文件有N行数据,随机读取M行不能重复;设计算法,如何优化 还是要注意效率和内存问题;
4.给你10G内存,500G数据,请问如何排序?说说思路即可;
5.ping是在哪一层?流程是什么?
6.有哪几种常见排序?复杂度分别是多少?哪个排序算法最快?
7.你自己用过的设计模式,介绍一下;
8.自己的开发环境是什么?介绍下Linux命令 还有几个问题,不记得了……面试官最后和我说:很遗憾,你的算法能力还不够,百度不适合你。你还年轻,慢慢来。相遇即缘份,人生第一次互联网公司面试就交给了百度,虽然失败了,但是挺感谢百度给的这次机会。
我自己总结了一下(仅仅是个人想法,姑且言之): 百度有一轮笔试,三轮面试,我的理解是这样的 笔试刷去20%申请者 一面刷去20%面试者 二面再刷20%面试者 三面再刷20%面试者 最后留下的这20%中肯定有很多获取其他公司offer,不一定会留在百度,所以最终百度只会留下10%左右的人。 这样来看我仅仅是打败了40%-50%的申请者,距离成功还很遥远。
给自己简单定位,总结教训,向着前方奔跑!我还有三点感悟:
1.当运气来了,没有实力一切免谈;基础不牢,地动山摇。
2.看看前辈们的总结,多吸取教训;即使那是一碗毒鸡汤,你也要有中毒的征兆才行,不然跟喝白开水有什么区别。
3.多反思,多走走,看看外面的世界;想清楚自己要什么,不要在奋斗的年龄选择安逸。
结篇:不要让今天辜负了昨天的努力!
...查看更多