2015 腾讯实习后台技术岗面经(广州)

         伴随着11:07/2015.04.17的一通深圳的电话,我正式收到了2015腾讯实习的offer。7天的等待即如白驹过隙,又如半个世纪那么悠长让人无限缅怀。接到电话的那一刻,明显感觉自己的心跳声在耳边环绕,欣慰自己的付出让人认可,也默默地为自己打气:It's a whole new beginning and challenge, and I believe I can make it.
         与此同时也恭喜我的女票找到了VIP的实习,虽然一GZ一SZ,但我们的付出都得到了回报,毕竟这是好的开始,我也坚信以后会越来越好。感谢一路有你!(≧▽≦)/ 
         好了,感慨结束,回归主旨。腾讯实习的安排有条不紊,从三月初开始网投,3月23/24日宣讲会,到3月29日笔试,再接下来的重重面试,一切按计划进行,给每个人的时间安排都很准确,不用浪费过多的等待时间。只是最后等offer的同学就有点抓狂了,呵呵哒!
         3月29日14点-笔试:地点华工A3-101,今年的笔试题与以往很不一样,以往侧重计算机知识的考察,这次侧重技术细节的考察。我一直按着前面的题目去复习,结果有点被坑到的感觉吧!而且所有报了软件开发的同学都是同一套卷子,不分方向,我是学C++的,做到一些iOS和JVM的题就面如死灰了%>_<%(题目在我另一篇博文[2015.03.29 腾讯实习笔试],不完整版,全凭回忆)。其实后来想了想,如果一张试卷各种类型的题目都有,那么改卷的时候应该会有所侧重。其实笔试完后的各种担心都是多余的,因为随后绝大多数人都收到了一面通知,囧!
          Ps: 其实正式笔试前,我还收到了内推的笔试通知,3月27日在T.I.T创意园腾讯公司,不过笔完之后就没有消息了,也确实感觉答得不怎么好。题目就是三道题,45分钟:1、内存对齐,结构体sizeof的问题;2、写一个函数,判断一棵树是否是另一颗树的子树;3、写一个函数,判断单链表是否有闭环,若有,找到环的入口节点。
         4月8日14点-技术初面:我的面试地点在大学城雅乐轩,有一些岗位是在东圃喜来登,不管哪个,酒店的逼格都对得起企鹅这样的企业了。提前了半小时到,签到后拿到房间号等待,和安排的时间相差无几的时候,就轮到我了。面试我的是一个30左右微胖的眼镜技术男(猜的O(∩_∩)O),一开始自我介绍,在介绍到项目的时候就被打断了,就开始balabala谈了一下项目。早就听说腾讯的技术一面都是虐人的,从这一刻起,深有体会啊!!面试官从我的项目找到切入点后,就开始刨根问底了,你的系统架构是怎样的?这个地方的功能是怎么实现的?为什么这么做了之后就会保证安全?然后又从项目拓展到其他的知识点考察了。问完项目,之后又问了TCP三次握手四次挥手,为什么是三次和四次?为什么三次握手之后连接一定成功建立了?最后一个小问题没有答好。Linux通信机制和方式,我说出来了各种方式,并分析了应用场合,这里我比较满意。又问道数据库事务以及事务的应用场景,我说我不熟数据库也没答好。问我了不了解UML,我说了解四种关系:关联、依赖、聚合、组合,也画过一些类图,嗯~这问题就这么过了。最后就是数据结构,让我对双向链表进行排序,要求时间复杂度最坏不能超过O(nlogn),空间复杂度为O(1),我在脑中比较着各种排序算法,前面几种简单的冒泡插入选择肯定是不满足要求的,归并空间要O(n),快排最坏可能O(n 2),所以只剩堆排了。我思考的时候,同时也将思路说出来了,这点不知道有没有加分,但我认为让面试官知道你的思考过程也是一个考察点。我说了堆排之后,他就让我说下如何对双向链表进行堆排,讲思路就好。一开始我直接把堆排的方法讲了出来,但是面试官打断我双向链表如何建堆呢?我心里郁闷了一下,对啊,之前的排序算法都是基于数组的,到了链表,就不是这么一回事儿了。我思考了挺久,最后缴械投降。本来还以为有写代码的,没想到面试官说,今天我们的面试就到这吧,请回去等通知吧!我心里咯噔一下,心里还想着用写代码扭转一下局势,心里的期待瞬间破灭了,心里想大骂:剧本不是这样的啊!!!
         回来之后,没时间忧伤,迅速上网查找今天被问到的东西,最后双向链表排序的考察,网上没有相关信息。后来,我另一个同学去面试的时候,也问到了这个问题,我已经提前和他说过这题了,所以他的回答和我差不多,也是知道使用堆排,但不知如何建堆。他的面试官比较好,告诉了他最后的思路:其实双向链表的节点结构和二叉树的节点结构是一样的,我们建堆的时候只需要把堆节点一个一个填到双向链表的节点里面就好了。我顿时恍然大悟!!对啊,我当时为啥不从节点结构体入手呢?嗯嗯,总结提高,涨姿势了!
          在无限忧愁的当天晚上10:33,收到了第二天复面的短信,惊呆了的同时,前进的脚步又再次坚定起来!
           4月9日11点30分-技术复面:地点仍在雅乐轩,等待的时候前面的同学都是一个个上去。当被叫到我的房间号的时候,竟然是五个人一起上去的!卧槽!是群面!心里没时间思考为什么是群面,在电梯上的时候便猜想着群面可能会遇到的各种问题。
         进入房间,面试官看起来就是那种老成的技术资深人员,让我们沙发上床上随便坐,他就在电脑上敲敲打打,我们等了好一会儿之后,他说,今天我们的考察是一道方案设计题,一共五个问题你们有30分钟自由讨论,随后你们一人讲解一道题。他说我们都是研究生,就出一道难一点的题给我们吧!这待遇实在让人酸爽!
         我们的题目大致是这样:一张查找QQ群的截图,五个问题:1、如果让你来设计这个功能,会使用哪些数据结构?数据产生的流程是怎样的?2、系统的架构是怎样的?3、千人千面如何做?4、如果硬件资源和网络资源有限,你要如何优化你的系统?5、还有什么查找QQ群的方法?
         这五个问题,我负责回答第二个。坦白说,这是第一次遇到要设计一个系统功能,而且是在面试的时候,但也没办法,只能硬着头皮上了。我们开始是先5分钟阅题,单独思考一下如何做,后来就开始了讨论,balabala~~具体的细节也不太记得了,总之大家竭尽所能,但感觉面试官不是很满意。总之设计题肯定要结合各种知识去综合考虑,还是挺考验一个人的综合技术实力的。像我的问题,系统架构是怎样的?我一开始就说是运用典型的C/S架构,中间再加上负载均衡。面试官打断我为什么你要这么设计呢?随后他就说了设计必须要针对需求,你一开始就说出了这么多,我还不知道你的需求在哪?我深表赞同,然后我就说基本的查找就是客户端请求与服务器应答,这样就是C/S架构,但是如果QQ群查找请求量剧增,考虑到区域性或资源有效利用,我们可以在中间加入负载均衡,让客户端的访问不会造成服务器拥塞,服务器的承载量也会大大减少,因此加入了负载均衡器。呼~我这个问题就这样结束了。
         群面完之后,还要单面,一个个进去,其他人在房间外等。在外头和他们聊天才了解到,他们都是华工研究生,我淡定地介绍我是广工的,要的就是自信!我是最后一个进去的,我前面那一位感觉有点危险了,因为他说话的情绪比较激动,我听到面试官最后说他犯了面试大忌容易冲动。我没有受前面那位同学的影响,淡定地坐下,等待面试官审阅我的简历,没想到第一句竟然问我:你考高多少分?囧!我回忆了一下,608。不晓得干嘛问我这个问题,随后看我简历有一篇专利,就叫我说说这篇专利是干嘛的(哈哈,终于问到专利了),我心里稍稍措辞,随后就娓娓道来。接着又问了我vim的复制粘贴(我简历上有写熟悉gvim),我当时脑袋空了一会,因为挺久没用了,稍稍回忆了一下,就说了快速复制一行是yy和粘贴是p,他也笑了,估计是等着看我笑话没看成(我是不是有点腹黑)。接着问了我堆排序和冒泡排序的区别,我就从时间复杂度和空间复杂度分析了一下,比较简单。最后问我如果有一亿个大于0的整数,可能有重复的,也可能没有,如何找出中位数。面试官让我默默思考了一分钟,我说了一个方案,用堆排,将一亿个数分成元素个数相等的若干块,每一块利用堆排找出最大的前100个数,然后这若干块的堆顶进行比较,找出堆顶中位数,则这一亿个数的中位数肯定处于这一堆所在的块,然后再用一般方法处理即可。他好像也比较满意,直接说等明天HR面吧,然后我走出了房间,心里有一些小激动,立刻微信查了查面试状态,立马变成了“已处于HR面环节”。
         回去之后想了想面试官最后问的找中位数的问题,感觉自己的方案还是有问题的,只是有个别思路对了,但是更深一层面试官没有追究。果不其然,当晚10:03收到了明天HR面的通知!Keep Moving!
         4月10日15点30分-HR面:这次女票陪我一起来的,我只上去了不到20分钟就下来了,女票还以为我被HR赶出来了(果然是亲女友,对我这么没信心!)之前就听说有人在HR面被刷的,抱着这样的心里走进了HR的房间。HR是一位40岁左右面相和蔼的蜀黍,我一坐下就和我说,你的简历我之前也看过了,没什么问题,我就想听听你的职业规划。我心里念叨:That's it??太爽了吧?我随意说了说,提了几个问题,HR最后都把实习的岗位和薪资地点都和我说了。这是我已经被录用的节奏么?窃喜了一下,和HR握了握手,寒暄了几句,大步走出了房间。
         和女票说完后她有点不敢相信,其实我也不太相信,网上的面经都是唬人的么?但每一位HR的风格都不一样吧,庆幸自己的好运!微信查了查面试状态,已变成“已完成所有面试环节”。
         4月17日11点07分-电话Offer:在整整一个星期七天的漫长等待后,终于接到了TX公司的电话Offer,在与我核对了个人信息之后,便告诉了我的实习岗是WXG的微信支付的事务型开发,地点在深圳。网投的时候我报的是MIG,不知怎么地被调到了WXG,是因为缺人么?后来发现也有人和我是一模一样的情况。但不管怎样,心中一块大石已落地,曾几何时的梦想已经看到曙光,心中满满暖流!

         Summary:
          1、技术强化从笔试可以看出,C++的考察占了很大比重,可能是由于TX的后台是C++写的吧。所以,懂C++的同学会占优势一些。除了编程语言,操作系统、计算机网络、数据库、数据结构都是必须考察的,无论笔试还是面试,每个岗位可能考察的侧重点不一样。其实没什么捷径可走,看书看帖做题积累,项目经验也很重要,因为亲身经历的项目其中的技术难点攻克总会留下深刻的印象,这些细节会在你面试的时候得到体现。
          2、从容面对面试的时候难免会遇到各种各样的面试官给出的“疑难杂症”,若遇到难以下手的,切忌直接放弃思考,一定一定要经过思考之后再做出结论,如果真的不会就实话实说;模棱两可的把思路大致说说;胸有成足的把思路答案以及相关的东西都可以阐述出来。像我在复面的时候,就遇上了群面这种面试模式,当时能做的不是焦躁,不是方阵大乱,只有见招拆招,从容面对,展现真实的自己,权当自己在参加一个小组会议。

          最后给自己也给有幸阅读此文的同学一句话:努力做一个有梦想,爱学习的实力派吧!

你可能感兴趣的:(技术,招聘,经验,腾讯,面试)