微软亚洲研究院(MSRA)面经

我最早把简历投给MSRA是在美国交换的时候,大概11月左右吧。不过估计是因为那时候我人也不在国内,11月也是个收实习生的淡季,没什么空位子,所以在美国期间他们也并没有打国际长途联系我。后来1月初回国后,我就又重新上MSRA网站上看了招聘信息,发现创新工程组新开放出了一个职位,所以我就在春节后第一个工作日给他们投了申请表和简历。

第一轮:简单交流

有开放职位就是不一样,在发出简历的大约一个周后我就收到了研究院打来的电话。说起来可以算是第一轮的电话面试吧。因为电话来的很突然,没什么准备,问什么就答什么,也没有过多的紧张。

打来电话的是一个美国人,一上来就是英语,问一些基本的信息:以前做过些什么项目,C++掌握程度怎么样,读过哪些C++的书,最钦佩C++界的什么人啥的。这些都是小菜一碟,尤其是之前还参加过C++的大师Lippman来我们学院办的讲座,拿出来说一说或许更显得与众不同吧。

简单了解过这些背景后,他又问了一下我愿意做些什么工作。我告诉他说,为了出国读研,我希望能接触一些研究性工作,不知他们组具体在做些什么。据他介绍创新工程组是科研和工程结合的部门,扮演技术孵化的角色,可以接触到一些最新的研究成果,也有一定量的编码工作要完成,成果通常是有一定影响力的产品。虽然与纯科研工作有些不同,不过毕竟也算是科研和工程的结合点,我便也表示有兴趣参与,况且别的组在这个时候也没有合适的职位供我候选。

听到我仍对职位有兴趣,他便继续问我有没有online的code sample,我猜他是想看一看平时写代码的风格和质量。想到平时做的项目都在Google Code和BitBucket上托管,于是我向要了他的email地址,并表示将电话之后选一些代码库地址发给他。

最后他简单跟我确认了一下我可以工作的时间段,然后约了下一轮面试的时间。我接到这个电话是在周五下午四点多钟,于是我便提出下周一的下午进行下一轮面试,不过应他要求改成了晚上(灵活的工作时间可见一斑啊)。他还透露说下一轮大体上会考察我的算法、解决问题的能力,并且实际动手写一段代码给他看。

第一轮的面试就这样结束了,没什么特别的,只是简单聊一聊,了解一些情况,约个下一轮的时间,看来下一轮才是重头戏。

第二轮:编程能力

因为约到了后面的周一,我便有了一个周末可以稍作准备。因为知道要写代码给他看,而且在网上搜到有人说要用一个实时现实键盘动作的会议软件,我便专门在notepad++里用C++把基本的算法(各种排序、搜索)和主要的数据结构(链表、树、图等)都写了一遍。还动手实现了一些简单的C库函数(比如atoi(),itoa() 等)。我也又拿出算法书简单温习了一下。

当然,我也上网搜了一些别人的面经。事实证明,实习生的面经其实很少,大部分都是正式员工的面经,看上去都是过五关斩六将,面试周期拖得很长,那真是体力上和脑力上的双重折磨。看了也没什么用,所以我也放平了心态,格外注意基础知识。准备的过程并不是为了要压到题,而是要把自己的大脑调整到一种活跃的状态,能够对一些常见的问题有比较快的反应,或者能够迅速产生思路。

这轮面试因为事先约定了具体的时间,所以越是快到约定时间的时候就越是紧张。不过等到真的电话准时响起的时候,反而也就平静了。

打来电话的仍然是上次面试的美国人,由于上次已经简单聊过,这次便迅速进入正题。他简单地介绍了一个C语言的库函数的功能,同时通过email发来了函数原型、输入、输出,让我来实现一下这个函数(我写的是strtok())。其实并不像网上流传的用什么网络会议软件来看你键盘的动作,他们大概也没空盯着你写这个小函数,他只是说30分钟后再打回来,看看完成的情况。

有时间限制的编程总是有点让人紧张的,一开始我也有点心慌,不过开始动手写了也就好了。30分钟很快过去,我也写也很顺利,他准时打回电话的时候,我便把写好的代码通过email发给了他。

