很长时间没有写Blog了,一直挺忙的,今天还是很忙,还有三个同步进行的项目在催着我继续工作,但我想休息一下,写篇Blog玩玩。
微软公司一直是我比较向往的公司,而微软亚洲研究院则更是我向往的一场所,我期望自己能在一个出色的团队中奉献自己的力量、同时学习提高自己。
大约一年前,我向微软亚洲研究院投过一份简历,申请那时的一个Visiting Student的职位,那是一个有关机器视觉的一个研究性的职位,结果还是挺干脆的:
Dear 李凡希,
Thanks for your interest in MSRA-ATC.
We regret to inform you that we will not be able to offer you a position at Microsoft Research Asia – Advanced Technology Center. However, in order to give your candidacy the greatest possible consideration, we would like to maintain your resume in our electronic database for future reference. We appreciate your interest and wish you the best of luck in the future.
Sincerely,
Microsoft Research Asia – Advanced Technology Center HR Recruiting Team
收到这样的拒信,我也不觉意外,因为确实自己与他们的要求还是有一不小的差距的。
今年,在同学们都如火如荼的申请各种实习工作机会时,我也再次做了一些尝试,先是IBM的R&D的Intern,然后是HP的Intern,在都没有仍何消息的情况下,前天投到的微软亚洲研究院的申请VS For Development的邮件有了回音。今天下午两点不到的时候接到了MSRA的Recruiter的电话,要求进行一个二十分钟的电话面试。由于学校两点有会,我跟他重新约了时间到四点。
开完会,就在机房等着电话面试,顺便上上网找找有关的资料,做一些简单的准备。发现大多数电话面试都是技术问题,并且是中文的,稍稍定了一点心,虽然对自己的英文口语还不算没有信心,但实在担心一紧张就说不出话来了。
四点十五分的时,手机还没有动静,心里着实有点打鼓,不过相信微软应该不至于失约吧。于是打开了Visual Studio .NET继续写一点项目的程序,调节一下心情。
四点二十的时候,手机终于响了,心情还是有一点点紧张,接听了电话。
他先是问了一下我倾向于的职位,是做研究还是做开发,我从自己的实际情况出发,选择了开发,并陈述了理由。
接着问的是学校和导师是否会同意,当然回答是会同意啦。
然后就开始技术了,他问我熟悉的语言,Of course,我的选择是C++,当然没有忘记说一下对C#也比较熟悉,因为这是他的招骋启事上要求的。
C++的问题对于我来说的确不是很难,包括虚函数的作用、原理、调用方法、实现机制,还有静态变量的特点、静态成员变量的特点、静态成员函数的特点。也许是有点得意忘形吧,我回答静态成员函数的问题时出了点小漏洞,我说它与普通成员函数的一个区别是在它内部不能访问类的成员变量的值,他立即提示我有疏漏,我才想起说它是可以访问静态成员变量的。
C++的题答完后,心情还是比较轻松的,对方似乎表现出也是比较的满意,随后进入的第二部分的数据结构与算法的题就着实为难了我一把。
先是问了有关有序数组和链表的查找问题,问时间复杂度,这的确是很基础的问题,很可惜我对这玩意实在不在行,回答开始变得犹豫和不自信,还好面试官的态度还是依然良好,一步步的引导我的思维。接下去回答的是有关一个特定情况的查找问题,我在迷茫了一会儿后终于想到了用Hash的方法,这似乎是他希望的答案,所以问题又转到了Hash有关的知识上,让我解决Hash时遇到的冲突问题。实话说,虽然当时的气氛并不紧张,我也没有感觉到心跳的加快,但实话说,我已经乱了降脚,我对这些问题从来没有真正深入研究过,每一个回答都显得那么的没有底气。我甚至希望这部分的问题可以快点结束,我希望能有第三部分的问题让我可以回答的顺畅一些……
数据结构的问题还是没有完,第三题更难了,大致是这样的:有若干个给定的数(都小于N),问从中任意取几个数相加,可以得到多少个不同的结果。
这也许是个不难的题目,但我的确成了一个没头苍蝇,我没有好的算法,我在算法的积累上远远没有达到可以回答这个问题的水平,我甚至没有思路,不知道怎么去想。无奈之下,我只能说有一个不好的算法就是穷举,他肯定了这个答复,但要求说说有没有什么改进的思路,我再次陷入困境,他从多个角度对我进行了提示,我还是没有找到一个合适的回答。我说了分治法,因为我感觉上似乎可以用它解决,但我又不能更多的去陈述,因为我对分治法的了解实在太少。
接下来的几分钟我已经忘记了是如何过去的,直到他说技术题的面试到此结束,问我是不是还有什么想了解的情况。
没有任何面试经验又没有关注过相关信息的我又无奈的沉默了一会儿,我只想着回答问题却不知道有什么好问的,好不容挤出了几个傻傻的问题,什么这个项目的具体的方向(因为招骋信息中没有写),我应该努力的方向,是否有后续的在北京的面试之类的。他留下的最后的话是老套的类似于“等通知”之类的。
二十五分钟的电话面试很快就这样的过去了。
对于我来说,在这次机会中获得Offer的机会应该已经是微乎其微了,只能是总结一下得失吧。
最大的问题就是在遇到困难的时候没有表现出一种勇于面对解决的精神,似乎总是想着逃避,虽然我在面试前也知道遇到困难可以勇敢的说出自己的想法,谈自己的思路,但我当时实在是没有任何的思路,还算比较善于思考的我在那一刻没有任何的想法。从技术上说,确实我对这个问题没有深入的认识,但从非技术的角度来说,逃避困难的性格还是无情的展露了出来。同样的问题还表现在我竟然两次提到我需要参考一些书籍来解答这个问题,虽然后来自我圆场的说这是因为我的学习能力很强,可以很快的参考书籍得出一个解决方案,但相信给人的感觉一定是好像答不出问题是因为没有书的错似的。
学习中对基础理论的重视不够也是一个不小的问题,就像面试官告诉我的那样,很多技术是可以在实践中不断熟悉不断进步的,但更多基础的东西还是要有一个扎实理论学习来保证,这些是无法从实践中直接获得的。
面试前缺乏准备也是一个严重的问题。
这是我经历的第一次面试,一次不算成功的面试,但我相信我从中已经学到了很多,并且找出了一些不足的地方,我会努力去改进,争取不断的进步。I have confidence in me.