2014找实习经历


作者:RunningSnail

前言/背景

计算机专业研二苦逼学生一枚,至今还在为老板的项目绞尽脑汁中,以前一直都呆在实验室中,没有出去实习过。今年开学初,计划着暑假找一份实习,为9月份找工作做些准备。于是乎,稍作准备就开始迎接各种实习的笔试面试。折腾了两个月,最近总算是告一段落。把我的找实习的经历记录在此。

当初找实习的时候本想采取广撒网的策略,奈何实在是精力有限,后来也不想为找个实习付出太大的成本,就跑了几家大家都去的公司。总的来看大的公司凭借资源优势,在招实习生上肯出力,肯来西安招聘,其他的一些公司,动静不大,当然这也和我们消息闭塞有关,感觉如果在一些一线城市的话会更有优势些,后面会讲到地域的问题,这里先不说了。

第一次笔试面试--CVTE

第一次找实习的时候基本上没有复习基础知识,裸考状态,战绩惨烈。第一家公司是CVTE,当时感觉这家公司在做嵌入式相关的东西,和我研一做的智能家居的项目相关性很大,并且公司的知名度也不是那么高,本着小试牛刀的态度,就投了,噩梦的开始!

首先是网上投递简历,这时候遇到了我找实习的第一个问题:我想做什么岗位,我适合什么岗位。我以前真的没有认真的考虑过这些问题,看着他们一串的职位列表,选择了一个嵌入式的职位,心想好歹自己也有些这方面的项目经验,有点把握,就投了。

具体的流程记不太清楚了,记得是一次笔试和两次的面试。先说一下笔试,笔试是在西工大老校区进行的。做的题目忘得差不多了,记得有基本的linux命令,数据结构的基础知识等一些填空题。最后是几道程序设计大题,开头特别说明了要求不要把题目想的太复杂了,先实现功能,再优化。好吧,就按他们说的来,看了一些几个题目,不是那种非常难的无处下笔的题目,认真想一下还是可以做的。我于是开始奋笔疾书?NO,情况不是这么好的,在这里碰到了我找实习的第二个问题:以前没有在纸上写过程序,和在电脑上写完全两个概念,写的磕磕绊绊,最后勉强把题目都给做完了,当时还窃以为自己做的还可以。

CVTE的笔试招聘非常的人性化,怕大家去的早没吃早饭,特地为大家准备了能量棒和牛奶,赞一个。回来之后和同学讨论笔试题,发现自己用的方法几乎都是最笨的方法。其中有一题是这样的,如何寻找两个有公共节点的链表的第一个公共节点。后面的面试又碰到了好几次。

然后就是笔试通过,通知下午两点去面试,当时我还真的有点过于自信了,认为自己通过的很容易,就算好时间乐呵呵的中午过去参加面试。门口碰到了几个刚面试完出来的同学,一打听才知道,面试顺序按成绩排,下午面试的都是笔试成绩不怎么好的,原来我题目做的确实非常烂。有一个同学是下午的面试,但是他也早上来参加了面试,原来招聘还可以是这样的,早来的可以有机会早面试,又中了一招。我是面试官吃过饭后第一个面的,递上简历,自我介绍,问了下项目经历,重点讲了第一个智能家居的项目,问了怎么实现通信协议,没有问任何其他的面试题,期间面试官一直在边听我讲边看我的简历,讲了大概十分钟,面试官问,你还有其他没有表达出来的突出才能吗?我知道,完了,肯定不满意。我说,没有了吧。他说,那好今天的面试到此结束,谢谢你的参与。

在他翻简历的时候,我看到了自己的笔试卷面得分,没有及格。第一次实习就这样匆匆的结束了。总结:项目经验一定要好好的修饰一下,争取以最好的方式展现给面试官。

腾讯

腾讯投的人非常多,笔试的时候大家都是结伴去的老校区(又在老校区,非常的不方便啊),我投的是研发后台,面试题做的也一般,题目不是非常难,网络考的特别多,基本上半个试卷都可以看到网络的题目的身影。有两道加试题,据说做出来会出彩不少,一道DP的。

面试是在西工大老校区附近的一个宾馆,我又是中午的面试。去到发现人特别多,面试官在楼上的房间里,大家在会议室等候,叫到名字的拿着写着房间号的小牌去房间里找面试官,每个人的时间大概四五十分钟。我面试时先问了两个简单的问题,然后就抛出了第一个程序题要求纸上实现:

100万qq用户,随机抽出1个一等奖,50个二等奖,1000个三等奖。

看着非常简单的一个问题,但是当时我经验不足啊,以为他要考察的是比较高深的东西,先跟他扯了半天分治啥的一大堆错的,他说不需要想那么多,面试时思路正确非常重要,一定要说到点子上,然后我就说生成随机函数,怎么消除重复的元素,他说好,你写一下吧。我就吭哧吭哧的开始写了,第一次面试时在纸上写程序,真的缺乏锻炼,写到半截又跑到前面去添加变量,然后又划掉几行代码,甚至忘记了考虑一等奖和二三等奖重复的可能性,面试官提醒了我。还没写完面试官就打断了我说要继续下一个问题:

