首页 > 代码库 > 2014-04网易、微软、百度、腾讯、阿里实习生招聘经验与经过

2014-04网易、微软、百度、腾讯、阿里实习生招聘经验与经过

网易、多益、百度、腾讯、阿里、微软实习招聘笔试及面试全过程

楼主开始投的是阿里,腾讯,微软,百度,多益,其中前两个不是投研发,被虐了,为了找自信,果断开始研发了,楼主看中的是游戏开发(外包不干),楼主可以很自信地说,研发还是能虐虐的。

首先是微软,你妈的,我真是微软的忠实粉丝呀,从98到Win8,从VC6到VC12,从COM到DCOM我都用过学过呀,网上有个OJ比赛,居然说大爷写程序太差,直接给我挂了,我操你大爷的。

阿里,笔试感觉做得不错,投的数据挖掘,一面面试官说喜欢我的性格(爱捣鼓东西),虽然数据挖掘不懂,不过,数学基础好(问的几个数学问题,我都超答案地回答了),学起来快,然后放我过了。二面上来就让我讲讲动态规划,我讲了,她说我讲得不对(我不想与她争),然后又问我数据挖掘算法,我说我不会,她就直接来了一句,你都不会,我没看出来你喜欢这个方向,然后HR又开始挖苦我,问我对自己以前的人生满意不,你妈的,坑我呢,这。

腾讯投的是安全,笔试蛮难的,各种不会,居然过了。。。,面试的时候,有个师弟在我之前进去的,表示人家对我们实验室的方向没兴趣,人家就要Andorid apk安全,然后果断悲剧了,不解释。

多益,我在北京的北邮笔试的,三个题目,殴打了一回小朋友,直接虐掉,然后果断拿到面试机会,可惜,跟网易冲突,没法去呀。

楼主就说说网易吧。

首先是网上投简历,楼主以前的简历写的是精通SDK、精通C++、精通数学基础,后来低调了许多,写成熟练掌握。当然,楼主以前的代码行数超过20W,其它的不解释,对吧。当然,楼主sdk写了四年,C++写了六年,这些是实在的数据对吧。简历写得比较实在,结果过了。然后是一面,一面面的是C++和算法。

 

       面试官首先问你用过Directx,那么,你会渲染管线么,我说不会,以前只用过一个低版本的Directx,当时做的时候就是往显卡里面写数据。面试官说没事,我只是问一下而已。然后是C++,主要是一些概念和语法,比如:引用和指针有什么区别与联系,还有,sizeof对指针和引用的结果有什么不同,还有,sizeof指针的结果是多少,extern有什么用,模板特化是什么。其它还有许多,我不记得了,反正我觉得蛮简单。算法有两个题目,各分两个小题。

第一个是最大子列和,我速度说了是动态规划,然后它问,如果数改成复数,和改成模呢,我想了一会,说暴力可以,面试官不太满意,说你再想想,我说我不知道了,面试官又说,你考虑一下几何意义,我当时真是醍醐灌顶,立刻回答了,复数的几何意义是点,模的几何意义是长度,这个题目等价于平面n个点求最长点对,面试官说对的,那如何解呢,我说,最长点对在凸包上,求出即可,面试官问,复杂度多少,我说O(nlog n)------其实不用求凸包的,最长点对中的一个点显然要么x最大,要么y最大,要么x最小,要么y最小,满足这四个条件中的一个的点最多常数个,暴力一个,O(n)完事。

第二个题目是概率的,你现在有一个函数F(),只能返回0-1之间的随机实数,你如何利用F(),使得以P(1)概率返回1,P(2)返回2…P(n)返回n,楼主想了一会,说调用一次F(),如果小于P(1)就返回1,否则小于P(1)+P(2)返回2,否则小于P(1)+P(2)+P(3)返回3…这样就行了。面试官问,这样复杂度多少,我说O(n),面试官说如何优化呢,我说可以用huffman树优化,其实if else连对应于二叉树,这个是带权值的最短叶长度,果断huffman,然后它问了,复杂度多少,我说您指的是构造huffman编码的复杂度么,它说不是,假设那些预处理已经好了,我说那么就是O(lg n),即二叉树的平均深度(其实应该比这个小,但是,具体值肯定与P序列有关,但是,这么答肯定是对的),然后面试官说我们面试到这里结束了。面试完,楼主知道肯定过了。(都做出来了,你还能挂我?)

