依旧从Qzone弄过来的。
在4月七号的时候,早早的我们就来到了望江基教楼,等候腾讯笔试,还记得那天的笔试题也不是非常难。之前网上找了一点"真题",一看全是考C++的,果断这段时间都在复习C++,然后顺便也复习了一下数据结构,算法,操作系统,数据库,然后也看了一下传说中的《程序员面试宝典》(当然,是盗版的)。
拿到腾讯笔试试卷的时候,我极度无语了,这些题完全与语言无关,考得都是计算机的一些基础知识,包括了算法, 数据结构,还有排列组合,设计模式,智力题。虽然我对高中的知识比较熟悉,但是貌似这三道排列组合的题我都是猜的,果断汗颜了~~
智力题还好,觉得也不是好难,比如有一道题:猜一个1到100的数,如果你猜的结果比实际的小,那么提示你小了,如果猜的结果比实际的大,那么以后都不再给你任何提示,只说明是否正确,求怎么样去选择使得猜数的次数最少?
其实还是蛮简单的,凭着第一感觉,果断觉得:10,20,...,90,如果这个数在90到100,然后从90猜到100,这样次数最少,当然,当时没有啥子证明。
当时貌似考了一道设计模式的题,果断比较happy,因为设计模式我还是知道一些的~~~
总体上,腾讯笔试题分为选择题和填空题,后面有两道编程题,不过是选做,不计入总分,貌似当时我把第一道选做题做了一点点。
4月13号下午五点多收到第一面的通知,心情非常激动,主要是之前也参加了小米的笔试,果断后面没下文了,现在想一下,很有可能他们就不招PHP程序员,不然还是有自信,应该可以去面试走一遭的。。。
PS一下,13日那天,从早上到一教D座编写框架开始,心情就颇不宁静,之前笔试通知时在早上九点收到的,果断认为一面通知也会在早上收到,结果到了十二点也没收到通知,当时果断心情相当低落啊,然后又阿Q了一下,腾讯成都招聘微博上面说:最后一批一面会在13日下午通知。所以果断想我是最后一批,现在想想,当时太阿Q了。
下午勉强坚持到两点多,因为王浩林这次没过来,整个教师休息室就我一个人,当时完全没得心思写代码了,又没收到短信,当时果断觉得腾讯是不是将信息发到邮箱了,果断狂刷邮箱,还是没得啊~~~
实在是坚持不了了,果断伤心了,回寝室放下电脑,找了4班的孙林,出去喝酒去了。
现在感觉世界上的事情总是这么凑巧,我们喝完酒,回到食堂吃晚饭的时候,我收到了腾讯一面的通知,还记得当时时间是:17点42分。
第一面的时候腾讯大厦的人超多,我是9点20面试的那一批人,大厦下面有保安维持秩序,只允许马上要进入面试的人进入腾讯大厦六楼面试。到了6楼,果断感觉腾讯的环境还是挺好的,还有就是人真多啊~~~~
那天过去的时候,我是和张业辉一起过去的,他貌似面试时间是10点。
PS一下:其实张业辉本来是前一天面试的,果断他搞ACM走火入魔了,当天没去,然后腾讯人力资源的人主动给他打来的电话,询问他没去的原因,并且邀请他第二天过去面试,从这里看出,腾讯对人才还是比较看重的。。。
一面面试我的考官是7号,看着挺善良的。进去之后将简历递给他,然后问道:“请问我可以坐下吗?”,得到同意后,我坐了下来,然后做了做自我介绍,貌似是下面这样的:
“您好,我叫明庭令,来自四川大学计算机学院,我从大一的时候开始接触互联网,然后就深深的迷上了它,也就开始慢慢学习CSS,PHP,MYSQL,JAVASCRIPT,在学校里面和外面做了一些比较小型的项目,现在拥有自己的网站,也开始编写我的第一个PHP的框架Toper。”
说完之后,我询问了一下面试官,“刚好我今天将Toper的源代码带了过来,我可以拿给您看看吗?”
得到同意之后,我站了起来,将U盘插上,然后给他介绍了一下Toper的原理和各个文件的功能,此处省略N个字啊。
介绍完了之后,他又问了一下Toper的缓存的原理,我介绍了一下文件缓存,数据库缓存,memcache缓存等等,貌似他挺满意。然后他问到:“我们这一块儿是做腾讯微博的,如果你实习,需要到北京,你愿意过去吗?”我想了一下,如果不去,必然以后就没有机会了,于是只有被动的服从调配了。然后面试官就说“我这一关您肯定过了,明天或者后天你就会收到二面通知的。”然后果断就很happy的出去了。
其实总体上来看,一面非常轻松,基本上我掌握了主动权,没有给面试官发飙的机会,所以果断进入了二面。
PS一下:我觉得有点遗憾,我们班其他几个牛人,都在第一面被刷掉了,其实现在我猜测是因为他们没有掌握主动权的原因,就比如高兴亮,面试官直接问他关于SSH的底层原理以及你是否能够写出这样一个框架,还有SOA(面向服务的构架)的问题,这谁能答的出来啊?
孤孤单单到腾讯大厦二面,二面的人少多了,也没有了保安维持秩序了。二面的面试貌似也非常简单。
这个面试官和一面的面试官都是做腾讯微博的,很幸运,一面的面试官将我的Toper代码拷贝了一份回去看了看,顺便也给他同事看了看,所以二面的面试官在面试我之前已经看过我写的Toper的源代码,所以他可能稍微有点注意到我。
本来还想又介绍一下Toper来糊弄过关,可是明显不行了,很直接的,他让我用PHP编写一个函数来实现遍历某一个目录的文件和文件夹,实际上也就是考察一下PHP的基础咋样。
Luckily,我之前在Toper中就写过这个文件夹的遍历,广度优先和深度优先我都写过,所以没得啥子技术难度,为了保险,我还是就写了比较简单的深度优先,也就是采用递归调用的方式编写,而那个广度优先,因为需要使用队列,所以果断pass了。
写完这个,他问我“你觉得大学里面专业课里面那门课最重要?”,然后我想了想,回答道“数据结构“。
然后他就拿出草稿纸,画出了一个二叉树(不是完全二叉树),然后说道”现在在内存里面有一个二叉树,你需要将它转化到文件中,并且文件中的这个二叉树还能够无损的转化到内存中。“然后让我描述一下思路。
我思考了一下,写出了一个比较菜的版本,使用它的左右孩子节点来实现,后面又想到使用孩子兄弟节点实现,后面又想到将这个二叉树添设虚节点,使之成为完全二叉树(当然,这个非常不好啊)。说了三个思路,面试官还是继续问”还有方法吗?“
我果断想不出来了,然后他提示了一下,二叉树有先序,中序,后序来遍历,从中选择两种不是就可以唯一确定二叉树嘛,对的,那样效率比之前的几个版本要高多了。
谈完二叉树,我们就回到了Toper,询问了我的标签库等等,问到了smarty,这个对我比较简单,所以很轻松的就过了。
谈完smarty,我们又讨论了一下Toper的效率问题,以及什么时候该使用已经比较成熟的框架,什么时候使用自己编写的框架等等等等。
这些谈完之后,果断又回到了北京这个问题上,又询问我是否愿意到北京去,然后实习的时间是什么,然后我能够实习多久,这些都得到比较满意的答复之后,我的二面基本上也就结束了。
昨天下午三点半,我收到了三面的通知,也就是最后一面HR面,当时我心情非常激动,终于闯到最后了。
三面实际上非常简单,我面试时间本来是今天下午四点的,我一点半就到了,果断就只有2个人在哪儿等着面试,然后询问了一下工作人员,他问我愿不愿意提前面试,这有什么不愿意的啊,果断就一点半把四点钟的面试给面了。
三面的面试官是一个美女,果断觉得那几个面试官里面面试我的面试官是最好看的, 真的好幸运啊。
三面没有任何的压力,我们从我的小学一直谈到大学,什么都谈论,甚至于我们寝室有几个人,你最不喜欢室友的一件事,你们寝室有多少人有女朋友了等等,反正很轻松,半个小时一下就过了。
离开腾讯大厦我才从同去三面的同学那儿了解到,二面结束的时候,被刷掉的与过关的比例已经达到了60:1,也就是说有2000多人填写了简历,现在只剩下40多人来到了三面了,可能你们觉得40多人还是挺多的,可是如果你们到join.qq.com去看一下,它这次招实习生有多少项,你就果断无语了,每一项估计也就招3个人左右吧,整个四川招3个,好残酷啊!
感觉好幸运,一下到了三面,虽然三面也会刷人,但是不论我最后能不能拿到offer,我都不会后悔了,因为我至少已经到了HR面了嘛~~~~
4月26日,终于和腾讯签offer了,劳动终于有成果了,很happy!
未来在自己手中,加油~~