如何在一棵树上寻找两个叶子节点的最小公共父节点。

我第一个想法就是想到了CVTE的笔试题,非常的类似,于是开始整理自己的思路。面试官提示我可以自己设计数据结构,我设计了带父节点指针的节点。然后他问我,如何寻找父节点,我这时思路完全没有跟上,还沉浸在自己的思路中,答非所问,沟通不畅,他说这道题也算了。问我第三道题:

浏览器访问qq.com没有响应,可能的原因是什么?

这是一道对网络基本架构的问题。然后问我更简单的线程和进程区别,++i和i++区别,我知道他完全是在拖时间了,问完看时间差不多了,就让回来了。

没有二面,一面直接挂掉。总结:纸上写程序一定要多练,思路清晰,不然会吃亏。和面试官要注意沟通技巧,把自己知道的全说出来,说到点子上,不要答非所问。

阿里

阿里的实习招聘紧跟着腾讯,笔试都安排在同一天,不过腾讯是现场笔试,阿里是在线笔试,所以有机会去网上查找资料。不过阿里在线笔试刷人也挺多的。

阿里的面试是一天完成的,总共三面,地点选在了交大附近的宾馆。比较头疼这种非常远的面试地点,从新校区起早出发,路上花两三个小时,才能到面试地点。 阿里的面试是在一个大的会议室里进行,每个面试官一个小桌子,面试官感觉明显比腾讯的和蔼了许多。一面面的比较顺利,题目不难,和面试官沟通也比较顺利。记得有下面的一些题目:

程序的编译过程

socket通信的过程

实现快排,是否是稳定排序,不稳定发生的时机

访问taobao.com中都发生了什么事情

最后一道是比较经典的面试题目,网上解答很多,附上一个链接

剩下的时间就问项目,问了我项目中的具体架构,通信协议,如何保证安全,如何保证可扩展性等等。

一面之后在楼道里等十几分钟就有人带到楼下二面的会议室,我们是吃过午饭再过去等面试的,走出来一个面试官从一堆资料中翻了下,找到我的简历叫我过去,我那时猜想应该是我的一面成绩还不错,坐下后趁着面试官去找纸,我翻了下面试记录,看到了自己一面是A。

二面面试官人也非常好,问了我另一个项目,看来把做过的项目准备好,能够详细的讲解清楚非常重要,我给他讲了操作系统内核的不同实时性调度算法,如何判定任务可调度性等。然后就让我写一个程序题:

写一个内存移动函数,将内存中以src起始的len长度数据移动到以dest开头的区域(注意是移动不是复制),函数声明如下

void memorymove(void *src, void *dest, size_t len);

这个题除了要判断是不是空指针,源地址和目的地址是否相同外,还要判断移动的两段区域是不是重合,复制的时候注意下。

接着又问了一个DP问题:最长递增子序列。这个题目以前没有做过,临时想了一个状态转移方程,和面试官讨论了半天正不正确,最后发现是错的。

二面算是比较顺利,面完面试官很客气的说让我稍等会。结果刚出了会议室就被叫去HR面,这是我人生第一次HR面,不像技术面那样如果会的话可以侃侃而谈,面试官全程黑面,不停的问我一些比较棘手的问题,问我和同学关系怎么样,怎么评价自己在同学中形象,觉得自己有什么缺点,觉得自己有什么要改进的地方,觉得自己有没有自信,自信源自什么,总之是不停的给我施压,然后中间几次提醒说听不清大点声,搞得我压力很大,感觉比技术面还要紧张,就这样熬过四十分钟的拷问。

面试完出来碰到了本院的同学,和他一起回学校,在公交车上交流面试的过程,结果没注意坐反了方向,一直坐到对面终点才发现,好囧。

整个阿里的面试过程感觉效率很高,一天搞定,面试的题目难度也不大,果然回到学校打听了一下,很多同学都面了三面。

网易

网易游戏,网易游戏是宇哥推荐我网投的,当时看到网易游戏的招聘,感觉特别的挑学校,但是想着混一次高难度的面试经验,就投了客户端游戏的后台方向。

中间有个小插曲,宇哥提前电话面过了网易游戏的一面,投的地点和我一样,把面试题回忆下来给我们分享了,直接帮助我顺利通过了一面,THX。

四月中旬网易HR很客气的打电话来约一面面试时间,约在某天的下午五点,于是我提前做好准备,跑到安静的一楼实验室,不过一楼好像信号不好,对方有时会听不清我的声音,总之因为宇哥的帮助过程还算比较顺利。面试的题目很多,涉及到c++的类,虚函数,多态,编译,STL,A※搜索算法,操作系统死锁,设计模式,进程间通信,windows内存共享,TCP,大数据等,问的非常的全面,也比较深,难度明显比阿里要大。

