塞门短文
职场短文,来塞门吧。--赛门职场文章

2009年里我经历的腾迅面试求职全过程

    腾讯的笔试面试过程中最正规,梯度层次最为分明。 笔试: 腾讯宣讲之后即开始发布各笔试名单,应该是海笔,大多数同学都收到了笔试通知,据 说有4K多人参加笔试,我也很荣幸地在这4K多人当中,在西十二参加了腾讯笔试。笔试的题目难度还行,主要内容是C/C++的一些东西,包含一些数据结构、STL和智力题, 有很多陷进题目需要格外小心,这个如果对笔试有所准备的同学都应该知道。我记忆比较 清楚的是最后两道编程题。第一题大概是:树的直径定义为两个叶子节点之间最长的距离,那么给出一颗树,求树的 直径。第二题可以转述为:10亿条数据中找出前100个较大的数据,只准遍历一遍数据。 第一题我的思路是,对某一个节点而言,求出其所有子树的深度,然后取最深的两棵子树 高度相加再加2,由此得到以该节点作为基点的直径,然后递归对以每个节点为基点求其直 径,所有求出的直径中,最大的,就是树的直径了。对第二题,可以以小顶堆的形式来完 成,我想这也是出题人的意思。很值得称赞的是,腾讯为霸王笔的同学准备了霸王笔考场,可见腾讯也不想因为简历筛选 的疏忽将优秀的同学拒之门外。笔试完毕之后,我感觉自己应该是可以进入面试的,但因为忙于其他公司的笔试面试,也 没怎么准备它的面试。 技术一面:在参加完笔试两天后,收到腾讯的面试通知,腾讯的通知很有特色,全部在网上公布出来 ,然后对有资格面试的人发一条短信,让你自己去网上查询关于面试的相关信息,参加笔 试四千多人,参加一面的技术类学生有1042人。我从网上得知我是下午两点面试。于是我 一点过就感到了珞珈山国际大酒店,在一个大会议室里边,已经有很多同学在哪里等候, 首先是填了一个应聘登记表。两点钟的时候,我到了指定的房间敲门,准备面试。

    腾讯的面试很简洁,没有自我介绍,一来就直接整技术问题,第一面的问题全部都是一些算法和基础技术方面的。第一个问题就是问我感觉笔试卷子做的怎么样,觉得在哪些 地方会有错。我说在STL的题目上可能会错一些,在有些陷进题目上可能粗心会错掉,最后 两题应该是不会错的。面试官接着叫我讲了一些最后两题的思路,然后问我有没有把算法 写到试卷上,我说写出来了,并且指给他看。接下来它又将第二道大题改了一下叫我做。 仍然是10亿条数据中选前100条数据。我很纳闷,说这不是和考试时的题目一样么,他说不 一样,我不要求你只遍历一遍,你重新给我想。我闷一会儿,想到了一种算法,先根据内 存大小,将10亿条数据分成若干组,依次读入一组数据,进行依次归并排序,形成有序序 列并输出到一系列临时文件中,接下来从每个临时文件中读入前100个数据再次归并,以此 递归,便能得到最终结果。看面试官的表情,应该是对了。接下来面试官又问,如果让你 在一个新城市中规划加油站的建设地点你应该怎样考虑,这种问题完全没有标准答案,于 是我就按照软件工程的思想那一套理论开始跟他侃,包括做前期调研啊,可行性分析啊, 考察司机加油习惯,环境及交通问题啊,需求更改啊,后期完善啊等等,这个问题算是对 付过去了。接下来又问了一个关于WinSock基本编程的问题—TCP服务器与客户端编程,还 好我提前准备了一下,应付过去了。后来又问了一些Windows MFC编程的一些东西,比如线 程消息队列,工作线程与界面线程的区别,工作线程有消息队列吗。我一直以为这些方面 是我的强项的,结果有些问题居然没有回答上来,比如工作线程有无消息队列,我当时脑 袋发卡,说不太清楚,面试完毕一出门我就想起来了,工作线程当然可以有消息队列,只 要调用GetMessage或PeekMessage之类的API就能形成一个消息队列啊。

