从三月份开始,就投入了紧张的校招实习生准备当中。因为自己深知这次机会的重要性以及必要性。一开始,只锁定了腾讯和阿里的内推。
三月初,在支付宝师兄的帮助下,成功获得内推资格。师兄给了很多建议,支付宝可能更喜欢问架构、设计以及思考相关的问题。实际上,这样开放性的考纲更难去复习。因为自己本科一直使用Java开发,读研期间,在百度实习用的是PHP。所以,复习的时候基本是突击Java高阶与虚拟机相关的知识点。说实话,这样复习挺累的,因为厌倦了这种快餐式地获取知识的方式,碎片化的知识让人对未来充满担忧,因为有本科失败的经历,所以真的很怕重蹈覆辙,还是希望能系统性地进行知识储备。果然,阿里一面过后就被回绝了,问的基本都是淘宝与支付宝的场景分析设计、高并发、重构、设计模式以及测试驱动开发相关的知识点,答得很一般。最关键的是,面试官问到,你在百度实习给你带来了什么收获时,我居然一愣,不知道该怎么回答,只说了句,写代码更规范了… … 过后一想,这简直是道送分题啊,我居然没有把握好机会。当务之急就是系统地总结下百度实习的收获。这次面试过后确实伤心了很久。但是没办法,该准备的还得继续。
找了本科就去腾讯的同学内推了下,但是一直没有消息。直到三月下旬,突然接到深圳的电话,才知道进入了内推一面,但是真的是毫无准备,而且之后同学说被SNG的前端工程师锁定了简历,问的问题非常偏前端与计算机基础,可想而知,仍然答得很烂,快要对自己失去信心了。不过经历了这次面试,也明确了要复习的知识点,对后面的面试帮助很大。大概记录了下这次面试涉及的知识点,只是其中一部分:
1. 进程与线程区别
2. 进程间通信方式
3. 网络七层
4. TCP与UDP区别
5. ajax状态、实现原理
6. js事件委托机制
7. PHP require、include区别
8. PHP双引号、单引号区别
9. PHP框架的了解
10. C语言结构体sizeof
11. xss攻击原理
12. 怎样做提高前端页面加载响应速度
13. 十亿qq号无顺序,有N个号码 256MB内存限制,设计算法快速找到
过后想想,真的是很基础,而自己只答出了百分之五六十,只要稍微有所准备,基本都可以答出来,不过没办法,机会是留给有准备的人的。
终于,当内推都宣告失败后,进入了正式的校招。三月底做了腾讯的校招实习笔试题,讲真,难度不一般,选择题涉及的面非常广:C++、操作系统、计算机网络、数据库等等。而且时间有限。最关键的是,编程题不能跳出网页去本地IDE写代码,所有包名,方法名都要手敲,两道题只做出来一道。过后本来都没抱希望,但还是在4.11号收到了4.14(我农历生日是4.14哈哈)面试邀请的邮件,很开心也很紧张。快速制定了三天的复习计划,现在翻出来看,还有点感慨,当时真的是一点也不想放弃:
[X] 搜索面经,常问问题;(周三晚)
[X] 计算机网络 操作系统 数据结构排序算法 快排(周四早上、周五早上地铁里)
[X] JAVA面试常问 集合 并发 虚拟机 泛型 设计模式(周四晚、周五早上地铁里 )
[X] 简历项目再思考 实习思考(周五白天)
[X] 之前总结的基础笔记以及参考md文件 实习总结 简历项目总结(周五下午地铁里)
终于,时间到了4.14下午,因为面试安排在18:30,所以之前稍微吃了点垫个肚子。一进酒店,就感觉有点阔气,回头搜了下,果然是五星级的哈哈。问了工作人员后,迅速赶到等候大厅,微信签到后,就一直坐在休息区等待通知。因为来的时候已经快到晚上了,也没多少人,气氛不算紧张。但是,听到旁边刚面完的同学说问了他MySQL存储引擎后,赶紧百度了下,算是面前突击。等啊等,终于在18:52收到了微信上的面试通知,在1916房间进行面试。
一面的面试官很年轻,非常nice,上来先是让自我介绍。介绍完后,本来以为他会开始问基础知识,那会儿脑子里全是操作系统、TCP、UDP云云。但是,并没有按套路出牌,说了句“在百度实习过啊,讲讲你实习期间做的项目”。听了这句话,真的是长舒一口气啊,因为之前还是专门总结了下实习做过的项目,就基本上按照准备的一一叙述。因为有之前蚂蚁金服的惨痛面试经历,所以这次我刻意讲了下百度实习带给我的收获,尤其突出了上线流程中无流量机器、暂停点、回滚以及打包上线等规范的重要性。其实还有很多当时没有涉及到但是非常有参考价值的与方法论相关的东西都没说。面试官听完后点了下头,感觉很满意。后来才知道,原来面试官他们部门也是做PHP开发相关的,可能百度的这一套流程,腾讯也在用,捂脸.jpg。这个问题过后,面试官又问了下项目中的难点以及解决方案。当时只挑了两个代表性的问题说了下,一个是线上业务监控相关的,一个是线上多机器做负载均衡时,共享文件相关的。因为之前内推时,发现腾讯内推系统中的图片以一定概率加载不出来,所以,面试时专门提到了这个问题,而且自己之前实习上线项目时,也遇到过同样的问题,所以详细讲了下之前团队采用的一套成熟的解决方案。听完这些,面试官说道,“恩,看来你确实是亲自参与了这些项目的研发”。听完这句话,真是一把辛酸泪啊,心里想着,终于第一次被认可了。不过这也与充分的准备与表达分不开,之前失败的面试经验算是让自己认识到,如何清楚地表达自己的观点有多么重要。讲完实习的项目,面试官让简单介绍下以前写过的Java项目,并问了下restful相比web service 的缺点,这个问题很开放,应该是考察对restful的理解;之后是http status状态码介绍,因为这个很常用,就从1XX 一直说到5XX;有没有写过socket,简单讲下;有没有用过抓包工具?之前在百度第一个部门做测试开发时,用过fiddler,就大概讲了下fiddler… …后来看到简历上写的四六级成绩,说了句,英语不错。整体上,聊得很愉快,问题难度一般,基本都答上来了。
一面持续了30min左右,结束时,面试官问有木有什么问题要问,我随口说了下,后续会有通知吗?没想到nice的面试官直接说了句,你等下,我跟我leader说声,看能不能马上进入二面。我一度以为自己听错了,有点兴奋有点紧张,顿了下,面试官说,你先去三楼等吧,会给你通知。
下楼后,刷了下微信状态,从初试变成了复试。没等多久就收到了二面通知,面试官看起来比一面年长很多,应该是经理或者技术总监,而且住的房间明显是湖景房哈哈,我就坐后可以透过窗户看到成都的夜景。面试官一开口,我就感觉明显是南方人,自从上大学后,对南北方人民的口音很敏感。首先问了下PHP与JAVA使用比较与体会,之后让讲下PHP有什么优势,讲完面试官问道,为什么实习结束又入了JAVA的坑,这个真是比较尴尬,就讲了下自己为啥回学校又开始用Java,总不能说因为想去阿里吧哈哈。说下抽象类和接口的区别,应用场景以及如何选择。介绍下数组和链表的区别,大量数据查询时,数组和链表哪个快。如何实现链表逆置。都很基础,不再赘述。再后来是让介绍下印象最深的项目,因为一面说了自己参与度较高的一个项目,所以二面时,没说这个,换了个实习后期维护的项目,自己当时只是读过这个项目的源码,就介绍了下这个做归一的通用平台,如何做前端组件化、配置化以及如何使用分布式消息系统解耦广告数据与业务。后来问到用过哪些前端框架、了解angular js吗?除了PHP JAVA还会什么语言,一般怎样去学一门新语言?这些都问完后,面试官顿了挺久,好像一直在电脑上看啥,然后说道,为什么笔试数据库部分得分为0?听到这句话,真是晴天霹雳啊,我想了想,笔试时只有两道数据库的题目,一道是关于联合索引查询优化问题,一道是关于B+树索引与Hash索引占内存大小计算题。这些知识点之前确实没有复习到,就如实说了下。哎,真是数据库弱渣啊… …专业问题问得差不多了,面试官开始聊起了生活,挺轻松的,大概是关于:有没有女朋友→_→、介绍下自己的家庭、父母对工作地点的看法以及自己的想法等等,还有说到,腾讯的Web开发偏向全栈工程师,可能工作中也会分配一些测试开发的工作,问能不能接受等等。整个面试持续了40min左右。
出酒店的那一刻,心里说不出的感觉,因为按照流程,技术面只有两面,也就是说能不能录上基本已经定型了。说实话,面试的难度比我预期要小很多,顺利程度比我预期要好很多。
晚上回去就开始狂刷微信状态,终于在十一点多变成了HR面试中,可以安心睡觉了,想想面试官十一点多了还在工作… …周六下午收到了HR面试的通知,晚上搜了很多HR面试经验,因为大家都说HR套路深哈哈哈,不过一般技术面已经决定了能不能进,HR应该只是考察下有木有非常不符合公司的特点,一般都没啥问题。
第二天,很早就起来赶去酒店,十点准时接到了HR面的通知,前往指定房间面试,进去后,是两位非常漂亮的HR姐姐,简短自我介绍后,就开始各种问问题了,记了下,大概有:
1. 讲讲自己每天的安排
2. 看了哪本书对自己影响比较大,怎么体现?
3. 大概多久看完一本书?
4. 朋友或者外人对自己的评价?
5. 有哪些优势,不足?
6. 本科保研大概排名多少?
7. 之前实习怎么处理优先级?这个是自己给自己埋得坑,因为说到了之前实习都是同时处理很多事情。
8. 为什么想来腾讯?
9. 父母对工作地点的看法?
10. 北京比深圳离陕西近,为什么不选择北京?这个也是自己埋得坑,因为说到希望去一线城市发展。
11. 有没有女朋友?
12. 对加班的看法?
13. 最有成就感的一件事,最受挫败的一件事?
14. 有没有投递竞争对手公司的实习生招聘?
15. 有没有意向的事业群以及额外要补充的条件?
前前后后持续了大概30min左右,至此,腾讯校招实习生笔试面试流程全部走完。
当天面完回学校的中午,微信状态就变成了你已完成所有面试环节,心里还是挺开心的。
后面就是漫长的等待了,一直麻烦本科进腾讯的同学帮忙查询内部的状态,完成后的第二天就变成了录用,Offer报批中。然而,我以为很快就会接到通知,但是足足等了两周,内部状态才变成已录用,审批流程很长。这之后,再等了快一周多,终于在5.9(农历四月十四,也就是我生日当天哈哈)收到了深圳打来的电话,开心,算是最惊喜的生日礼物了。
总结下,就是一定不轻易放弃,一直准备,再准备。越早准备越好。接下来,就是计划着六月中旬去深圳了,希望两个月的实习能最终换来校招Offer。
但行好事,莫问前程。
===============2017.5.16更新================
附上之前记得部分读书笔记:
Java代码积累(包含设计模式等):
===============2017.11.3更新================
啊,突然再次看到写的这篇文章,甚是感慨。如愿实习转正拿到了校招offer,加油吧,少年。