本文主要是介绍完整的腾讯面试经过,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从9月10号开始到现在快两个月了,两个多月中,我经历数次面试和笔试,在经历这些的同
时积累了不少的经验,也学到了不少东西,在此把它记录下来,算是和一起找工作中的同
学一起共勉吧。我是本校的学生,专业是机械制造及其自动化,找工作的主要目标是计算
机软件类和机械制造方向的国内的企业,所以意向去外企的同学就不必浪费时间看这些面
经啦,想去国内IT企业的同学可以继续看下去。本贴中我把最近的腾讯面试经过写下来吧
。腾讯是我经历的笔试面试过程中最为正规,梯度层次最为分明的一次面试过程,我将它简
单地总结一下,希望能对正在找工作和下一届的师弟师妹们积累一些经验。我的文笔不好
,所以写得不清楚的地方,还请大家见谅。
腾讯是10月15日才到我校来开宣讲会的,不早也不晚,刚好在高峰时期来的。此时间段刚
好是各企业宣讲会和笔试的高峰期,鉴于我对腾讯已经比较熟悉了,所以没有去参加腾讯
的宣讲会。在腾讯宣讲之前,我一直很关注BBS求职信息发布版,有若干个帖子是关于腾讯
内部推荐的,据说是将自己的简历发到某邮箱,就可以进行内部推荐,推荐的结果据说是
简历可以直接通过。在14号的时候,我发现了一个腾讯客户端的内部推荐贴,于是我在网
投过的基础上将自己的简历发了过去。后来我的简历得以顺利通过,职位意向是客户端软
件开发,并未强制我更改意向,这是腾讯做得比百度好的地方。笔试:
腾讯宣讲之后即开始发布各笔试名单,应该是属于海笔的那种,反正大多数同学都收到了
笔试通知,据说有4K多人参加笔试,我也很荣幸地在这4K多人当中,在西十二参加了腾讯
笔试。
笔试的题目难度还行,主要内容是C/C++的一些东西,包含一些数据结构、STL和智力题,
有很多陷进题目需要格外小心,这个如果对笔试有所准备的同学都应该知道。我记忆比较
清楚的是最后两道编程题。
第一题大概是:树的直径定义为两个叶子节点之间最长的距离,那么给出一颗树,求树的
直径。第二题可以转述为:10亿条数据中找出前100个较大的数据,只准遍历一遍数据。第一题我的思路是,对某一个节点而言,求出其所有子树的深度,然后取最深的两棵子树
高度相加再加2,由此得到以该节点作为基点的直径,然后递归对以每个节点为基点求其直
径,所有求出的直径中,最大的,就是树的直径了。对第二题,可以以小顶堆的形式来完
成,我想这也是出题人的意思。
很值得称赞的是,腾讯为霸王笔的同学准备了霸王笔考场,可见腾讯也不想因为简历筛选
的疏忽将优秀的同学拒之门外。
笔试完毕之后,我感觉自己应该是可以进入面试的,但因为忙于其他公司的笔试面试,也
没怎么准备它的面试。技术一面:
在参加完笔试两天后,收到腾讯的面试通知,腾讯的通知很有特色,全部在网上公布出来
,然后对有资格面试的人发一条短信,让你自己去网上查询关于面试的相关信息,参加笔
试四千多人,参加一面的技术类学生有1042人。我从晚上得知我是下午两点面试。于是我
一点过就感到了珞珈山国际大酒店,在一个会议室里边,已经有很多同学在哪里等候,首
先是填了一个应聘登记表。两点钟的时候,我到了指定的房间敲门,准备面试,但是半天
没有反应,于是我又返回会议室,问是不是搞错了,结果这时电话响了,原来是面试官叫
我下去面试,我估计我去的时候他还在睡觉吧。面试正式开始。
腾讯的面试很简洁,没有自我介绍,首先一来就直接整技术问题,第一面的问题全部都是
一些算法和基础技术方面的。第一个问题就是问我感觉笔试卷子做的怎么样,觉得在哪些
地方会有错。我说在STL的题目上可能会错一些,在有些陷进题目上可能粗心会错掉,最后
两题应该是不会错的。面试官接着叫我讲了一些最后两题的思路,然后问我有没有把算法
写到试卷上,我说写出来了,并且指给他看。接下来它又将第二道大题改了一下叫我做。
仍然是10亿条数据中选前100条数据。我很纳闷,说这不是和考试时的题目一样么,他说不
一样,我不要求你只遍历一遍,你重新给我想。我闷一会儿,想到了一种算法,先根据内
存大小,将10亿条数据分成若干组,依次读入一组数据,进行依次归并排序,形成有序序
列并输出到一系列临时文件中,接下来从每个临时文件中读入前100个数据再次归并,以此
递归,便能得到最终结果。看面试官的表情,应该是对了。接下来面试官又问,如果让你
在一个新城市中规划加油站的建设地点你应该怎样考虑,这种问题完全没有标准答案,于
是我就按照软件工程的思想那一套理论开始跟他侃,包括做前期调研啊,可行性分析啊,
考察司机加油习惯,环境及交通问题啊,需求更改啊,后期完善啊等等,这个问题算是对付过去了。接下来又问了一个关于WinSock基本编程的问题—TCP服务
器与客户端编程,还好我提前准备了一下,应付过去了。后来又问了一些Windows内核编程
的一些东西,比如线程消息队列,工作线程与界面线程的区别,工作线程有消息队列吗。
我一直以为这些方面是我的强项的,结果有些问题居然没有回答上来,比如工作线程有无
消息队列,我当时脑袋发卡,说不太清楚,面试完毕一出门我就想起来了,工作线程当然
可以有消息队列,只要调用GetMessage或PeekMessage之类的API就能形成一个消息队列啊
。总之第一面的问题感觉很基础,很杂,我自己表现也不是很好,可能要挂掉。最后面试
官问我有什么问题,为了挽回我前半段的失败,我问了两个问题,第一是为什么QQ2009取
消入口参数而导致了所有QQ登录器都不能正常工作了,他并没有给我一个满意的回答,其
实我是想要向它表述我自己开发QQ登录器的一个完整过程,表明我对QQ客户端还是比较注
意的,嘿嘿;第二个问题,我向他请教QQ大家来找茬游戏的游戏界面为什么不能被其他程
序绘制标记,这个问题我在开发这个游戏作弊器的时候遇到过,因为一画上去之后立即就
被擦除了,这个面试官本身就是做游戏开发的,所以很了解这个技术,就跟我说是用什么什么技术导致其他程序无法在界面上绘制标记,主要是为了防止用户作
弊,我后来说,我还是把这个作弊器做出来了,我用了一个透明窗口悬浮在游戏窗口上方
,在透明窗口上标记出不同点,为了让用户看起来这些标记像是直接绘制在游戏窗口上,
我做了一个钩子,拦截了游戏窗口的相关消息,效果非常好,你们如果要防作弊,是不是
也应该从这方面考虑一下呢,他笑着说,他们有专门的防外挂团队麽样麽样。临走时,我
觉得自己表现不是很好,弱弱地问了一句,我有没有希望过这一面,他说,三天之内等通
知吧,还说了一句,小伙子要对自己有信心嘛,百度技术二面你都过了你怕什么?我只好
灰溜溜地闪人了。
并不是所有同学一面都很难,后来回家后问了一些其他同学,他们说他们的第一面很简单
,就是随便问问项目和一些简单的问题就没了。技术二面:
腾讯的技术二面也是不尽相同的,后来我得知很多同学的技术二面都是聊聊项目啥的就完
了,而我除了项目之外还有很多很搞笑的题目,包括智力题。
虽然感觉一面不是很好,但是我还是报了一点幻想能进二面,很幸运的,我如愿以偿地进
入了二面,一面不知道刷了多少人,一半多至少应该有的,我想可能是我一面最后的几个
问题发挥了一些做用吧,^_^。二面我感觉非常轻松,因为当时我已经拿到了中国电子科技
集团第二十九研究所的offer,那是个非常好的研究所,我本来都打算签那里了。所以对于
QQ,则是能去就去,不去就不勉强啦。仍然是下午两点面试,我一点四十就来到了指定的
房间外边,看到HR正在那里等着,我也没有进去,面试官也没有叫我进去,因为时间没有
到,一点五十九分,我准时敲门。这一面的面试官一直在笑,感觉笑里藏刀。因为我当时
已经释然了,所以倒觉得无所谓,非常放松。面试正式开始。
首先要我介绍一下我做的最大的一个项目,我噼里啪啦一大堆的说出来,这一关自然好过
。面试官见没什么好问的,就开始整其他题目。第一题是有两个文件,每个文件里边包含
100万个手机号码,要求两个文件的交集和并集。我略微想了一下,这个题目和虹软的一个
考题类似,大致思路是先对两个文件按升序排序,然后分别用两个指针指向俩文件,向后
扫描,当两指针指向的号码相等怎样,不相等怎样等等;第二个问题是一个关于操作系统
的生产消费者模型在Windows下怎么实现的问题,关键是CreateSemaphore API,不要求写
代码,但要求说出思路,这题不难;第三题是一个文件,是压缩之后加密更好呢,还是加
密之后再压缩更好,这题把我郁闷死了,我没搞过这东西,自然不知道,但是细细一想,
觉得应该是加密之后再压缩好,因为压缩的基本原理是将二进制按一定算法进行再次编码
使文件处于一个二进制分布较为紧密的状态,如果是先压缩再加密,那二进制的状态可能
不是出于紧密状态,基于这种考虑,我认为加密之后再压缩更好。第四题 A、B两节点,中
间一条链路,链路是单工链路,要想办法变成双工链路,这道题我是这样回答的,借鉴CP
U调度的思想,可以将链路作为CPU,那么有两种方式,一是再引入一条链路,这样A->B一条链路,B->A一条链路,AB之间变成了双工链路,另一种方式是采用时
分复用的方式,将一个时间段分成两个子时间段,在一个子时间段内由A向B发送数据,另
一个时间段由B向A发送数据,这样在宏观上看来,AB间是一个双工链路,这两种方式对应
于操作系统中的并行与并发特性。第五个问题,为什么TCP连接中,数据包不容易被伪造,
这道题我不懂,我就随便瞎扯了一些TCP链接的特性,比如它是面向连接的,有滑动窗口,
有ACK号严格匹配等,所以不容易伪造,也不知道回答对没。第六个问题是一个智力题,把
3/4个正方形划分成4个面积形状均相等的子图形,我没做出来,他叫我说思路,我说这个
划分应该是和3/4个正方形中的三个小正方形的中心有关,但是我暂时没有想出来怎么划分
,很抱歉。六个问题问完之后,问我有什么问题,我就问了一下我被分到什么部门,他说
今天面试你的人是什么部门就代表你被分到哪个部门,他说他是海外事业部的,我过去之
后仍然做客户端,他给我讲了海外事业部主要是拓展QQ的海外业务等。后来又瞎扯了一些
,我说我有四个同学都到了QQ,连我们的院花都被QQ带走了,他问我是什么部门的,我说
她是学工业设计的,叫XX,他还在他们内部的通讯工具上查询看我说假话没。总之气氛挺轻松的,虽然题目并不简单。综合能力测试和HR面:
听我的同学说,二面过了就基本上确定了,其实并不是这样的,据我所知,参加综合能力
测试和HR面的同学还是有不少被刷掉的。据说QQ是要招200人,参加综合能力测试和HR面的
有233个人,意味着要刷掉33个人(其实不止)。
综合能力测试其实就只有10道题的行政能力测试题目和200多道性格测试题目,在网吧完成
的,没有什么特别的,只要不是人品有问题,应该问题不大。
HR面我被安排在上午十点二十,但是那HR可能刚开始太富有激情,一个人本来该面二十分
钟的,结果我前面的人面了四五十分钟,轮到我的时候都中午了,我面的时候,就有人打
电话叫他吃饭了,所以我就被匆匆地问了几个问题,包括我的学习情况,去深圳工作的话
和女朋友关系怎么办等等,没有什么特别的,这一面不要说错话应该就OK了。我面的时间
很短,我一出去,外边等待的一武大MM就说,你怎么这么快?我郁闷得很,心想这次估计
挂了。等待和签约:
HR面的时候,说31号前等通知,我从29号就开始盼啊盼,和一起参加HR面的几个同学都保
持联系,也和群里的同学在聊,从29号晚上开始,就有同学接到通知说通过HR面,具体的
等待后边通知,我一点消息都没有,有的同学通过内部的实习同学打听,据说也打听到了
他们在名单中,貌似被录取了,我认识的同学都不在海外事业部,所以我打听不到。30号
下午的时候,我着实放弃了,一个人买了一罐子鸡汤,窝到寝室看电视去了。晚上九点过
,电话来了,一看号码我就是知道是腾讯来的87166666,接起来果然是,HR有气无力地报
了一通我被录取的职位,仍然是海外事业部客户端软件开发,薪资XX,签约时间,要带的
材料,就挂了。至此腾讯的offer总算是拿下了,前后持续了半个月。后记:
因为综合考虑到IT业的不稳定,地理因素,MM因素,薪资因素等,综合了家人,朋友以及
白云网友的意见,我在1号拒绝了腾讯的签约。和我一起HR面的我所知道的同学中,有6个
人被刷掉或列为后备,只有我和另外一个武大的本科生拿到了offer,据我所知,那位武大
的同学也不会去腾讯,因为他打算去阿里研究院。
其实很多同学担心有人拿了offer又不去浪费了名额,其实这是么有必要的,就拿腾讯来说
,它有很多后备的人选,有拒绝的,那么后备的人自然补上,所以如果你足够优秀,仍然
是可以去的,不存在浪费名额的说法。总结:
1. 腾讯的整个招聘过程组织得非常有条理,而且为霸王笔的同学准备好了教室,据说还允
许霸王一面,不知是否属实,从这个意义上说来,腾讯公司还是很求才若渴的,不想因为
某些意外原因而错失人才;
2. 腾讯的招聘过程难度梯度比较明显,笔试时题目在我所参与的笔试中难度中等偏上,一
面是一些基础的算法、书本或编程中遇到的基础知识,二面在一面的基础上更进一步,考
察反应能力,我认为回答二面的问题基础知识是一方面,在基础知识方面仍然需要进一步
思考才能回答,正如我一腾讯的同学所说,二面是考思维能力吧。
3. 如果运气不好遇到比较喜欢问难题的面试官也不要紧,即使你有问题没有回答出来,他
也会综合考虑的。有些第一面问题非常简单的同学没有进入二面,这可能也和笔试成绩有
一定关系吧,所以笔试成绩也较为重要。
4. 腾讯技术类面试一般不需要穿正装,这个一般IT公司是一样的,比如百度宣讲时也再三
宣称,不要穿正装去面试。但是其他的,如产品类的,最好是正装啦。
5. 腾讯很保守,分两批通知人去签约,我猜想,第二批可能是补录的吧。据我所知的一同
学就被弄到补录名单中去了,这个对于学生而言,其实有些不人道,因为等待的过程是非
常难熬的。我的整个腾讯的面试经过就这些了,期望能对大家找工作有一些作用,总之心态最重要,
自信最重要,后序我将陆续奉上百度、阿里巴巴、国企、及其他一些需要群面的企业的面
经,有时间就写写吧,快离开学校了,呵呵。
这篇关于完整的腾讯面试经过的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!