首页 > 代码库 > 转载----面经-csdn
转载----面经-csdn
原址:http://blog.csdn.net/ns_code/article/details/40408397
里面有些资料值得学习!
写在前面
结束了在百度的实习,是时候写下校招的总结了,再不写估计很多东西都忘了。在开源社区混迹久了,从别人的学习、求职、工作经历中越发感受到很多的正能量,也本着攒RP的原则,向学弟学妹们,尤其非名校的学弟学妹们传递点正能量,因为博主也是非名校出身,而且在整个求职的过程中能够很明显地感受到名校学生那种得天独厚的优势,同样的实力,名校学生进入BAT等一线互联网企业确实要容易很多,即便技术很水,一样有华为等企业保底,而非名校的可能连简历筛选这关都过不了。博主说这些,并不是为了打击非名校的学生,只是,这些确实是事实,既然无法改变出身,那就只能改变可控的因素,提高自己的技术实力,并放宽自己的心态,对结果看淡点,不要抱怨自己的出身,这样一路走来,你反而会发现:越努力,越幸运!
offer情况
由于深圳机会太少,校招前就一直想去广州驻扎,但后来因为实习,一直走不开,而且又考虑到实验室坑爹的考勤规定,就只能呆在深圳了,这样一边要赶实习的项目,一边又要找工作,每天中午还要回实验室考勤,着实累的够呛,还要时不时被某些企业打击,想想,蛋都碎了一地!
由于实习牵制,而且又非常想留在深圳,可选的互联网公司少之又少,因此主要参加了阿里巴巴、腾讯、百度、中兴通讯、大疆创新这几家企业的校招面试,除了阿里愉快地挂掉了,其他四家都拿到了offer。另外,还意外地收到了网易游戏的笔试通知,据说光简历这关就刷了很多人,有点喜出望外,但因为和腾讯的笔试冲突,且职位被调到了项目管理方向,不太符合自己未来职业发展的定位,就放弃了。拿到腾讯的offer后,就没再参加后面公司的笔试了,主要是考虑到工作地点的问题,而且感觉也没必要刷那么多offer,免得掉人品。总的来说,对这个结果还算满意,一年多的努力总算有了些回报。
自学之路
本科在广东某石油化工类二本院校就读,专业是电子信息科学与技术,本科四年,大把时间都花在拿奖学金、做学生工作和参加各种无聊的文艺活动上了,除了能用C和汇编写几个简单的程序控制单片机做些傻逼的工作,其他啥都没学会,到本科毕业,连服务器都没听说过,更不知道数据结构是啥东东,三年宝贵的光阴就这样白白浪费过去了。后来考研,依然对自己没有一个清晰的定位,所以报考的是仍然是通信类专业,但不得不说,这次考研的经历,对我后面的读研生涯产生了极大的影响,它让我坚定了一个很重要的信念:有些目标看似很遥远,但只要你付出足够的努力,这一切总有可能实现。
读研前的暑假,隐约意识到要提高自己的编程能力,但又不知道往什么方向学,于是在网上查了下,就从图书馆借了本《c primer plus》开始啃,并把后面的习题都敲了一遍,后来开学后,又看了《c和指针》、《c专家编程》(这个没看完),跌跌撞撞总算上了道。
虽然考研成绩很高,但硕士依然在广东的一所二本院校就读,只是这次学校的名字从学院升级到了大学。来了之后,越发对这里的学术氛围感到失望,终于意识到在这里做所谓的“科研”无疑自毁前程,无奈,只能自救,当时恰好有一个师兄签到了百度地图,便找他聊了下,触动还是蛮大的,这次聊天也彻底坚定了我不做“好学生”的决心。但具体该学什么,往哪个方向发展,依然没有头绪,于是就稀里糊涂地继续学c++,先是看了谭浩强的那本教材(没办法,一点c++基础都没,只能从头开始),后面又看了《c++ primer》,还借了一本《鸟哥的linux私房菜》,看了一半,也装了个ubuntu系统来玩,这些自学的时间都是逃课换来的,想想如果当时本科就这么搞,现在也不至于这么菜了!
转眼研一的第一学期都快结束了,想想要确定一个未来工作的方向了,老这么漫无目的地瞎折腾,总不是办法。在网上查了好几天,最终决定搞移动端,原因很简单:需求量大,就业机会多,而且当下很多互联网创业项目都集中在移动端,未来几年应该依然是主流,买不起Mac和Iphone,那只能搞Android了。接下来,便是各种自学,先是花了一个月时间,入门Java,后面边学边做Android,还跟同学申请了一个学校挑战杯的Android项目,没办法,谁让自己当初觉悟低,错过了三年大好的光阴,好在现在意识到,还为时不晚。
由于研二规定要进实验室,于是研一第二学期刚开学,便琢磨着出去找个Android开发的实习,无奈实在太菜,面了七八家公司,全被拒之门外,尤其跑去珠海面试魅族的时候,面试官问我Json是啥,我说不知道,结果被鄙视的一览无余,说我连本科生都不如,回来后郁闷了两天。后来误打误撞去了意法半导体实习,用PHP帮他们做ERP系统的二次开发,说白了,就是打杂,而且是一个人打杂,遇到不会的还没人问,感觉没学到啥东西,不过实习的间隙,依然在学习Android,并完善了之前的项目,同时进一步巩固了Java基础,学习数据结构与算法,并抽空看了一遍刚出版的《大数据时代》。暑假还尝试了一次创业,不过赚了点小钱就收手了,主要是火候还不够,而且也找不到真正志同道合的人,现在想想,当时确实有些浮躁了,还是先去一线互联网公司沉淀几年比较靠谱。
研一就这么浑浑噩噩地过了,真正在技术上有质的飞跃是研二这一年,由于导师放羊式管理,这一年有了很多自由的时间,于是一边做项目,一边看书,从Java语言,到虚拟机,再到网络协议,算法,看了很多经典的计算机书籍,另外还涉猎了一些大数据处理方面的知识,获益匪浅。但学习的过程还是很曲折的,主要是实验室有着各种坑爹的规定,而且学习氛围不是一般的差,当然这些都已成过去,也不想吐槽太多,总之,能不呆在实验室,就尽量去其他地方,就这样,为了能安静高效地学习,我打了一年的游击战。比较庆幸的是,十月份在CSDN上看到了江南烟雨的校招面经,于是决定坚持写技术博客,事实证明,这确实是一件有百利而无一害的事情,通过写博客,在社区上结识了很多志同道合的小伙伴和技术上精益求精的前辈,从这些素未谋面的人身上学到了很多,感受到了满满的正能量。
另外一件对我找工作帮助很大的事情,是8月下旬拿到了百度LBS研发部的实习offer,考虑到毕业后想留在深圳,便决定去实习,很庆幸这次没有打杂,刚去第二天,就参与到了实际产品的项目开发中,短短两个月,学到了很多东西。
接下来,便是校招了,校招高峰期虽然只有不到两个月,但真正关键的是校招前的那一两年,甚至三五年,你所付出的努力。博主在社区里看到很多默默付出,最后在校招期间爆发的人,当然也会有人悠哉了三年,一样拿到了不错的offer,只是人可幸运一时,总不至幸运一世,所以脚踏实地,才能有所作为。
校招流水账
下面按照面试的先后顺序大致记录下这次校招的经历,但不会牵涉到具体的面试问题,这个根据每个人的简历和方向肯定会有所不同。
阿里巴巴
阿里之于我,只有一句话可以形容:阿里虐我千万遍,我待阿里如初恋。
第一次面阿里是3月份的实习生内推,当时加了一个淘宝技术部的内推群,无奈水平太渣,又超级紧张,而且还莫名其妙地被分了一个C/C++面试官,聊了不到二十分钟,就顺利地挂掉了,不过也没有太在意,因为当时一直觉得BAT对我来说,是很遥远的事情。
第二次面阿里是7月底的校招提前批内推,这次找的师兄内推,师兄在阿里巴巴国际部,但我却被推到了无线事业部(后来在百度实习才知道,内推其实就是在内网上把你的简历挂上去,供内部一些有需要的部门来选,如果有部门选中,就由这个部门的人来面试,通过的话,便会进入这个部门,如果没有部门选中,那就没有面试机会),内推后的第二天,就接到了电话面试,上来就是各种Android源码分析、Android性能调优、Java高级并发的知识,勉强撑住了,可是面试官死揪着一点不放,聊到性能调优,一定要我有一些调优前后对性能分析得出的数字指标作为支撑,聊到Java的高级并发特性,一定要我在实际的项目中有用到,我说没做过服务端的并发项目,只写过一些Demo,估计面试对我无语了,问到,也就是说你只是看过书或者只是学过这方面的知识,对吧?我说可以这么说吧。然后,面试就这么纠结地结束了,本以为挂了,面完刷了下状态,结果一面通过。一周后二面,二面让我去阿里在深圳的办公点,跟杭州的技术官视频面,刚一上来就感觉面试官杀气很重,心想接下来肯定是一场恶战,果不其然,面试官连我简历都没看,上来就是自我介绍,然后揪着项目问,各种细节,项目的功能延伸,最后居然延伸到了服务器端的架构设计,前面还好,到后面真的是各种拙计,意料之中的结果,挂了!回来后郁闷了整整一周,后来跟北大一哥们聊天,提醒了我,我搞客户端的,怎么后面问了这么多服务端的东西,这不对啊,再后来,正式校招面阿里前,Rowandjj给我发了个手机淘宝技术架构演变之路的演讲链接,打开一看,主讲人正是二面挂我的面试官(花名:无锋),再看了下他的简介,顿觉高山仰止,只能说挂的我心服口服。
第三次面阿里是正式校招,由于内推挂掉了,只能从头再来,在线笔试顺利通过,面试预约到了9月17号中午,当时正在百度实习,不过恰好项目已经提测,活没那么多了,就跟leader请了三天假来准备阿里的面试。没想到去了广州后遇到了一个奇葩的面试官,确切地说,是UC的面试官,上来就让我讲项目,讲的时候还一直在夸我,讲完后,问他有什么问题要问没,他说没有,做的挺好的,结束后,还跟我握了下手,出来后我觉得铁定过了,心里正得意时,校园大使过来跟我说,我今天的面试结束了,我越想越觉得不对劲,就找机会去问了下面试官原因,结果不问还好,问了后,我的三观完全被颠覆了,面试官说我项目做得太深,在工作中会拖延项目进度,又说大牛都不写博客,让我不要老是写博客,看博客之类的,要多花些时间看书,书才是精华,我顿时觉得心中万匹草泥马踏过,好吧,只能认栽了。后来自己总结了下,面试的时候还是比较紧张,而且项目讲的有点混乱,估计这才是真正被刷掉的原因。由于实在心有不甘,我就一直找机会霸面,后来跟负责校招的HR千磨万蹭,终于答应把我的简历拿给其他面试官看下,但是被告知只能霸面开发测试,虽然一直比较排斥做开发测试,但这个时候哪还顾得了这么多,别人能给机会都谢天谢地了。后面面试就比较顺利了,问题多偏向于JVM,从一面一直到HR面,感觉挺好,而且二面面试官一直在跟我介绍他们UC的部门,还问我想不想去UC,面完后,我又开始做美梦了,可是HR面之后,再无消息,不知道是因为我二面时一直强调想做移动端和想去无线事业部的原因,还是因为我是后来霸面的原因,总之到现在都没有任何消息,估计连备胎都不是,直接被鄙视了。
为了最后一次进军阿里的机会,我做了很多的准备,面试前一直觉得很有希望,怎奈再次折戟。被阿里打击后,我一度开始怀疑自己的能力,越想越觉得找份好工作不容易,郁闷了两天后,索性接下来的面试不再做任何准备(实际上,也没有时间准备,因为项目赶的太紧),放空身心,一切随缘,大不了最后去小公司,反而是这种心态,让我顺利通过了后面公司的面试。
大疆创新(拿到offer)
参加大疆创新的的面试纯属偶然,它们的校招行程上根本没有深圳站,是HR在内推网上看到了我的简历,让我过去他们公司面试的,由于当时想多花点时间准备阿里的面试,就借口项目太赶,没时间去,没想,面完阿里回来后,HR又发短信让我去面试,也许这就是缘分。由于不是在校招线路上参加的应聘,因此没有笔试,只有一轮面试,CTO直接面,上来就是四道算法题,前两道都是《剑指offer》上的题改编过来的,后面两道则完全没见过,感觉有点超长发挥了,四道题目都做到了最有优,面试官很满意,后面就继续问了下项目,又问了Android屏幕适配,URL去重,MD5等等,基本答的还不错,面完后说直接让HR给我发校招offer,还问我对薪资的期望,我说不能低于10k。后来,offer发下来,待遇远高于我的预期,不比BAT差,而且公司发展势头正猛,也是一个不错的选择,只是毕竟不是互联网公司,所以我还是拿它来保底。
中兴通讯(拿到offer)
中兴今年第一次在我学校大规模招人,这放在以前,估计连简历筛选这关都过不了。相对来说,中兴的offer拿的是最容易的,23号下午宣讲,晚上笔试,感觉题目没啥区分度,会的大家基本都会,不会的应该也差不多都不会。凌晨一点多收到一面的短信,在ZTE总部,也就是学校旁边,去了之后,先跟负责校招的家贵模拟面了下,他觉得我不错,就推荐我参加蓝剑计划(这个其实也就是意思一下,博主跟蓝剑计划差的还很远),还把我的面试安排在了前面,当时真的感觉受宠若惊。一面二对一面试,基本没问太深的技术问题,面试官对我在百度的实习很感兴趣,问了很多,只是都无关技术,很顺利地通过了一面,同样是凌晨一点多收到的二面短信,二面还在同一个房间,只是面试官换了,同样二对一面试,这次完全没问技术,各种综合问题,大概二十多分钟,面试结束,又是凌晨一点多,收到了offer短信,要第二天拿三方去签约,工作地点,职位任选,直接拒了。
说到中兴,不得不提华为,华为在深圳地区的校招12号就开始了,之前一直听闻华为面试各种水,就想先拿华为来保底,没想到直接把我学校鄙视了,深圳地区只要北大、清华、哈工大深研院和中科院四所学校的,已无力吐槽。
百度(拿到offer)
第一次参加百度的面试是研二的时候,当时跟在师兄师姐后面打酱油,参加了百度的校招笔试,一不小心过了,只是算法基础太薄弱,一面就被刷了。
第二次参加百度的面试是8月下旬拿到实习offer那次,在内推网上投的,直接在工作地点面,一面先是聊项目,重点聊了下项目中涉及到的图片异步加载、缓存策略、线程池、ListView性能优化、分页加载等,又聊到Android消息队列模型,深入到了源码层面,后面问了些操作系统、排序算法、设计模式以及虚拟机和语言方面的基础知识,基本都答上来了。一面后直接二面,二面面试官明显年纪大了很多,上来就围绕着项目问,各种如何实现,因为确实做过,基本都答上来了,后面还扯到了一些开源框架,基本点到为止,二面面试官也是后来入职后带我的师傅,在工作上给了我很多指导。二面后直接三面,三面就比较轻松了,聊了下学习和实习的一些情况,就结束了,三面面试官是我后来的leader,当时刚好从北京出差来深圳。面完后的当天晚上接到了一个010的电话,谈offer的细节,虽然仅仅是一个实习offer,但还是蛮激动的,因为当时刚被阿里打击完,这个offer多少给了我点自信,至少证明自己身上还是有些值得肯定的地方的。
第三次参加百度的面试是正式校招。由于校招启动时,才刚实习了一个月,而且我们组移动端又不是特别缺人,leader就让我先参加百度的校招。9月20号在哈工大深研院参加的笔试,感觉做的还不错,24号上午一面,一面全是算法,很多都是《剑指offer》和《编程之美》上的题目,当然,也有没见过的,比如面试官拿百度地图出了道题目,基本都答出来了。下午1点,直接二面,二面先聊了下项目,然后问了很多Android、Java方面的知识,基本都深入到了Framework层和JDK层面,有一些没能回答这么深,最后让设计一个类似于微信的客户端架构,刚开始完全没有思路,后来在面试官的引导下,渐渐有了眉目,重点要考虑清楚代码的分层和解耦策略,这点也是在实习时实实在在感受到的。下午5点左右三面,三面依然是技术面,但相对比较轻松些了,聊了下百度实习的项目,项目中遇到的最大的挑战,如何解决等等,然后写了个c的字符串拷贝函数,要考虑异常情况,后面就是各种聊职业规划、人生理想。
本以为百度的offer能拿的很顺利,没想到是拿的最纠结的。主要是百度今年有点太坑了,深圳移动软件研发岗今年一个名额都没有(深圳地区负责招聘的HR后来跟我说的),官网上却赫然写着10个名额,所以即便三面通过(当然,三面也会刷人),进入offer池,依然不会有经理来选,最后,只有两种结果:调北京、没offer。国庆后收到了调剂北京的邮件,但实在不想去帝都,幸而leader答应从北京其他组调过来一个名额给我,这才有了百度深圳的offer。
我觉得能拿到百度offer,实习应该有很大帮助,因为深圳移动软件研发和软件研发这两个岗刷人特别严重,所以,机遇真的很重要。
腾讯(拿到offer)
因为想留在深圳,又想学习做产品,腾讯无疑是最好的选择。腾讯在深圳地区的校招很晚才开始,27号笔试,10月9号上午在腾讯大厦一面,上来先是问各种基础知识,从操作系统,到计算机网络,再到数据结构与算法,Android基础、Java基础、JVM、性能优化。。。广而不深,都答上来了,很多地方在回答的时候,我特地深入解释了下原因,后面聊项目,这个面了几家公司,都聊烂了,不在话下,最后写了个算法题,《剑指offer》的原题。10月11号上午二面,二面时,已经看不到几个人了,其中有一些还是从外地赶过来的,还有一些是在广州挂了,又来深圳参加的,估计大家都是很想在深圳发展,二面给我感觉有点压力面的样子,这是面完后才意识到的,面试官问任何问题都问的很深,很细,而且话很多,不给你反驳的余地,感觉回答的一般般,面完后心里一直没底,不过当天晚上收到了HR面的短信通知,HR面是电话面,主要问些家庭情况,职业发展,个人性格方面的问题。面完后的第三天,收到了腾讯的offer,分到了自己所报的事业群,也刚好被分到了自己一直想去的部门,皆大欢喜,只是待遇上比百度稍低,当然,这些已经不是重点要考虑的因素了。
一些不错的面经
看过不少面经,有一些总结的很不错,很具有指导意义,推荐给大家。
Linux C/C++后台开发方向(华科一硕士):
http://blog.csdn.net/xiajun07061225/article/details/12844801
Java分布式后台开发方向(北大一哥们):
http://idlemind.sinaapp.com/2014/05/01/intern/
Android移动端开放方向(华科一哥们):
http://blog.csdn.net/u011843634/article/details/25710305
综合研发类(北航一硕士):
http://blog.csdn.net/hackbuteer1/article/details/8501605
算法学习之路(同上):
http://zh.lucida.me/blog/on-learning-algorithms/
一些感悟
从3月份的实习生招聘开始,到现在,一路跌跌撞撞,总算有了着落,总结下其中切身体会到的一些感悟。
1、基础很重要。这个相信大家都深有体会。
2、项目要深入。做项目不能浅尝辄止,这个参加过面试的人应该都会有所体会。
3、心态很重更要。跟高考一样,面试中心态不好,会很影响临场的发挥。
4、细节决定成败。从基础到项目,这个都会有所体现。
5、坚持写博客。虽然面试到现在,只有一个面试官看了我的博客,但写博客真的是一件有百利而无一害的事情。
6、凡事要讲究缘分。有些时候,有些事,确实要看缘分,所以把心放宽些,不要刻意放大一些痛苦。
7、付出总会有所收获,问题的关键在于你是否坚持的足够久。认识的一些付出了很多努力的小伙伴,虽然也是一路磕磕绊绊,但最终都有了比较好的结果。
最后,希望这篇博文能够给那些像我一样菜的学渣们一些盼头。
转载----面经-csdn