腾讯实习笔经面经总结【转】
离腾讯实习生招聘已经两周了,网申、复习、笔试、面试。最开始并没有想到会进入到专业二面,也没想到一面会被面那么多次。因为不是计算机专业,连相
关专业也算不上,一直还在担心简历筛选就会被鄙视掉,甚至还做好了霸笔的准备。作为人生中的第一笔和第一面,从中得到了一些经验,也明白了自己的不足。把
这次经历写于此,算是对自己的一种鞭策。
【网申+笔试】
四月初看到的招聘信息,因为对.net比较感兴趣,而且论文也是要用到.net,于是
便选了.net方向。填专业的时候其实挺纠结的,因为本科专业跟计算机一点也扯不上关系,很担心简历筛选被鄙视掉,于是在项目经验那里写了不少,五一放假
的时候还做了个项目展示的网页,能让别人直观的看到自己做的东西,还是比单纯的文字描述比较好吧。
因为是报的.net方向,所以花了将近1个月的时间看.net的东西,但后来看了别人写的笔经,才发现失策了,腾讯软件开发方向考的几乎都是数据结构、算法还有C++的基础知识。幸好发现的时候离笔试还有半个月,不过已经来不及把所有的专业课本都通看一遍。小郁闷。
腾讯的笔试都是很基础的东西,但却又考得很细,看着都会却容易做错。跟笔经上写的差不多,数据结构、算法、面向对象、操作系统、C/C++等,还有考了
几个linux中多线程那部分的函数。有些东西就得看平时的积累了,也不是突击一下就会明白的。指针也考得比较细,指针常量、常量指针、二维数组的指针等
等。还有三个附加题,考的都是数据结构和算法,看第一遍都是似会非会的感觉,看来还是基础没打好啊。一个是链表的合并问题,数据结构上有现场的例子,不过
这次要求用递归来做,结果死活没想出来(请鄙视我吧);还有一个,其实就是二叉树的最广优先搜索,题目没说用递归,但我用递归做了(汗一个);最后一个,
四个人谁是小偷,看谁说了谎,谭浩强的C语言书里就有。
笔试题做完的感觉就是,觉得自己都会,但做着总是不是太顺。再加上是在环D考的,没有桌子,只有一个桌板,我的脖子那个酸啊。
软件开发类的面试名单终于出来了,被安排在第一天下午。毕竟是第一次面,有点紧张,也不知道还剩下的半天时间该看些什么书。把钱能的C++翻了翻,拿着简历去了酒店。
【面试】
一面,挺温和的一考官。首先便是自我介绍,我就从我本科的项目开始说起,说到现在的项目。面试官说他是游戏开发方向的。当时很奇怪,我明明报的是.net啊。他说可以先继续这边的面试,面完了再帮我找个.net的面试官再面一次。
结果第一个问题就没答上来。Win32窗体应用程序和控制台应用程序之间的区别。可能是看到我做过不少win32的项目吧。只是记得侯捷的那本深入浅出
MFC好像提到过,不过N年没看早忘了,只能说了个无关紧要的答案。考官说,本质的区别是前者有消息循环,后者没有。额。接下来就开始问C++里的概念,
还有一些基本的数据结构,以及STL等。幸好这些都答上来了,心里终于放心了些,我还不是一个都不会。说到vector的时候,问什么时候需要复制里面的
元素,我说比如vector的长度超出了其容量,因为前几天刚看过,重点看了vector容量与性能的关系,所以这点记得特别清楚,结果忘记了最基本的插
入删除也需要移动元素。估计面试官听得比较郁闷,这娃杂老想着vector爆掉呢。还问了个设计模式的问题,还好上个月专门把这些给恶补了下,给他描述了
一个观察者模式的场景,然后他继续追问我程序应该怎么写,因为只是做过练习,没有实践过,所以只能说忘掉了。
最后面试官说,我可以推荐你复
试,但因为你报的是.net,我可以再安排你面一次,我们了解下你的情况,你也自己权衡下。当时心里一阵惊喜,虽然有些问题没答上来,貌似面试官还是比较
满意吧。不过,他突然问了平时玩什么游戏,有兴趣不。因为平时几乎不玩网络游戏,只能实话实话。又问,那你平时玩啥呢,当时也不知道脑袋里哪根筋短路了,
我说我玩连连看(暴汗中)。面试官笑了,说这个东西还是需要兴趣的。然后就给另一个面试官打电话,说C++基础还可以,再来面一下.net。
被带到第二个面试官那,额,好年轻,估计比我大不了多少吧。面试的时候很明显没有第一个面试官那么沉稳,很随意的感觉。自我介绍完后,就拿出我笔试的考
卷,开始问我答错的地方,都是问的那几道附加题。首先就是那个链表合并的递归问题,问我:你这是递归吗?我说不是。那你现在写给我看看。当时被鄙视得,
哎,因为我还是写不出来,下来也没看。不过还好,后面两个附加题,又叫我做,都弄出来了。没想到又出了一道算法的,1亿个数从中选出第十大的,你怎么做。
那一刹那我终于知道我的弱项了,那就是算法还有数据结构。我说可以把这1亿个数分成N部分,选出每一部分的最大者,把这些最大者放一块,再接着分成N分,
再找每一部分的最大者……不过,好像他对这个方法并不满意,也没继续问,就开始看我的简历,突然说:你是报的.net啊,我给你找个.net的面试官。我彻底无语了。
一面第三次,我做了第三次自我介绍。然后便开始问问题。不过没有太多技术方面的东西,只是随便说了说.net最基本的东西,比如现在.net到多少版本
了。又问到了xml的一些应用方面。因为简历上写我拿到了RHCE证书,又问了些linux下Apache服务器配置方面,可能是因为没有一个完整
的.net项目经验,只是因为兴趣报了.net方向吧,应该是被.net组的人鄙视了。然后说他们再横向评测下,让我等通知。
因为第一次面我的那个考官说推荐我复试,所以心里还是蛮放心。至少第一次面表现还可以吧。
晚上接到电话,叫我第二天一大早过去面试。也是不知道该看些什么,因为我觉得真的要靠平时的积累。回忆了下当天的情况,第二天6点就起了,把那个链表合并的递归方法看了下,又想了一下可能会问我的问题。其实面试安排得很紧凑,没多少时间来准备。
去了电话通知的那个房间,又是个很年轻的GG,难道这就是二面么。一开始又是自我介绍,昨天介绍了3次,轻车熟路了,于是鼓足精神又来了次。面
试的GG又拿出我的笔试卷子,说我还考得可以。天咧,67分还算可以啊,也许这个GG在安慰我吧。同样又是叫我做一道我做错的题,不过,不是我一道早起来
看的那道,我心想完了,又栽在笔试题上了。是一道填空题,有关位操作的,考官还一直在那开导我,结果还是没做出,再一次开门挂彩。
然后便叫
我写linux里面用gcc编译链接C程序的命令,还好平时一直在linux下用命令行,这关很轻松地过了。考官接着深入问Makefile的作用,记得
不是太清楚了,但还是记得一些最基本的,比如依赖性检查啊啥的。接下来又是STL的问题,看来腾讯很喜欢C++里面的这个库哈,有了昨天的经验,这个问题
回答得很轻松,也比较全面,第一点第二点也比较有条理,貌似考官比较满意,因为我在回答的时候提到了一个二分法查找,便追问我,在list里面能不能使用
二分法呢。我想了想说,如果真的要用代码来实现的话,还是可以办到的。用一个指针指向head,一个指向tail,tail指针从头跑到尾的时候,可以得
到list的size,说到这里他打断我说,你都用一个指针把链表跑了个遍,你还需要二分查找么?考官开始笑。额,但这个时候气氛很明显的缓和了很多。虽
然回答地有点荒唐,不过好像没有想象的那么糟糕吧。最后又问了我TCP/IP里的东西,包括七层模型,IP与TCP、UDP的区别之类的。因为之前准备过
思科的考试,笔试之前也看过,所以这一关也过了。然后就开始跟我聊别的,比如暑假怎么安排,导师同不同意我去实习之类的,平时上不上什么技术博客,都看了
什么技术方面的书等等。觉得今天这位面试官对我还是挺满意的,感到我机会还是蛮大。但那个时候,我依旧不知道这一面是不是复试面。最后他开始填表,让我等
等,说是还有一面。中途我问他接下来的是hr面吗?被告之不是,还是技术。我的天啊。
又是一面。这位面试官看起来好资深的样子,也是这就是技术boss吧,似乎还不是大陆的。还是自我介绍。好吧,我两天重复了5次了。介绍完了开
始聊我做的项目。各位看官,我当时一直觉得聊天的这段蛮好,但后来想想,也许我就是在这一段被彻底鄙视掉,无缘这次实习的。首先,我说我在项目里用到了全
局变量,鄙视点之一。第二点,在回答为什么使用多线程编程的时候,我把一个概念彻底搞混了,就是信号量还有互斥对象,因为没有复习操作系统,把一个进程里
的概念给弄到线程里了,感觉就是我基础一点也不扎实。接下来叫我写个有关链表的程序的时候,没有delete掉内存。对我编的那个程序,这位面试官一直在
挑刺,但也看出来他的严谨,从一个10来行的程序里看到了很多东西,包括命名是否规范,思路是否清楚,代码是否简洁。最后一个题,被鄙视得无与伦比,N只
球队、单循环赛、M只出线,问至少积多少分,才有出线的可能性。一张纸一支笔,半个多小时,结果是没有结果。最后的最后,跟面试官握手,然后他开门送我出
去。
后来我找了之前那我面试我的GG,他帮我问了下结果,答复我的是,不能马上确定要不要我,让我等短信吧。等了两天,被鄙视了。
【总结】
1、腾讯对基础看得非常重要,项目再多基础不扎实的话,也不会要你。基础一定要打牢,数据结构、算法、操作系统、C/C++以及面向对象的基本的东西。
2、面试,虽然临阵磨枪也有点用,但很多东西是要靠平时积累的,面试的时候,不知道就是不知道,不要装懂,对自己不熟悉的东西要尽量回避,不要往上面绕,说不定就被追问下去了,扬长避短吧。
3、对于面了N次的情况,不管上一次结果如果,都要把当前这次当成是新的开始。千万不能二而衰,三而竭,我第一天被面了三次的时候,精神面貌很明显没有前面那么好了。
4、平时看***得做学习笔记,做项目时,做完了多想想,不要仅仅为了实现功能。
5、心态上,不论周围怎样一定要淡定,耐住性子。
最后,向前冲吧。Cheer up!