标题

[腾讯]腾讯技术类实习生面试经验

责任编辑:admin
日期:2012-11-01

昨天我正式收到了腾讯的实习生offer,暑假我要去深圳的腾讯总部了~从开始想到申请腾讯实习生,一直到接到lily通知我拿到offer,过程还是挺曲折的~我只是想记录下这段经历
腾讯的面试是我第二次的正式面试。第一次是以前写过的51job.com重庆200强选拔赛中的面试,那次貌似碰到一个不搞技术的人来问我很多非技术的问题,我比较郁闷,他比我更郁闷。。。网申在http://intern.tencent.com/trip.shtml上有腾讯招聘实习生的介绍,现在还可以看到,不过貌似已经把每个职位的招聘人数去掉了。按我的记忆,以前网页上写明了,在全国招300名技术类实习生到深圳的腾讯总部实习。我看到这个要求,感觉自己还蛮符合的(至少不像MSRA的实习生要求那么高,在此羡慕一下sixsix),于是我进行了网申。在线填完简历之后,迟迟没有提交,因为面对繁多的职位不知道选哪个好。于是我想到了在腾讯工作的晖哥,咨询他老人家当然是必不可少的~牛人都是很忙的,晖哥也不例外,不过晖哥仍然愿意在繁忙的工作中为我出谋划策。在网站上可以看到腾讯的招聘计划中,没有任何一个职位是在重庆招聘的,这让我感到希望渺茫。如果这个时候我仍然执着地等待网申的结果,可能我就与腾讯无缘了。。。于是我选择了:内部推荐事实证明,网申也没有任何回音。晖哥让我把电子简历发给他看看,耐心地看过之后,晖哥说希望我能来他的组工作。我也想啊。。。不过这件事不是晖哥就能说了算的。。。晖哥把我的简历交给他们部门的HR老大,然后让我等消息。

一面 63日上午1054分,晖哥给我QQ发了条消息,说准备一下面试,随时可能有电话,不过这个时候我并没上QQ。。。人在实验室做网络安全课程设计,大概11点接到一个0755区号的电话,心想应该是深圳的,果然是一面的电话面试。面试官是个男青年声音,问我现在方不方便讲话,我走到窗户边的安静地方跟他说方便。一面持续了大概20多分钟,基本全是技术面。他首先说看过了我的简历,让我从做过的项目里选择一个来谈谈。主动权掌握在了我的手中我就不客气了,我选择了Dreambook,这是我们DreamX小队最引以为豪的项目,经历过MSRA大牛们的提问,已经向不知道多少人展示过。他问了我一些很常规的技术面问题——介绍一下这个项目,我们开发团队有几个人,开发了多久,如何分工,我在这个项目中担任了什么职责,用到了一些什么技术,软件的架构和某些流程是怎样的,软件的缺陷和前景在哪里。了解了整个项目之后,他问到了一些技术细节——每个模块是依据什么技术和想法实现的,模块之间的接口是怎样的,测试是否考虑到各种实际情况,某些功能是否会在不同的情况下失效,软件是否做过性能测试,如何发现软件的瓶颈所在,软件是否根据用户的进一步需求改进过并且如何改进的,我们参加比赛的时候,我们的作品为什么比其他作品好。这个项目是我参与过开发周期最长的一个,他问到的这些问题,我们早就有过考虑,并且有着完善的解决方案。技术面没有难倒我。之后他问了我一个RP题,我认为自己在性格上的优缺点是什么。我说我的优点在于乐于并善于学习新鲜的东西,然后举例说明,缺点在于有时候容易骄傲自满,我自己也知道这个缺点,正在努力改进中。。。
最后他问我对腾讯公司有没有什么想了解的,或者想问的问题,我说没有。他问为什么,我说我有晖哥,以前了解过一些,以后有不了解的也可以问他。然后电话就挂了。晖哥问起我,我才发现我不应该不问问题。晖哥猜不出是谁面的我,我还不知道什么时候会有二面的消息。。。于是再次等消息。。。