过了五一,网易HR约二面,这次宇哥又提前我面过了二面,并且拿到了offer,本以为他的面试回忆会对我有帮助,结果没有碰到一样的题目。二面整体感觉有点像一面的感觉,问的技术多一些,项目少,而且这次手机信号更差,我不得不在一楼的大厅角落接电话他才能听清,有时还要跪在乒乓球台旁写东西。二面的面试官首先问了c++中多态和虚函数的问题,然后又让我解释程序的编译过程,动态链接如何实现,快排原理、复杂度、什么时候退化到N方的复杂度、如何避免,B树和B+树的区别,这些都比较熟悉,然后又问了一个我搞不清的,STL中vector可以自动扩容,可不可以自动缩容,这个答错了。还问了一个这样的问题:

有一个游戏,很多玩家,每个玩家的得分实时变化,如何快速计算实时排名。

除了这些技术性的问题,还问了一些开放性的问题,比如有没有接触过开源代码,经常上的技术性网站有哪些,如何写好的代码,印象最深的项目。最后一个问题,问我印象最深的一本技术性书籍,我说了《深入理解计算机系统》,他又问为什么印象最深,我说我记得里面他自己实现了一个Y86指令集,讲的很好,讲的深入浅出,他又问我怎样讲的深入浅出,天呐,这点内容好几年前看的,现在根本记不清了,硬着头皮继续说。

二面过后,心里没有谱,但这时阿里的offer意向书已经来了,也就没有太放在心上。总结:网易游戏的电面真心难,需要做很多准备。另外,电话面试一定要信号好啊!

百度

百度投了之后电面的时间和网易游戏的基本重合。一面还算比较顺利,二面就直接给我泼冷水了,让我这个有点浮躁的心瞬间沉静下来。

一面难度介于阿里和网易游戏之间,围绕项目展开,会问你项目中用到的技术和遇到的问题,问我的就是socket通信,网络协议,多线程编程和网络问的比较多,这个是我的弱项。另外一个问的就是cache的原理,替换算法,怎么实现,多亏当年本科的系统结构学的比较好,感觉这题回答的比较出色。面完之后个人感觉一面通过应该没问题,因为一面问的很注重基础,没有为难我。面完之后我趁机问了他的部门现在的工作,他很热心的用了五分钟给我讲了百度基础架构部里面做的一些工作,根据我的项目经验推荐我去哪个岗位。

二面约在下午两点,吸取前几次在一楼电话面试的信号问题的教训,我决定睡醒午觉后直接在宿舍面试。面之前老张还提醒我说百度特别喜欢问一些算法题,比较变态,当时还没怎么放在心上,完全凭前几次的面试经验去应对。结果二面的面试官直接开门见山,连自我介绍都没有,就说我们来做几个题吧。

第一题,单回合制比赛N个人决出冠军需要几场比赛。我回答了一个方法之后,问我还有没有另外一种方法,当时就有点懵,这题确实见过,也知道有个方法,就是给忘了,于是憋了半天支支吾吾的请对方提示下,对方说一提示答案就出来了,说每次比赛都会淘汰一个人,我这才反应过来。哎,出师不利!插曲:峰哥起床时听到了我的面试题,后来问我当时为什么不直接回答,我们上组合数学课讲过,我说我忘了,他说,哦,我还以为你故意在吊对方呢,~~~~,满脸黑线!!!

第二题,找出一百万以内的所有质数。这次我又犯了一个错误,没有抓住问题的关键。当时宇哥用笔在纸上给我写了一个方法,我没有看懂,就说了自己的思路,最笨的方法,一个个数测试,然后面试官继续问,可不可以继续优化,然后我就不止所云了,扯了半天都没扯到点子上,面试官最后提示我,应该在判断一个数是否是质数上,只需要判断是否能够整出前面的质数就可以了。

这时候自己已经心里没底了,感觉要跪的节奏。这是面试官问了我第三个问题:后来才知道就是编程之美里的发帖水王那题。我用哈希表去做,他要求空间复杂度为常量。我不会,他说了方法,我琢磨了半天才懂。总之整个面试面的非常的被动和难堪,有一种很蠢的感觉。

总结:算法题看的太少了,就连最基本的编程之美都没看过。面试算法题时一定要思路正确,即使不会也要回答到点子上,如果思路一直走偏,那真得就是没得救了。骚年,还是多看看算法面试题吧。

总结

这几次面试,算是找工作之前的一次小练兵吧,经历了很多个自己找工作时的第一次。拿到了阿里和网易的offer,但是具体去哪还没法定,在学校想出去实习两三个月基本上不可能。后面和老张打电话打听网易的情况,才知道我们在学校里确实是在是太闭塞眼光太短浅了,外面还有大把的机会可以去争取。加油!!!

第一次写文章,很乱,很啰嗦,大家凑合着看吧

发表评论

电子邮件地址不会被公开。 必填项已用*标注