二面,上来是手写代码,楼主就会写程序,不解释,果断秒掉。然后等着面试,面试官好像因为飞机延迟,等了一个小时,楼主就去厕所蹲坑了,刚刚蹲下,HR打电话了,同学你好,到你面试了,你在哪呢?我了个去呀,我回答了一句,我五分钟到,然后去了。面试开始,分三个部分。

第一部分,算法题目,给你一个m*n的矩阵,求其中有多少个子矩阵的和为k,楼主看了一下,问:这个矩阵的数字有什么特点么,面试官答,没任何特点,只是数而已。我问,全是正的么,答,不是。楼主想了10秒,说了两个字,暴力枚举。面试官问,如何暴力,楼主答,暴力出左上和右下两个点,然后算和就行,面试官问,如何算何,楼主答,先对原矩阵做一个预处理,第(I,j)位置的数写成(0,0)->(I,j)的和,然后暴力左上,右下两个点的时候可以在O(1)算出和,总的复杂度O(m*m*n*n),面试官没说话了。楼主知道pass。

第二部分,智力题,网上有,楼主当时没想出来,妈的,主要是中午没吃饭(喝了一点汤),然后头也晕(我2.9分到的,2.10分开始笔试手写代码),心态比较不好,没做出来。这一部分算挂了。

第三部分:简历问,看到我写的我写了一个STL,面试官问,你的vector的push_back如何写的(你先不考虑allocator),楼主知道一般是直接放,如果满了,就分配两倍的空间,然后说了一通,面试官不满意,说,分配两个空间的代码写成Type* buf= newType[size*2],这样的话,有size-1 个位置其实没有对象,可是你还是给它分配了,还调用了构造函数了,这如何解决?楼主当时误解了意思,说,你不分配2倍,下次如果再push_back,你还得再分配,面试管继续解释,不过,越解释越糊涂,我后来算是明白了,原来 是placement new,我说,构造函数调用其实是多余的,不需要调用,可以直接写成void* buf= new char[sizeof(Type)*size*2];,然后copy对象的时候用placement new去干,面试官又问placement new 的语法,楼主说了,面试官没说什么。这也算过了吧

 

第四部分:聊天

你玩游戏么,玩;你玩什么游戏,war3 &&dota;你玩什么英雄;dota里面玩猴子,SPE,火枪,PA,一姐。你有被针对的时候么说说,有一次,我猴子,对面有个赏金,什么都不干,就一直在也区转,然后有个白牛,两个就一直抓,结果30分钟也没出到辉耀,还有一把,一姐,34分钟假腿,分身,林肯,蝴蝶,结果对面直接一波高地,强冲,然后团灭,输掉比赛。又问,你说说你影响比较深刻的几把,我说,一把我是火枪,队友退了三个,只剩下巨魔和我,我都觉得可以放弃了,巨魔却一直说,没事,打钱,然后一直farm,结果巨魔蝴蝶,bkb,撒旦,龙心,投了boss,打了对面一个团灭,我是火枪,因为要翻盘,只能圣剑,然后打对面几个团灭,赢了。 这一把让我明白了不要轻意放弃。还有一把,我是SPE,对面龙骑早就BKB,强袭,大炮,队友一开始就吵架,fw不敢上去吼,我当时20分钟假腿,先锋,3800,比较顺,我觉得有机会翻,我就让fw打个跳,然后我队友一直抱团,打架我开大,先秒龙骑,打了几个团灭,赢了,这比赛让我明白团结对于一个团队特别地重要。面试官又问,你觉得你是dota里面哪个英雄,我回答,一姐,如果团队不需要我的时候,我会默默地farm(学习,干活),如果需要我,我会担当起输出的重任,挑起团队的大梁,带领团队走向胜利。

最后面试官问,你有什么问题想问我的吗,我就问了两个,一个是听说有导师带,还有项目,我想问下下,项目和以后工作 有什么关系,第二个是广州和杭州有什么关系和区别。面试官很耐心地回答了十多分钟,我一直认真地听着,然后说了一句,谢谢您,走出了面试场地,心情很不好,因为智力题没做出来,不开心。然后以为挂了,今天收到了offer,开心呀。