之后的内容便是让我稍微解释一下我的程序,探讨这个函数的一些潜在问题,并把情景扩展到多线程,乃至并行处理。这个过程大概又持续了半个多小时,他关心的可能并不是你真的是不是回答的完全正确,只是想看看你的思路、你的知识程度、以及你能不能把各种知识联系起来。所以,一个有效的方法就是尽量把你想到的东西有条理地说出来。

最后,他表示他要和同事商量一下,可能会有其他同事再联系我,让我等消息就好了。由于那天是元宵节,在电话内外传来的节日的爆竹声中,我也祝他元宵节快乐。于是这一轮的测试就这样顺利的结束了。

第三轮:了解知识领域和背景

我本以为需要要至少两三天后才有消息,结果没想到才过了不到半个小时,我便接到微软另一个工程师打来的电话,要约第二天的某个时间聊一聊——效率还真是高啊。因为时值寒假,我正在北京的家里,所以也就不再电话里谈了,而是约了第二天下午直接到公司去实地见一见吧。

第二天下午,我如约来到中关村新落成不久的微软大厦,开始了第三轮的面试。这次的目的大体就是了解一下我的知识领域大体在什么范畴,以便考虑有没有适合我的工作内容。由于他们所做的项目涉及到使用Win32 API开发某种客户端,而且我之前在何宗健老师的Win程课上也花了很大心思做过纯Win32API的Excel,所以问题就从这里开始。面试我的工程师双手空空,就坐在我对面听我讲,我讲到哪就追问道哪。从消息队列、消息循环到注册表、DLL都问了个遍。此外也简单提及了一些Web内容,比如HTML、CSS、动态网页等。这个过程并不是很难,知道什么说什么就好了。由于涉及的东西比较多、比较杂,感觉稍微有点累而已。

经过了一个多小时的“拷问”,我又被要求在纸上写一小段程序,并且要修改到最好,主要是想看一下编程风格,并且谈谈对编程风格的认知。至此所有面试就结束了。我便回家开始等消息了。

录用与入职

他们办事速度确实比我预想得快很多,我回到家后的第二天晚上,最初联系我的美国人(现在我的Mentor)就给我打来电话,告诉我顺利通过的好消息。最后我们简单寒暄了几句,并且再次最终确认了入职的时间。因为2月中下旬我还要回学校办理一些注册报到的手续,所以我正式入职报到的日子定在了2月29日——这个日子距我投出简历整整一个月。总的来说,整个过程并不难,如果你非问我要准备些什么,我会觉得把基本功练好比什么都重要。

当然,这里的时间并不具有普遍的参考性,主要还要看开放职位的情况。如果有开放职位,而且要人比较急迫,可能消息就来得快一些;如果不是,自然也就慢一些。MSRA不太提供什么转正机会,它常年做实习项目,流动性很大,有了空的职位就会招新的实习生来填补进来。大部分的实习生毕业后就该出国出国,该读研读研了。

其他

在我入职后的第二周,参加了一个小型的入职培训。同参与一场培训的同学各自做自我介绍时,我发现清华的实习生比例明显比别的学校多。年长的到硕士生、博士生,年轻的甚至连大二学生都有,他们几乎都是学校老师、联合课程推荐,或者是学长、同学推荐的。看到这种势头,我心里多多少少有一点点不服气,其实我培养出的学生的实践水平还是很高的,大概只是历史不长,资源和人脉上还没有铺的那么广吧。所有后来我在收到内部的推荐邮件时,立刻也就转发给了学院实习办,希望我同学们多多申请来MSRA实习。向这些一流的工程师和研究员们多多学习,一定会有不小的收获。

顺便说一句,非北京的同学也完全不用顾虑交通和住宿的问题,MSRA会给你提供免费住房,如果你自己租房的话也会给你一定的补助。往返上海的路费也不用你自己负担。所以大家放心来实习就是了。

即便内部推送出来的开放职位不一定常常有,大家也完全可以多多关注www.msra.cn上实习生信息,自己看到有职位就鼓起勇气来投简历吧。我在准备面试的时候看到过一句话,我印象很深:“不需要有太多的压力,也不需要对结果有任何担心和顾虑,大胆的面对它,当做证明自己的一个机会,看看自己到底有多大能耐”。我也希望把这种心态传达给大家,不论你毕业后是要去名企工作、去保研、去考研、去出国深造、还是去创业,决定了就勇敢地投身进去吧。祝大家好运!

你可能感兴趣的:(笔试面试)