||||

    总之第一面的问题 感觉很基础,很杂,我自己表现也不是很好,可能要挂掉。最后面试官问我有什么问题, 为了挽回我前半段的失败,我问了两个问题,第一是为什么QQ2009取消入口参数而导致了 所有QQ登录器都不能正常工作了,他并没有给我一个满意的回答,其实我是想要向它表述 我自己开发QQ登录器的一个完整过程,表明我对QQ客户端还是比较注意的,嘿嘿;第二个 问题,我向他请教QQ大家来找茬游戏的游戏界面为什么不能被其他程序绘制标记,这个问 题我在开发这个游戏作弊器的时候遇到过,因为一画上去之后立即就被擦除了,这个面试官本身就是做游戏开发的,所以很了解这个技术,就跟我说是用什么什么技术导致其他程序无法在界面上绘制标记,主要是为了防止用户作弊,我后来说,我还 是把这个作弊器做出来了,我用了一个透明窗口悬浮在游戏窗口上方,在透明窗口上标记 出不同点,为了让用户看起来这些标记像是直接绘制在游戏窗口上,我做了一个钩子,拦 截了游戏窗口的相关消息,效果非常好,你们如果要防作弊,是不是也应该从这方面考虑 一下呢,他笑着说,他们有专门的防外挂团队麽样麽样。临走时,我觉得自己表现不是很 好,弱弱地问了一句,我有没有希望过这一面,他说,三天之内等通知吧,还说了一句, 小伙子要对自己有信心嘛,百度二面你都过了你怕什么?我只好灰溜溜地闪人了。值得一提的是,并不是所有同学一面都很难,后来回家后问了一些其他同学,他们说他们 的第一面很简单,就是随便问问项目和一些简单的问题就没了。 技术二面:腾讯的技术二面也是不尽相同的,后来我得知很多同学的技术二面都是聊聊项目啥的就完 了,而我除了项目之外还有很多很搞笑的题目,包括智力题。虽然感觉一面不是很好,但是我还是报了一点幻想能进二面。

    很幸运的,我如愿以偿地进 入了二面,一面不知道刷了多少人,一半多至少应该有的,我想可能是我一面最后的几个 问题发挥了一些做用吧,^_^。二面我感觉非常轻松,因为当时我已经拿到了中国电子科技 集团第二十九研究所的offer,那是个非常好的研究所,我本来都打算签那里了(后来因为 没有编制,所以没趣)。所以对于 QQ,则是能去就去,不去就不勉强啦。仍然是下午两点面试,我一点四十就来到了指定的 房间外边,看到面试官正在那里等着,我也没有进去,面试官也没有叫我进去,因为时间 没有到,一点五十九分,我准时敲门。这一面的面试官一直在笑,感觉笑里藏刀。因为我 当时已经释然了,所以倒觉得无所谓,非常放松。面试正式开始。首先要我介绍一下我做的最大的一个项目,我噼里啪啦一大堆的说出来,这一关自然好过 。面试官见没什么好问的,就开始整其他题目。第一题是有两个文件,每个文件里边包含 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总算是拿下了,前后持续了半个月。 总结: 1. 腾讯的整个招聘过程组织得非常有条理,而且为霸王笔的同学准备好了教室,据说还允 许霸王一面,不知是否属实,从这个意义上说来,腾讯公司还是很求才若渴的,不想因为 某些意外原因而错失人才; 2. 腾讯的招聘过程难度梯度比较明显,笔试时题目在我所参与的笔试中难度中等偏上,一 面是一些基础的算法、书本或编程中遇到的基础知识,二面在一面的基础上更进一步,考 察反应能力,我认为回答二面的问题基础知识是一方面,在基础知识方面仍然需要进一步 思考才能回答,正如我一腾讯的同学所说,二面是考思维能力吧。 3. 如果运气不好遇到比较喜欢问难题的面试官也不要紧,即使你有问题没有回答出来,他 也会综合考虑的。有些第一面问题非常简单的同学没有进入二面,这可能也和笔试成绩有 一定关系吧,所以笔试成绩也较为重要。 4. 腾讯技术类面试一般不需要穿正装,这个一般IT公司是一样的,比如百度宣讲时也再三 宣称,不要穿正装去面试。但是其他的,如产品、销售类的,最好是正装啦。 5. 腾讯很保守,分两批通知人去签约,我猜想,第二批可能是补录的吧。据我所知的一同 学就被弄到补录名单中去了,这个对于学生而言,其实有些不人道,因为等待的过程是非 常难熬的。

腾迅,2009