从百度招聘的理念上来讲,比较讲究实用主义,和传统的大公司、大外企不一样,百度对学位和专业的包容力很强,只要能力足够,均可以破格录取。基本上,百度在人才筛选上重视以下几点:
1、扎实的程序设计基础
1)基本语言开发能力
如Java的多线程知识,如何创建使用线程,extend Thread 和implement Runnable差异在哪里,线程间的同步,override和overload,或者问static关键字有哪些用法,final的意义等等,总之会围绕非常常用和重要的一些基础知识来判断应聘者基本的语言能力,这部分如果回答的比较糟糕,那就基本没后戏了。
2)设计模式
这一块稍微高一点的职位都会问到,问一些常见的设计模式,单例类如何实现,单例类创建的单例怎么释放(你思考过没)?适配器模式的意义在哪里,为什么我们要适配器模式?再提高一点,会直接问系统设计的思路和设计模式的综合应用,例如带业务类别和优先级区分的HTTP请求线程池,如何实现,等等。这一块是提高部分,基础岗位如果没有回答出这些问题,只要态度诚恳、好学,基本上也不影响offer,百度还是有一定的培养心的。
3)算法
可恶的算法,某些世界著名的企业,例如微X,亚马X(绝对不是亚马碟),谷X,IBX,不管什么部门,有事没事就问你一些算法,什么分治算法,回溯算法。
2、相关的项目经验
目前公司大多都是实用主义,一般search简历的时候,尽量会找有相关业务经验的,比如做视频的,那么最好应聘者也是做视频业务的,最最好的是做完全一样的项目的,最最最好的是来自于竞品团队的(一举两得啊,哈哈,360和百度喜欢互挖,这个是业内都知道的秘密)。看项目经验,无非考虑到以下几点:
1)上手快,业务理解快。
面试前,你一定要认认真真总结自己做的项目,对业务和使用到的主要技术,要很清楚,如果让你来做音乐客户端,多线程下载、断点续传你都没做过,呃~好吧,只能说我们产品理念不同,世界观不同~~
2)快速解决类似问题。
上面还是扯淡,Hint在哪里?面试前,你总结过你做的这些项目难点在哪里,重点在哪里了吗?一般的面试官都会问你遇到的难点,或者项目中的难点和陷阱,你要对这些很清楚。
3、踏实的工作态度
很多时候,老实说,项目的七成工作是属于基建,拼的不是聪明,而是踏实细心。所以,踏实认真,肯做事的态度,在互联网行业还是非常受欢迎的。百度喜欢踏实干活的人,面试者除了展现能力和自信,也一定要控制好自己,不要表现的浮在上面,空杯心态,这个最好。所以,面试官可能会问你一些让你不爽的问题,或者你认为是刁难的问题,或者让你回答很基础的问题,都要耐心,别急躁,别骄傲。
4、思路清晰,有较强解决问题能力
百度所说的思路,还是主要针对实际需求的设计思路和分析思路,这个依赖于一定的经验,但是确实也需要较强的分析和知识整合能力,很多所谓的事物,实际上是借鉴其它相似技术的思路,做的延伸。所谓思路,实际上还是建立在个人知识体系之上的,知其然而不知其所以然的话,很难触类旁通,很难有思路,深度理解两三个技术框架和实现原理很有必要,能加重你的分量。
5、较强团队协作能力、沟通能力
互联网产品的团队都是快节奏的团队,考察个人的合作能力和沟通能力,也是必须的,这个HR面试会问的多一些,不过在百度这种业务主导的企业,HR的影响力有限,主要是协助考评。沟通过程中,要有积极参与的心态,该倾听的地方认真倾听,要提问的时候大胆提问,面试还是很简单的。
1移动软件开发
一面:
很nice的一个面试官,大概40岁左右,进去自我介绍都免了,直接问问题,基本上针对简历,自己做的项目,遇到的问题,怎么解决的,所以对自己做的东西一定要复习一下,就算没有遇到什么问题,再小的问题也要总结,否则他就会怀疑是不是你做的了。
接着问简单的算法,第一个是青蛙跳台阶,每次可以跳1级或两级,请问有n级台阶,有多少种算法,这个相信大家都知道,我挥笔写下递归的,给他看,然后他说改成非递归,我又挥笔改好,细节没注意分配内存(malloc)没有初始化,被他发现了,哈哈没注意。
第二个算法题:找出字符串中第一次出现一次的字符,这个相信大家也都知道,但是我在分配内存那块又出来点毛病,分配少了,后面他给我点出并改进了,这个也pass了。
下面就针对语言问了些问题,都是些基础,我只记得问了个c++的虚类和java接口的区别。
最后叫我问他什么问题,我就问了个他们团队是做什么的,公司的氛围和文化之类的。他解释了一些。后面他问我本科学校是哪里的,他说他没听说过,弱感无力,本屌从三本毕业,问我硕士学位是学硕还是专硕,暗自琢磨他是不是有名校情节之类。
最后道别,感谢。至此一面结束。
在回学校路上接到了二面通知,真是速度。说起速度,还有个不得不提,笔试当天晚上百度就打电话通知我一面的,结果我手机关机……此处教训,笔试那天晚上手机别关机!
二面:
也是很nice的一个面试官,年龄估计大我不多,进去他没说要我自我介绍,我问是否需要自我介绍,他说行,我就1分钟搞定,本人面移动软件开发职位,和java相关程度大,等等。
基本上问了些底层的东西,比如Adroid中Looper的实现原理,为什么调用Looper.prepareLooper()就在当前线程关联了一个Looper对象,它是如何实现。我就说应该是用了组合的设计模式,线程里持有Looper对象引用之类,后面他告诉我答案说和ThreadLocal有关。
接着要我写个单例的设计模式,这个闭着眼睛都可以写出来吧应该,哈哈。然后问单例的类里是否还有其他方法,我琢磨了2秒说没有,他说每个类都继承字Object的奥,顿然醒悟,我所还有equals、hashCode、toString、wait、notify等方法。
问我wait和notify干什么用的,我大概说了些在线程同步的时候可以用到。接下来又是底层的东西,问我java的内存模型怎么样,跪了,没复习,我就扯分栈区和堆区,栈区干嘛用的,堆区干嘛用的,就这样,他就没深入问了。问是否熟悉linux,我答会写常用命令,没深入问了。
接着问我是否了解jni,还好之前项目中有的代码用到了,就说了下jni的步骤。接下来还问了关于jni一些底层的东西,好吧我承认底层是我软肋。。。继续跪。
Jni里的如果有个全局变量,在代码中如果关于这个全局变量发生了异常,请问在java代码中是如何反应了,也就是说java里会抛出什么异常。。。。我的答案:没接触过不知道,jni里回调java的机制是怎么样的,沉默2秒,答:这个不知道,,,忐忑。
介绍下java的内存泄露。。。又是不知道,我就扯了些运行时异常,答不对题了。我之前做javaee用到mvc模式,他就问我android里的mvc是如何的呢?我答的也是很模糊,忽悠了。
总结:回来得恶补底层东西
大概记得这么多了,最后要我问些问题,我就问公司的文化氛围,他搬出了百度的工程师文化,产品经理没RD(research and develop)话语权大,基本上百度重视技术,不像企鹅种重产品,企鹅的程序猿们被产品追着跑,后面就没问其他了。
2Web前端研发
一面:
HR当时约的是今天或明天一面。我解释有下午考试,她说那今天晚上到明天。没想到上午百度的一位学长就打过来电话,说中午1点面试,,好吧,那就面吧,让暴风雨来得更猛烈些吧。(我的考试还没复习好呢)
学长先问了一下学校,然后聊了一下专业的课程,主要是问学了哪些计算机相关的课程。随后就切入主题,问什么时候开始接触web前端的。吧啦吧啦,,说了一通。
我简单回顾总结了一下面试官问的一些知识点:
- HTML 部分: 语义化、h4与h5声明版本、**form** 元素有哪些属性
- CSS 部分:盒模型、position的所有属性、background的所有属性、选择器及其优先级、兼容性
- JS 部分:创建类、继承、prototype、this、兼容性、ajax请求怎么用原生js实现、post和get
- jQuery部分:问了几个函数。
- PHP 部分:控制访问ip、关联数组、include和require
- Linux 部分:让我自己说一些体现水平的命令。
- 移动端开发经验:考查了一个meta属性viewport。
- 代码管理:(他没有深入地问下去)
- 看过的书籍
- 学习方式
- 开发工具
面试官有一套很清楚的流程,他会按照既定的步骤把HTML、CSS、JS的一些知识点问到,一定是准备好了一些问题的。同时,他会抓住你回答中涉及到的一些知识点展开深入考查。后来我试图暴露一些知识点,比如angularjs、grunt....他都视而不见,所以说面试的节奏自己是很难把握的。
他会把各个方面都问一下,像上面提到的:html、CSS、js、移动开发、代码管理、Linux命令、开发工具、团队合作方式...
电话面试期间,我有听到他敲击键盘,不知道是聊天呢,还是记录面试信息的,我估计是一边面试一边写下评价吧。
正常面试结束不是都有提问环节吗?我看面试官没有表达这个意思,于是赶紧要求问两个问题。
1、学长、是参加了笔试都会有一面吗?
虽然我自己都觉得不可能,但是我真的是编程题都没做呀。。当然他回答是有筛选的。
2、学长,您提到您是网页搜索部,请问是手百,还是pc?
大搜,传统网页。
二面:
昨天中午一面结束,感觉答得一般吧,很多知识点如Linux、PHP都没答上来。不知道能不能过。
不过我深深感觉到了自己知识点的一些不足,于是上午的电视概论课一边听一边看书,手机还开的标准模式。那可是班主任的课呀。。
很意外,上午居然有面试官打来电话约二面!百度的效率还是蛮高的呀。于是又约到了中午1点,一天课呀,没办法。
首先你自我介绍一下吧。好的,我.......吧啦吧啦,开始了。我提到了课程中的一些艺术方面的课程:美术、数字色彩、字体版面设计,还有就是计算机相关课程:数据结构、图形图像学(昨天考的,应该是跪了)、网络原理、网络程序设计(这两个还没开的课)。
—CSS部分:postion 的 absolute 和 float; block 和 inline
—JS 部分:原生js写ajax、跨域请求
—HTTP协议: http请求的执行过程,状态码、缓存
列举一个自己认为最好的项目,描述一下主要思路,遇到问题是如何解决的。说一下可以给自己增色的知识。
这次面试整体的节奏还是比较快的,18分钟就搞定了,他问缓存等问题时,我都直接说了解不多。。后来感觉面试官也没什么想问的了,让我自己随便说点儿,然后我就简单说了一下AngularJS的主要思路,controller、service、directive都是干嘛的。还提到自己和Android和ios端的人合作过。
我上午还问了一下百度的学长,他说二面还是考知识点,,可这显然是考项目经验呀。
现在想想,我对项目的描述部分说的比较少,解决问题这块儿好像说的是SQL,,这可是二面的关键,这么简单地回答,会不会挂呀。。
3交互设计
阿里巴巴圆桌会议的第二天。快中午的时候接到伙伴的微信,说下午中午百度面试。我没有投百度的简历,也没有参加百度的笔试,但是小伙伴鼓励我既然霸面,就不要管那么多了。所以我决定去看看!
交了简历却没有被叫名字,其实很正常。有预约的面试对面试官来说都已经是压力山大的事儿了,更别说我是来霸面的。只有耐心安静的等着了。等到下午6点左右,面试官拿着我们的简历告诉我们:“各位同学今天就先回去吧!我们会对简历进行一次筛选,如果觉得还不错,会电话联系你的。”得到了这样的答复,能做的也就只有等了。
9月16号晚上8点多,经过腾讯的招聘宾馆时电话响了,百度的面试官约我第二天早上9点半去面试。嚯~候着候着还真候出结果了~
9月17号交通不便,决定打车前往宾馆开始第二次战役。路上和司机聊西安的城门,自己也在琢磨面试的事情。到了宾馆在等候区稍等了一小会儿面试官就喊我进去了。其实从11号晚上我到达西安一直到17号这几天都好累。眼睛酸涩,腰酸背痛不想说话。脑袋有时还会放空……但是面对一次来之不易的霸面机会,我还是打起精神,面带微笑的开始了又一轮的面试。
初面:
内容:针对作品集提问聊天
时间:60分钟
面试官:一位女士
她邀我进了面试房间,一位看起来不大的女生。我们很快就聊起来了。她先问了我关于阿里offer的问题。紧接着问我为什么有了阿里offer还要来面百度。其实我真的是觉得北京资源比较好,之前快一年的实习一直在北京,互联网的氛围真的很不错。我便如实相告。
接着开始聊我的作品集,我不断深呼吸调整自己疲惫的状态,估计面试官都看出来我非常累了。期间还跟我聊聊学校的事儿啊,北京的事儿啊~来缓解我的疲乏。
建议:面试也是一种学习。在面试官问出你答不上来的问题时,不要急着辩解,急着找理由。而是认真的想想问题再做回答。真的问到盲区的话,恭喜你!你又长知识了。大方的告诉面试官:“这个问题我没有考虑过,不过感谢你今天提出来,让我又学到了”。面试官不会觉得你很low。
愉快的一个小时,邻近尾声的时候面试官打了个电话然后突然问“你等下有事儿没~要不直接去下一面吧。”幸运的过了这一关!
二面:
内容:技术&聊天
时间:40-50分钟
面试官:一位男士
我俩站在过道里聊了起来。面试管说今天的面试是临时加的所以房间没有做清洁,要等保洁整理好才进屋面试,这是对求职者的尊重。这用户体验得给好评啊!
他终于没有让我讲作品集!我太感动了,因为我真的不想再讲了。这次的面试官是我面试以来唯一的男性,他很快浏览了我的作品集后便拿着我的一纸简历问了起来。
首先问我想在哪里工作,问我家有几个孩子,问我学校排名情况,问我实习经历。问的和之前的面试官完全不同,开始还有点儿紧张,后来觉得开放性问题就随自己的心回答吧。其实我俩聊的最久的问题是“你将来想成为什么人?会从刚开始的一名交互设计师成为什么人?”
其实我就是想做一名交互设计师,实习的时候一直是“交互设计实习生”我想成为一名真正的交互设计师。用交互设计的思维去思考、改变我的小世界。我如实的告诉他我的想法。他却说“我觉得你适合做产品经理。”
我不否认我一直用产品经理的角度去思考问题,而不是仅局限在交互设计师的范围内,但是这只是辅佐和帮助我成为一名优秀交互设计师的基础。面试官肯定了我的回答。之后他也很诚恳的给了我建议。“如果你要去阿里,就去杭州总部,如果你要来百度,也请直奔北京总部。”
之后他收起我的简历说之后会给我发邮件,让我把作品集电子版发过去。全国的面试需要汇总可能要花一段时间,汇总之后觉得还不错,会再次打电话通知的。而之后的面试都是电话面试了。
建议:谈人生谈世界是个好事儿,你尽可以把你端正的三观给面试官看!但请注意,这是面试,是面试,你是来求职的,不是拨打Call-in节目可以说自己对工作的迷茫和难抉择。即便有再多的疑惑也请你收起来面试后找大琪聊聊。
和面试官聊的时候看起来气氛融洽,等结束后面试官冷静了会发现面对他的求职者,对这份职业好像不是那么的坚定,不相信自己的求职者,怎么能让用人单位相信呢。所以,聊人生的各位慎重了!出了宾馆我就订了回重庆的票。晚上上火车一觉睡到天亮。到了学校悠哉了几天。
总监面:
内容:电话面试聊技术
时间:20-30分钟
面试官:一位女士
百度第三面,总监很随和,反而问了一些基础的东西,比如“你喜欢那个APP啊,你觉得哪里交互做的很好啊,哪里做的不好啊,如果你要改进应该怎么改进啊。”之类的问题。这三次面试都问及了阿里巴巴offer的问题。我也一样如实告知了我的想法。面试很轻松。面试官问及三方协议的问题,然后说最后录取与否消息都会很快出来,让我别着急着和别家公司签订三方协议。
HR面:
内容:聊offer;
时间:20-30分钟;
面试官:一位女士
27号是我农历生日,我把手机摔坏了当做我的生日礼物。百度却给了我一个offer当做生日礼物。
这是一个不期而至的offer。而我也陷入了选择中。不管怎么样吧,和伙伴们相互鼓励,相互分享着走了一路。一位优秀的伙伴甚至拿到了百度的special offer。身边有这样一群优秀的伙伴。谁说这样不幸福呢。
4产品经理(内推)
一面:
询问了一下自己的实习经历以及在学校做的项目。这个在以前的面试过程中基本都有遇到过,所以过的比较快。同时问了喜欢用哪些APP,并和说出它的优缺点,并和竞品进行对比。最后,抓住其中一款产品让楼主加新功能,不停问了我10分钟,算是压力面。
二面:
本来最开始说不需要经过总监面的,晚上通知我说,总监那边说要看看,让我第二天早上来一下,然后第二天早上就去参加总监面了。
问的问题,也是我对旅游整个大行业怎么看?(因为楼主实习的部门和申请的部门是旅游相关的)哪里可以有突破的契机?觉得哪个点最重要,最有可能成功?然后该如何去设计?部门经理就说,总监那边反馈说还不错,可以直接给offer了!!!
建议:
可能主要告诉大家的一点就是:一定要对自己实习的内容非常了解,同时要有自己的一个见解。对整个大方向发展问题也要多去了解,多思考!一般到了总监面不会问一些很细致的问题。
5C++开发工程师
一面:
笔试当天晚上收到一面通知,晚上又看了一遍乔布简历的求职攻略,主要是面经,第二天早一点起来把设计模式以及操作系统的一些概念性的东西回顾了一下,事后发现这样的临时抱佛脚还起到了一定的效果。
面我的是一位很年轻的面试官,他说自己在百度公司才待了三年多,人很随和,让我先坐一下,他先记录一下上一个同学的面试情况。大约5分钟过后他开始发问了,问的大都比较基础,包括算法,C,C++,Java,Linux,操作系统,设计模式,数据库,计算机网络还有项目情况等,这些内容也是作为一名计算机学院的学生应该都会涉及到的内容。
面试官问的很广,但是不会问的很深,只要你稍微了解一些都可以作答,他最后告诉我百度公司需要这样的人,即术业有专攻的人,就是说在某一方面有比较深入的研究的同学,只要你在某一方面足够优秀,而且能够很好的表现自己,那么百度公司不会拒绝你。
感觉一面的过程还算顺利,有一些自己不知道就直接说不清楚,最后10分钟面试官问我有没有什么问题问他,我问了三个,一个是实习生的具体安排,一个是百度公司的内部文化,还有一个是百度公司现在关注的新技术和新产品。
问完之后面试官问我有什么兴趣爱好,我说自己平时除了喜欢看书外比较爱运动,打篮球看足球什么的,面试官说如果有二面通知,会在第二天晚上之前电话通知,然后我跟这位随和的面试官礼貌地握手道别。
二面:
一面后的第二天中午12点多接到二面的电话通知,说是9号下午4点参加二面。因为据二面还有一天多的时间,所以一面二面这段间隔时间也在马不停蹄的准备着,由于一面面试官告诉我一面考察基础知识,二面会问的比较深入。
因为我投的是C++开发,所以这段时间主要复习C++和算法方面的知识,自己很快将C++对象模型,effective C++,C++必知必会,SGI STL等书过目了一遍,对其中的一些概念性的东西重新有了一些认识和记忆,主要又复习了一遍乔布简历的百度求职攻略(事后发现受益匪浅)。
主要是看了一些常见的题型和解答思路,我觉得挺巧合的是,二面竟然就只问我C++和算法题目,所以感觉自己其实挺幸运的,遇到的面试官比较符合自己的口味。
4点进的房间,面试官给了我一瓶水我没要,挺年轻的一个面试官,大约比我大两三岁的样子,说他自己也才来百度两年多,进入正题,二面其实跟一面差不多,只是被问到的问题有些深度,主要涉及C++,操作系统知识以及算法题目,C++一些概念性的东西。
感觉我自己回答的还算可以,毕竟事先突击了一把,不过觉得自己的理解不够深入,很多问题答到点子上来却没有很完整,有一些自己不知道的东西干脆说自己不清楚,如果你说不清楚,面试官会微微一笑说,不要紧我们问下一个,整个过程还算比较顺利。
同样的到最后10分钟左右面试官问我有什么问题,最后他说没问题我们今天就先到这里吧,如果有三面,会在明天晚上之前通知,同样地,自己很礼貌的和面试官握手作别。
当天晚上20:50左右,电话通知我第二天早上9点三面。
三面:
大约等到8:55我敲门进去了,HR面要比前两轮的技术面轻松了许多,面试官胖胖的人挺好,先是问了我感觉一面和二面的过程怎么样?然后问了我实验室做的项目,问有哪些难度,如何解决问题之类的。
然后让我做了一道智力题:桌上有20个杯子,15个口朝下,5个口朝上,每次任意取出4个杯子颠倒(即朝上的让它朝下,朝下的让它朝上),问最少多少次调整能使20个杯子全部朝上?
我在纸上画了一会儿告诉他:无论多少次调整都不可能让20个杯子口全部朝上,他一直问我:你确定你的答案吗?问了好几次,最后还是笑着说你是对的。
然后问了我未来5年内的职业规划是什么,最后问我有什么问题,我就问了一下百度实习生实习的具体事宜,感觉他好像也不是很懂,就说你先回去等吧,如果有的话这周末或者下周就应该会有通知。然后我说了声谢谢,便礼貌地和HR握手告别。
-END-
联系客服