二面 64日,晖哥告诉我,一面通过了,等端午节过了准备二面。我跟晖哥说,看来腾讯对实习生的技术要求不高啊,一面还是比较简单的。后来才知道,BT的在后面。二面过程是我目前见过的第二BT面试(第一BT的当然是MSRA的面试)。幸好我还是认真准备了的——我在网上搜以前腾讯招实习生的笔试面试题,结果一个都没有,只有招员工的时候的笔试面试题,我就按这些题准备,思考腾讯可能考察哪些方面,后来确实派上了些用场。这告诉我,无论认为多么简单,面试一定要有准备。 617日,一个陌生的女人闯入我的生活,她就是lily。她打电话告诉我恭喜我通过了初试,希望我能参加在成都进行的复试。我问了一下lily,为什么要去成都,不来重庆面,她说因为重庆地区通过了一面的就我一个人。。。我彻底绝望了,看来不得不去一趟成都。我问二面是谁来面,她说是一个部门的主管。我又问二面主要是什么问题,她说还是以技术面为主。晖哥建议我准备一下算法。 619日早上,我在川大旁的一个酒店12楼的客房里面试,lily给我的schedule9点到9点半面试,实际上从9点面到了1045分。在这1个多小时内,面试官的问题密度灰常大,覆盖面之广,技术难度之深,在本人短暂的职业生涯中史无前例。他问到了Unix/Linux 或 Windows 开发平台下的CGIJS\AJAX\CSS\ASP\FLASHJava?EE网站开发,Java?ME手机开发,嵌入式,3D渲染原理,3D游戏引擎,网络分层,TCP/IP协议的原理,Winsock编程,服务器集群,分布式,Web服务器原理,数据库设计,数据库压力测试,搜索引擎技术,基于.Net/C#Web开发,大并发访问网站的架构设计,软件工程,算法和数据结构。基本上把我熟悉的,我了解皮毛的,和我听说过的,我没听说过的,全部问了一遍。面完出来之后,我的头都是晕乎乎的。。。二面的面试官人很好,我没回答好的问题,他有时候会给我解释一遍。他把我的每个项目都看了一下,针对每个项目都有至少一个的比较有深度的问题。因为问题太多,具体的印象比较深刻的问题能想起几个就写几个:让我把Dreambook软件的系统架构图画出来,问我系统架构图、功能模块图、用户流程图的区别。(这个比较简单)哪个部分是Dreambook的核心,为什么?下载一本书的所有网页后,生成一本书的目录、每章、每节之间的链接,这个树形结构分析的算法是怎样的?去除每本书的网页的广告内容时,如何判断哪些是正文,哪些是无效信息?(模糊匹配算法)是否是基于HTML标签的?(是,但是不全是)是否是精确匹配的?(不是)如何做用户需求分析?是不是需要准备什么?举例说明。对BaiduGoogle搜索引擎的原理了解多少?我们的搜索是搜索全文还是搜索摘要?(搜索全文,举了Lucene的例子说明全文搜索原理)搜索量很大时,如何保证性能高效?(将搜索结果分页显示,一次只列出10个搜索结果)有没有在Linux下做过编程?开发平台是什么?写出该开发平台编译一个test.c文件的命令。有没有开发过3D游戏引擎?做了一个什么样的游戏?这个游戏的特色在哪里? OSI网络7层结构是什么?详述TCP连接3次握手的过程,如果在VC下开发,这个过程分别对应调用哪些Windows API?(我发现这个问题是腾讯对所有人必考的问题)设计一个异步传输模式下的数据包结构。对Java?EE框架下的SpringHibernateStruts了解多少?对一个Web服务器的原理机制,比如Apache服务器的原理机制了解多少?IIS呢?叙述当一个用户登录QQ时,与腾讯的服务器进行连接的过程。需要经过几层的路由?如果要自动选择最快的服务器进行连接,应该用什么方法实现?测试用户与腾讯的多个镜像服务器之间响应时间,是由用户发起测试还是由服务器发起测试?(服务器)采用什么协议测试?(ICMP)对于一个访问量很高的网站,性能瓶颈在哪里?可以做哪些优化,架构如何设计?如何探测一个网络协议漏洞?发出的探测数据和接收到的响应数据是怎样的?如何判断是否存在漏洞?最后一个问题印象最深,他说最后一个问题很简单(他笑),就是让我写一个双向链表的插入删除操作,要求1:每次插入删除之后,链表里的元素——假设是int——是按升序排列的;要求2:必须用实现2个类CNodeCLinkCLink类里面封装add()delete()方法。时间是20分钟,他要求我在这20分钟内,从12楼坐电梯下到1楼大厅,在大厅找个桌子,用纸笔写好,然后上12楼交给他。我在XXY寝室里写模拟文件系统写到4点睡的,写了一晚上的指针操作,这个问题我还是比较熟悉,按时交给了他。代码有优化的余地,不过没来得及优化,跟他说明了一下。注意的地方有2点,一个是指针操作的时候,删除哪个,连上哪个,操作顺序安排容易出错,要细心,还有就是添加和删除的结点位于第一个和最后一个时,处理方式有些不同。最后他问我有没有什么问题,我问他什么时候给答复,他说下周内。然后他就叫下一个面试的同学进去了。面完了才知道,这个面试官是晖哥所在部门老大的老大。。。大大牛啊~总结这次面试为了接下来的学习给出了参考,我也得到了不少体会。

阅读:

评论