我的阿里、腾讯暑期实习Offer经历
三四月份对我拿来说是个忙碌的两个月,实验室项目到了关键的时刻,自己又需要抽身去找暑期实习,总之过得很快。值得欣慰的是幸运的拿到了阿里和腾讯的暑期实习offer,也算是对三四月份的忙碌一些回报吧。阿里的实习内推很快就来了,3月份就差不多全部结束了,腾讯稍微晚一些,原本也投了百度,想试试百度的难度,可惜笔试当天晚上要出差飞广州,也就错过了百度的笔试,对我来说,北京的诱惑并没有非常的强烈,对我的吸引力不算太强,北京的压力型节奏的生活方式让我总觉得会踹不过气,也就不了了之了。
3月2号,我通过一个师兄,内推了阿里巴巴,投了一份简历申请阿里云的研发岗位,这是我第一次找实习或找工作,也是我第一次投递简历,简历写的很糟糕,没有怎么精心设计。阿里巴巴的办事效率挺高,两天后我就接到了第一轮的电话面试。由于是内推岗位,所以可以免笔试,这也让我少了一道坎,说实话,我比较适合和别人谈论技术但是并不适合考试型的笔试。第一轮的面试官听声音感觉年纪并不大,跟我大概谈了20到30分钟的项目。平时我在实验室做项目主要做存储一块,可能引起了阿里云面试官的兴趣,面试官对我的项目问的比较多,当然问项目的过程中也夹杂着问了一些问题,比如web编程路由的方式,cookies和session的区别,C语言和C++语言的一些区别,C++和JAVA语言的一些区别,总之难度并不算大,都是非常基本的知识,除此之外,问了一些linux shell编程、expect的用法等,总体来说,我应该都答得还可以。最后面试官问了两个算法题,一个是科学计算器的实现,这个在大二时学过,我隐约记得用两个栈实现,但是不太记得具体怎么实现的了,迟疑了半天,虽然说出了自己的思路,但答得不算好。另一个问了一个海量数据寻找topK的问题,我给面试官提供了一个思路,用分治和最大堆来实现。总体来说,第一次电话面试,我有些紧张,面试官也安慰我让我放松,面了大概50分钟,礼貌一番后,挂了电话。结果很快就出来了,不到10分钟,我去查询自己的状态时,发现一面已经通过了,人生第一次正式面试也算是开门红了。
一面后,我有些心有余悸,临时抱佛脚看了看算法书,准备随时来的第二面,大概也是过了两天,大约早上8点半左右,二面的电话就来了,二面应该是高管面,电话那头的声音和沉稳,有些低沉,感觉气场有些镇住了我,但二面面试官却只让我说了说我的项目情况,大概说了15分钟的项目情况,二面面试官就告诉我二面结束了,问我有没有什么问题问他,我比较惊讶,二面中没有问我一个技术问题,只谈了项目,并且只说了15分钟,就草草结束了,让我摸不清面试官对我的印象到底怎样。让我更惊讶的是,面试结束后不到5分钟我的状态便变成了二面通过,到现在我也不太懂二面时到底发生了什么。
3月8号左右,我接到了HR面试的电话,电话那头阿里的HR主要问了些职业规划、平时兴趣爱好、自己的优缺点、平时的学习方法等,气氛非常的轻松。HR给我介绍了阿里的文化活动后,面试也就结束了,几天后,我就收到了阿里的阿里云研发岗位Offer,阿里的面试过程来的太迅速,感觉每个面试过程还没来的及总结就结束了。总体来讲阿里面试过程中如果对项目感兴趣多一些,基础知识问的并不深,面试保持清醒的头脑,表达清楚就行,面试官的技术题目,并不要求一定要准确无误的做出来,能向面试官表达出你思考的方法和解决方法就行,因为并不是所有技术题都是你会的,但你需要知道怎么去寻找一个思路去尝试解决你不知道怎么解决的技术题。
阿里面试结束后,很长的一段时间我都投身在实验室项目中,中途抽空在腾讯官网上投了一份后台开发的简历,4月中旬,因为实验室项目需要到广州出差了一段时间,原本以为要错过腾讯的面试,结果没想到在腾讯面试的前一天,广州那边合作单位出现了掉链子的情况,使得我有空回来参加腾讯面试。腾讯的笔试题范围覆盖面非常广,后台开发的笔试题,从web开发到后台C、C++、JAVA开发同在一套试卷上,都是需要完成的部分,除此之外还有一些IOS移动开发的题目和设计模式的题目,大题相对来讲偏简单一点,但腾讯笔试刷人比例并不高。腾讯的面试技术岗位面试采用一对一面试的方法,4天内需要把所有的面试完成。
腾讯的一面,我被安排在第一天的下午第一场,导致我没有时间睡午觉,整个下午脑袋昏昏沉沉的,一面的面试官是个游戏开发部门的面试官,腾讯可能因为面试学生太多了,因此各个部门调剂过来面试其他部门,我对游戏开发并不在行,面试过程中,面试官问了很多小问题,题量很大,但都不是非常深。面试题包括C、C++开发,各种变量存储的位置等C、C++语言的基础知识,操作系统中的进程间通信、死锁、调度算法等,数据库中事务和存储过程等,计算机网络中的TCP和UDP协议,拥塞控制以及一些网络机制等。一面过程中,面试官手中有一张A4大小的纸,纸的正反面写满了题目,他会从中挑一些题来考面试者,在我面试的过程中,面试官更是中途直接把纸给我了,让我按纸上题目回答,总体来说题量还是非常大的,最后面试官给我讲了讲游戏部门他们的工作和一些前景之类,对我做了一番评价,认为我的知识面还算比较广,建议我找一个自己喜欢的领域做深,成为一个领域的精深者。
腾讯的结果非常慢,并不像阿里一样5到10分钟结果就出来了,由于第二天要接着二面,自己的面试状态迟迟不变让我甚至不知道一面到底过了没。第二天凌晨1点半后我收到了二面的短信通知,让我第二天早上9点多去面试,我睡得正香,庆幸自己开了铃声,以至于听到了短信铃声,看到了短信,不然第二天直接睡过了,二面就错过了。要知道从我住的地方到面试的酒店还是有一段距离的,按平时时间一样起床吃早餐可能会赶不上早上的二面。二面面试就没有一面那么顺畅了,二面有点虐心,面试官问的问题有点略深,起初只是问了我一下项目的相关内容,问了一些并不难的小问题,后来问到了Linux内核的源码的一些问题,有些我就直接说我不知道了。最后可能被虐的有点惨了,二面面试官问了我一个算法题,用i*j的小矩形去覆盖一个m*n的大矩形,怎么在小矩形不重叠的情况,求大矩形能容纳的最多的小矩形的数目。由于矩形并不是规则的,用分治的方法很难解,用贪心的方法可以解决,但可能离最优解很远,我第一反应是动态规划的方法,先放一个小矩形,把剩余的大矩形空闲地方,划成若干个子矩形。面试官似乎不太满意我的回答。总体来说二面相比一面,难度要大了很多,让我心里非常没谱。
又是晚上的时候,12点过后,我接到了HR面试的短信,我才知道二面我幸运的通过了,HR面试中,腾讯的HR问题并不是很多,喜欢和你聊聊生活,问问你平时的学习情况和校园生活,并不太像正式的面试一样,总体来说还是很轻松的。
阿里腾讯的实习面试总体来说对我还是很有帮助的,特别是对像我这样从没面试过去找实习和找工作,没有任何经验的初学者来说,还是学到了很多。首先对自己要自信,不要担心自己不会的地方,知识海洋太大了,不可能有人全部都会的,面试过程中不要表现出自己的不自信,不会的地方坦白对面试官说自己不会,会的地方努力去表达自己所知道的知识点,不要表现出好像在猜答案一样。面试过程中,尽量不要冷场,说说自己擅长的地方,把面试官注意力带到你最擅长的领域。试着去表达自己会的知识点,不要等面试官去钻着问你你不会的盲区。面试也是一门学问,除了一点点运气和自己的实力外,会面试会展现自己的人有可能会有更多的机会。