本人计算机学术研究生,今年研二下学期,本着降低九月份校招压力的目标,从三月份就开始着手准备各大公司的实习生面试,下面是面阿里和面百度的经验总结。
一、面阿里 地点:合肥某高大上酒店
1. 基础知识一定要扎实。
包括面向对象几大特征(三大或四大,详细),设计原则,java内存机制,java编译运行过程,常用类库,TCP(三次和四次)等等。虽然这些概念题分值不高,说的过程中也很可能就被面试官打断了(二面的时候讲面向对象和设计原则的时候就直接被打断,面试官只要了解你知道这些概念基本就不考查了)。不过千万别觉得这些概念滚瓜烂熟了就没问题了,面试官会抓住一个或者几个点往深来问,比如.java编译成.class的具体过程是什么,虚拟机干了哪几件事;类库AWT到SWING有哪些地方做了改进,请举例说明等等。如果这些深入一点的知识不能答个一二的话,会让面试官觉得这个人浅尝辄止,不喜欢钻研。
2. 项目的要求真心很高(针对研发类的现场面试)。
如果说概念基础算是前面的小题,那么项目经验就是后面的大题了。做过的项目面试官会问的很细很细,包括用到的技术和遇到的问题以及对应的解决方案等等,一二面都会有,一面偏做了什么,二面偏怎么做的,所以一般情况下如果不是很有把握的项目别往简历上写,答的不好可能还会减分。当然,不需要整个项目都了解得非常透彻,只需要吃透自己在项目中负责的部分就行了。不过要做到“吃透”不容易,尤其对于我这样刚做了一年“学术盲”的人来说,要捡回来老早以前的小项目的各种技术细节,得下血本。
3. 优秀程序员的自我修养。
小题和大题前面已经说了,这部分我称之为附加题。当时二面问我:平时有没有逛逛开源社区,讲讲熟悉的开源框架,对什么开源代码有过研究,有没有看过虚拟机源码,举例说说java源码的优雅实现......由此可见,这个二面很是看重“源码研究”这项经历!干货一样的面试,我很感谢那个二面官,因为这些问题我没有答好,感到些许惭愧的同时也庆幸他帮我敲响了警钟,深知我还有很长的一段路程要走,很多事情要做,浮光掠影、只知其一不知其二可不是钻研的精神,我需要沉下心来好好搞技术。
4. HR面
虽然二面表现不怎么好,终究还是让我过了,谢天谢地。我是倒在了可爱的HR姐姐手下的。总结了几点吧:一是自我介绍。每轮面试都会有自我介绍的,不过我当时真没考虑HR面的时候还需要自我介绍,所以就把准备给技术面的自我介绍又再说了一遍,感觉重新准备一个专门给hr的自我介绍会更好一些,毕竟她们都不是搞技术的,技术方面的介绍可以相对少一点。二是尽量少说无关紧要的话,比如辩论赛最佳辩手、元旦晚会主持人、去国科找寻梦想之类的......这些话非但不怎么加分,还会让hr感觉这个人很能说,而且大老远跑来面试还不止一件事情(显得不专一、不重视之类的感觉)。三是一定要表达出十分想十分想这个实习的机会,非你不可的样子,而且会很靠谱,其他方面酌情表现就行。四是要有明确的职业规划,如果有幸被录取,打算在这个行业这个工作这个公司怎么工作下去等等。关键还是少说话,言多必失,毕竟交流的时间就那么几十分钟,很多时候其实自己并不是那个意思,但hr可能就会根据自己的言词而理解成很不好的样子。ps:阿里HR问了星座。。。
5. 其他
切身体会,阿里是真的真的一点不考算法(之前的内推也是),整个面试过程当中半个算法都没问,脑筋急转弯也没有。或许因为我简历里面已经写了搞过ACM所以考我也没啥意思吧。对于HR最后的决断,我表示理解,毕竟人家要选择的是将来能和自己以及自己的小伙伴们一起共事的人,认为不满足要求或者觉得不合适也是很有可能的,逼近了解的时间只有那么多。总之,虽然只是实习生面试,个人感觉难度已经很高了,至少比之前的内推电面要难上几层。
ps:阿里的招聘流程至少是国内计算机行业最正规的了,现场等待面试就跟蹲医院等着叫号就诊是一样一样的,现在想想都还有点小激动,紧张刺激很带感。
二、面百度 地点:电话
1. 基础算法能力是重点
这一点与阿里截然相反,本科那会儿面百度时一二面也都是问的算法题。当然,百度也不是仅仅纯考算法能力,而是有相当一部分的面试题是结合具体的业务场景提出的。比如20亿条查询请求(有重复),每条记录4字节,内存只有1个G,怎么求次数最多的查询(或者最频繁的K个查询)之类的问题等等。
2. 思维和想象力很重要
百度实习面试重在思考而不是丰富的经历(一隅之见),而思考是体现思维活动的过程。一般会先提出一个具体的问题让你解决,然后会继续问还有什么想法没?能不能有更优的解决方案?直到他满意或者自己答不上来了为止。
3. 项目经验不是很重要
作为实习生,本身就是因为没有丰富的实习经验才实习,不然找实习干什么。而这方面个人觉得百度的面试官就很nice,那二面大哥直接对我说,我们不需要大牛,实习生招进来本来就是来学习的。比较一下阿里实习二面的话:我们不可能把你先招进来再让你学习。应该能明显感觉出他们对待实习生的两种截然不同的态度吧。不过,虽然项目经验不是很重要,但还是要有一些的,因为会问。
三、总结
阿里重项目经验,百度重算法能力,另外听说腾讯看重的是个人潜力(具体如何未曾经历,二线城市期待腾讯的面试)。至此,BAT三家的面试区别大概如此吧。