腾讯面试一
声明本文转载自:http://blog.csdn.net/sunxianghuang/article/details/51982979
因为觉得还不错,所以转载,用于后面给学弟学妹学习使用。
一面 腾讯大厦
我提前了差不多两个小时进了腾讯大楼,一楼大厅里坐满了前去霸面的同学。我拿了通行证便上了24楼,等候区里也好多人,我坐了一会感觉浑身不对劲,现在搞技术的人比我还热情吗?问了问旁边几个同学都是来面试产品经理的。坐了半小时也没有看到有面试技术岗位的。问了问腾讯的小姐姐,才知道自己走错了楼层,这才下到了4楼。果然4楼的等候厅才是搞技术的气氛,没有多少人,大家都安安静静地坐着。扫码签到之后就近坐了第一排,恰巧碰到熟人,闲聊之中便忘记了紧张这回事。
没坐足10分钟就轮到我面试了,抱着试试的心态走进了小会议室,推开门向面试官问好。面试官不是我想象中的高大严肃,更像是我的同学,而且也冲着我微笑。关门的时候,他遍先开口跟我说话,说我竟然是97年的,是他面试过最小的应届生了。有了这句话,所有残留的紧张感全部烟消云散,我处于很放松的聊天状态。
他没有让我做自我介绍,直接根据我的简历提问,首先问我的两个项目,一个是校园导航,先是问我做这个项目的想法是怎么产生的,然后问我核心技术的实现、数据收集、与百度地图实现有哪些不同,然后又顺便又问了问AR,如果AR运用于地图将会带来怎样的乐趣?很尴尬的是,我被他这个问题问懵了,脑洞跟不上,居然没有想到,AR寻找宝藏、寻找宠物小精灵。第二个项目是五子棋,同样地,先是问我想法是怎么产生的(那段时间人工智能和阿尔法狗很火,所以让我对博弈树产生了兴趣),核心技术是怎样实现的,然后问我项目中遇到哪些瓶颈,我详细介绍了项目的4种优化,还是回答的不错,但对于项目,面试官都会做沿伸,这个项目就问我实现的五子棋和阿尔法狗有什么不一样。这......不是自己挖的坑把自己给害了吗,我还真不知道阿尔法狗这么高大上的是怎么实现的。我委婉的给自己打圆场,他听了老半天反问我:“就是说,你没有对阿尔法狗进行了解咯?”看他神色略有不耐烦,我也不好继续解释,点头应了......
由于我的实习经历是在一个硬件公司,可能他自己对硬件知识不太了解,也就没有详细的问。
之后就开始了做题环节,给我100首歌,让我实现歌单的随机播放。脑海中只能想到random,我回答说QQ音乐的乱序,如果不在歌单里面新增歌曲,每次随机播放的次序是一样的,而且我认为随机不能只在歌单序号上面随机,也应该在歌曲类别上面随机。我看他的表情漏出很感兴趣的意思,接着问我所以你要怎么实现。我说先对歌曲类型分个组,然后每次再从不同的组里随机挑歌曲。面试官不满意了,说这样的实现复杂度太高了,有没有简单点的。我想了想,那就对歌曲的类型用数字记录,将类型的数字和歌曲序号的数字相加,对和调用一次random即可。他说那行吧,只能说是一般般,你的想法不是最复杂的,当然也不是最好的。
后面就问我有什么问题要问他,我就问了问腾讯人工智能的发展什么的。因为再一次提到了人工智能,他便问我是不是很喜欢人工智能,现在互联网的发展趋向,能不喜欢吗?
总体来说面试没有很差,但是也没有很好,给面试官留下了被动学习的印象。但仍有着谜一样的自信等待结果。晚上8点钟左右的时候,手动查询到“感谢您对腾讯2018年校园招聘的关注,目前的岗位可能并不适合你”。忧伤......但也是意料之中的结果。
霸面 万利达大厦
我的一面很快就结束了,但仍有很多岗位都仍然处于一面状态,在朋友的怂恿下,我参加了霸面。9月24日一大早,我和两个朋友再次来到腾讯大楼一楼大厅,扫了霸面的二维码签到,挑了附近的星巴克开始“学习”,因为一面的挫败感,我也没啥心思学习,一直处于反思状态。从早上8点半等到了下午16点半,仍然没有得到面试通知,心态崩了,不抱希望了,还是回学校好好学习下,路上还跟男朋友吵了一架,心情差到负数值。回到宿舍就直接往床上躺,17点半的时候,手机震动了,我以为是男朋友找我,两眼发亮,居然是面试通知,要求18点半之前抵达面试现场签到。
整个人立马从床上弹起来,提上包就往外跑,叫了个滴滴飞奔过去,这次的面试地点是腾讯大厦左边的万利达大厦。落车后进入大厅前,我努力调整自己的心情,面带微笑走进去。3楼签到面试,等候区零零散散坐的全是技术男,我走到最近的一个男生的旁边坐下,主动跟他聊了起来,没想到他比我还紧张,他已经有了相关的实习经验,而且还能转正,相当于工作已经有了保障,应该很有底气才对呀。为了避免双方紧张,我们聊了些其他的。闲聊几分钟,轮到他面试,他刚走,一个女生走进来扫码签到,我主动邀请她坐我的旁边,又跟她尬聊了几分钟,她是香港理工的研究生,也是正在实习,但她却一脸惊恐,不知道自己为什么会被叫来面试......通过跟他们两个人闲聊我的心情好了很多,心态好到爆表。
最后一个面试的便是我,向面试官问好后,便被要求做自我介绍,我选择了“基本信息+项目简介+实习简介”的模式简单的做了下自我介绍,当然在介绍基本信息的时候没有忘记说我是97年的,面试官再次表现出惊讶。介绍完后,他向我说明,昨天终端的面试官面试完我之后觉得我更适合后台,所以向我推荐了你,一开始我没打算给你这个霸面机会的,本来我这个点是已经下班了的......,面试官这么一说,我立马对他能给我这个机会表示了十分的感谢。然后他便根据我的开始简历一一询问,我抓住了说话的主动权,他一问到某个项目,我便主动从开始到改进都详细说明。对于实习模块,我也抓住了几乎说明“在应届生中,我的基础知识不算是最扎实的,但是通过4个月的实习之后,我发现我是一个很好用的人,可塑性强,身边的朋友以及实习的同事也都夸我学习能力强、接受能力强!”我还等着他问我如何证明。结果他自己看到我在实习经历那里写的职位:从研发部实习生->副总经理秘书。在四个月实习期里我从实习生转变到研发部大佬的秘书,这个事实也足以说明了吧。他连忙点头表示认同。
整个面试我把自己表现得很开朗,也跟面试官相处得很融洽。到了做题环节,知道我是重庆人之后,给我出了一个与扑克牌相关的问题,我也借着扑克牌,在他说明题目之前给他讲了个小笑话。54张扑克牌,地主有20张,农民各自有17张,问他们拿到王炸的概率是多少。我一边做题一边嘀咕自己的思考过程,他一边敲着键盘(大概是在对我的面试做记录)一边回应我的嘀咕,提示我这是一个典型的条件概率问题。所以这道题算是在讨论的状态下解答出来的。
这道题完了之后,又问了些其他的问题,例如:TCP与UDP的区别、线程间通讯方式等,一些很基础的操作系统和计算机网络的知识。接着又进入了做题环节,直接上黑板写代码,要求写出反转单链表的代码。这个题很熟悉,是我曾经刷到过的题目,但是日子有点久了,只记得有三个指针才行。我在黑板上认真的分析,他也很认真听我的思路,“三个指针”和“防止链表断裂”这两个key我都捕捉到了,知识代码写得有些混乱,所以面试官帮我重新理了一下思路,让我再把详细代码写出来。写得虽然不快,他也表现出了吹促我的意思,我说马上就好了,我再考虑下临界情况、特殊情况是否也满足。最后这句话或许也打动了面试官,他和耐心的等着我。
他说本来黑板下面那道题也是要给你做的,但是现在时间也久了点,就不用做了。再次回到座位上,面试官对着电脑没说话,沉默了2秒,他开口说我很犹豫呀,到底让不让你通过。听他这么直截了当的说,我的脑袋高速运转,努力回想我还有什么东西是拿得出手的。于是我又接着说我的实习,巴拉巴拉说了一些,着重是为了突出最后一句话——实习的四个月也是我写博客园写得最频繁的时候,然后阐述了下为什么写博客园,以及为什么爱逛博客园之类的。果然,他回答“哇,你还有写博客园呀,能给我看看吗?”于是给了他网址,他看了下分类和排行榜和访问量最高的一篇文章。我想这一点是绝对加分了的。但是,非常丢脸的是,他在纠结要不要留我的时候,看了下我的笔试分数,非常不解的问我,你的编程题,60分满分,你怎么就只拿了8分??我给自己打了个圆场,他知道我现场变成能力差,也没在多问了。
最后的环节是我的提问时间,问面试官在腾讯工作了多久?有想过跳槽吗?为什么没有跳槽?在我们这个时候的你,是如何觉得自己的发展方向的?等等
面试结束之后,等候大厅的灯都关了,看了看时间,我大概面试了1个小时,面试官也说明了,我是面试得最久的。
这次面试之后,我心情愉悦,觉得自己也是有闪光点的,至少面试官犹豫了,我的能力一定程度上也得到了认可。
二次审核 大族大厦
我刚走到学校门口,收到电话,是刚刚的面试官,他说他把我推荐给了后台其他组的负责人,说马上会联系我进行面试。挂断电话便收到短线通知,时间是20:30-21:30,地点是腾讯大厦右边的大族大厦。我立马折回去面试,这个点我还没有吃晚饭,喝了两口水就直接进了电梯。既然是上个面试官亲自推荐的,想必已经说明了基本情况,我只要按照刚才面试的模式走就行了。意外的是,这个面试官极度严肃,好像是从来不会微笑的人,不管我怎样冲他微笑都没用。
简单的自我介绍之后,没有再问我项目和实习,相比上一个面试官已经跟他说明了情况。这个严肃的面试官直接开始问TCP和UDP、TCP的长度、滑动窗口、拥塞机制、数据结构中的存储结构类型、完全二叉树和平衡二叉树的区别、栈和堆的区别、STL中map的存储类型......然后就是问我知道的排序类别都有哪些:插入类(直接插入排序、折半插入排序、希尔排序)、交换类(冒泡排序、快速排序)、选择类(简单选择排序、堆排序)、归并类(二路归并排序)、基数类(基数排序),接着问稳定性的有哪些排序,我首先说明了稳定性的定义,然后指出“直接插入、折半插入、冒泡排序、二路归并排序”是稳定的排序,最后就是让我选一个最熟悉的排序,想必是让我写代码了。所以我选了个快速排序,很流畅的把代码写出来了。他再根据我的代码,让我一步一步解释,我一边画图一边解释我的代码,他便是认同,然后指着最后递归调用的参数,问我这个参数是不会变的吗?我琢磨了下,告诉他代码开起来传进去的参数是没有变化的,但是实际的递归调用,边界值是会改变的。他知道我已经明白这一点就没有继续听下去了。让我回去等通知。
回去翻了翻资料,偶然发现我说错了,在回答平衡二叉树的时候,答成搜索二叉树了......但是面试官一点也没有指出我的错误,将错就错的接着问我两个的区别。可能我回答错的地方不止这一个,只是面试官没有表明我的回答是对还是错......想想都觉得后怕。
回到宿舍楼下,接近22点的时候,接到了第二天下午16:30的面试通知,公众号的状态显示我正处于复试。短信感谢推荐我的面试官后,买点水果充充饥便睡下了。
二面 大族大厦
9月25日早,我很早就起来认真准备复试,首先刷了刷经典的编程题,临时突击自己的现场编程。毕竟面试后台,所以也看了看网络编程的相关内容。
下午15点进入大族大厦7楼进行面试,在场等候的人不多,闲聊了几句,发现面试后台C++方向的就我一个,屁股都还没坐热,就收到现场面试通知。面试我的应该是总监,看着他的穿衣打扮和气质,就不像是普通员工。按照惯例做了自我介绍,他先是问了问我的项目,介绍自己的项目都说烂了,所以自己按照老套路详细介绍了一遍。然后问我实习,难道有个面试官终于想详细了解下我的实习经历,遗憾的是,我没有更多的经验介绍实习,所以这部分没有达到想要的效果。我的实习是编程操控SSD盘,也说明自己对SSD盘有些了解,对它的垃圾回收机制、磨损平衡机制等很感兴趣。结果面试官并没有中我的套,没有问我垃圾回收和磨损平衡,而是让我推荐一款SSD给他......我磕磕巴巴也说不出个所以然,读写速率的值也早就忘得一干二净了......
接下来就更是尴尬了,我所准备的东西他一点没问。问完简历上的东西就给我抛出一大堆开放性问题:你将来的规划、你认为优秀的程序员必须具备哪三个要素、最近看的书、最近让你印象深刻的文章等等。意外得不能再意外了,一直以来都在担心技术问题回答不上被淘汰,没想到程序员也会被问到这些问题,还能怎么办,虽然无奈,只能靠现场的应变能力了。现在回想起来,自己就这三个开放性问题实在是答得没水平,我都不好意思写出来......
最后当然是向面试官提问的环节,在腾讯待了多久?为什么不跳槽?什么因素促使有了跳槽的想法却没有实施?这一系列的问题抛给他,果然是管理层,真能说,很认真的跟我分享他的想法,我觉得一定程度上也是在教我如何规划自己的未来。听了他的分享,我更确信我辞去能转正的实习来参加秋招是一个不错的选择!
结局
结局,当然是没过啦。很遗憾自己没能在复试中变现好,如果真是败在了开放题上,我也只能苦笑。但也未必就只因为这一点失败,认真回想,笔试题编程部分60分的满分只拿了8分,超严肃面试官面试的时候我也并非所有题都回答正确,其实这几个面试官心里都明白我的水平在哪里。既然最终给我的答复是否定的,就说明我的能力还是欠缺的,我还需要多多历练呢!
2017年9月23日-9月25日,三天时间里腾讯大厦、万利达大厦、大族大厦这三栋大厦我都去过了,有这么丰富的面试经历,我也没什么觉得可惜的了。
总之,我不会放弃,春招再试!!!