剑知北美生活快报   版面列表   admin登录
JiansNet Logo


如何应对微软的面试(Microsoft Job Interview Tips)

by JC, published: 2009-03-09 20:21 viewed: 1409 times
想了解更多的美国生活窍门?请订阅: JC写的剑知北美生活快报。
转载一篇由素手莲心写的超强大的微软面试攻略.

MS里写程序的工作有两类, 一类是SDE, 一类是SDET。SDE侧重开发,SDET侧重测试。另外搞测试的还有一种STE(SOFTWARE TEST ENGINEER),个人的理解是SDET还会有一部分DESIGN方面的工作,不是100%的测试。

准备MS的面试,首先的一点是你准备面试哪种职位。是搞开发呢?还是搞测试。这两类职位的准备不是完全相同的。

如果是应聘SDE的话,算法方面就会要求高很多。我自己的体会面试这类职位的时候会有很高的几率遇到多维数组,跟树相关的算法和计算机图形学方面的问题。就如我上次问的那个画圆的算法。

就我的体会来说,准备MS的面试有这样几个部分:

1.编程语言的基本概念

在电话面试的时候有可能会遇到一些基本的概念问题。大多数的时候都是比较常见的,但是也有一些比较冷门的问题,因此全面的准备这方面的知识是必要的。C/C++的面试要多放一些精力在内存的调用跟释放方面。虽然MS并不特别强调某种语言,C/C++/C#都可以,
但是我觉得如果你会C++的话,还是多少有一些优势的。我自己就觉得我PREFER C#有点弱势。某些面试官并不是特别了解C#,我当时也不好意思指正对方的错误,结果对方就认为我并不懂C#。

快速的全面准备这个方面有一个窍门:就是在网上GOOGLE面试题目,以其中某一个站点为主要的题目来源,综合其他站点的题目总结成自己的复习资料。通常完成这个之后可以覆盖80%的题目。此外,你需要准备一本比较好的C/C++的书做为你的参考书。我个人觉得谭浩
强的书很不错。看别人介绍经验都说 EFFCTIVE C++ 很不错,这本书有第2版。准备这一部分大约需要1个月的时间。(每天看书6-8个小时,以下的都按这个算)

2.数据结构和算法

这个是准备面试的重头戏,要将你的60%的精力放在这个部分。在自己的心理一定要有足够的心理准备,准备这个部分的过程是非常艰苦和枯燥的。我那个时候就是天天埋头在书堆里,将网上的SAMPLE CODE复制下来仔细研究。准备这个方面也是有窍门的,我是以CAREERCUP为主要的题目来源。将这些题目总结出来之后就是反复的练习,练习的次数多了就能体会到熟能生巧的感觉。总结这些题目(包括完整的CODE)是最难的一关,网上的SAMPLE CODE并不是完全都写的很好,有的CODE基本上是不能用的。此外,总结的时
候还要按最优的算法,最简洁的CODE,最全面的思路(比如程序里要判断一些异常的情况)来总结。因此这个过程是艰难的。我的总结资料修改了不下5次,打印出来的资料大约有20厘米厚。一直到现在我都觉得我的总结资料还不是我心里想要的那样,还有很多地方需要补充修改。另外还想说的一点是平时准备的时候要注重培养自己良好的程序书写习惯。好的程序书写习惯会为你加分的。这个部分我觉得你需要准备3个月的时间。这里我推荐的书是PROGRAMMING INTERVIEW EXPOSED。也有人说 ALGORITHM IN C 这本书也不错,我没有看过这本书,因此不敢贸然说好还是不好。MIT出的INTRODUCE TO ALGORITHM 我看了其中的若干章节,自己觉得这本书倾向理论,书里没有CODE。但是一些ALGORITHM
还是不错的,具体的CODE可以自己按着书里的思路来写。此外还有PROGRAMMING PEARLS 这本书也很不错,看了之后会很有启发。

3.测试

这个方面最多的问题是当你写完CODE之后问你如何测试你写的程序。这个是有规律可循的。通常大部分的程序都有相类似的TEST CASE,因此准备这个方面并不困难。这里我推荐的书是CODE COMPLETE。这本书前面的章节可以快速的略过,主要看后面的章节。

另外如果是没有过类似工作经验的时候,有的时候面试官会问你一些比较常规的问题:比如HOW TO TEST A PEN?之类的问题。这类问题也是有规律可循的。我的RECRUITER给了我一份很好的参考资料,让我面对这类问题的时候不再觉得不知道何处入手。

测试方面的问题还会涉及到一种情况:如果时间紧迫,你没有足够的时间来测试所有的方面,这个时候你会如何做?题目可能有变化,但是万变不离其宗,中心的问题还是这个。这个问题出现的几率非常高。这个部分大约需要半个月到1个月的时间。

4.BEHAVIOR问题

MS的问题都是常见的类型,很少有很变态的问题。(我遇到过比较变态的问题,我只能说可能是对方的心理上有一些不好的地方,在面试的过程里感觉他对他现在的状况不满)。通常这些问题是这样的:

Why Microsoft?
Why testing?
Introduce yourself.
Why you change your major?
What is your weakness?
What is your strength?
What is your 5 years goal?
What did you do in these years?

大部分问题的答案都在我的总结资料里面。我想你可能需要针对自己的实际情况参照我的总结里面的SAMPLE ANSWER来写出适合你自己的答案来。我是从我总结的资料里提炼出了一些最常见的题目,并且根据自己的情况写下来了自己的答案,还请我妈妈帮我修改语法跟润色。这个部分需要大约半个月的时间。

基本上面试MS SDET需要准备的内容主要是这些。此外有关数据库的问题我个人觉得你可以考虑考一个MS的认证:70-431。这样你可以用这个来证明自己对SQL 2005比较熟悉,另外一个是可以帮助你来复习数据库的知识。这个认证比较容易考,通常复习2周之后就可以
去考了。C++有什么认证我就不知道了,你可以根据自己的实际情况来斟酌。QA也是可以有认证考的,你可以参考一下。

这样算下来大约需要6个月的时间来准备面试,和你的预期时间相符。如果不能保证每天有6个小时的复习时间的话,可能这个过程会长一些。另外,如果你的学习方法比较得当,整个过程会缩短。比如说:要对自己的复习过程有计划。假设你预期6个月来完成复习计划,那你应该对每个月要完成什么心里有数。在每个月里的每个星期完成什么目标也要心里有数。在每个星期的每一天具体完成什么要仔细的定计划。还比如将需要背诵的部分放在早上第一件事情跟睡前最后一件事情来完成。因为这个时间受到的干扰少,效率比较高。还有将需要
背诵的东西分成若干部分,每天花30分钟来背诵的效率比花整块的时间来背诵高很多。还有定期的复习之前学习过的内容也会提高效率。我通常是每个星期的周末复习这个星期学习过的东西。

关于简历部分,建一个个人主页将自己做过的PROJECT放上去也是一个很好的方法,我
觉得有效果。简历上我没有任何的隐瞒,我的GAP就写在我的简历上。我很能理解有GAP的同路人的心情,GAP的存在会让人很没有自信心。面对这个问题见仁见智,我想每个人都能找到最合适自己的解决之道的。

面试大公司之前最好是先面试一些自己不想去的公司当做实地锻炼,这样你面对大公司的时候精神上的压力就会小很多。我想这个方面你一定比我好,因为你一直都是在工作。我在家里呆的时间比较长,最开始的时候觉得用英文无法能完全正确的表达我的想法,这种情况是后来慢慢好起来的。

这些都是我的经验,在准备面试的过程里我也有很多次情绪低落的时候,也有很多次觉得我无法能再继续走下去,但是现在想起来,我觉得那些困难都是对我的意志的磨练和考验。我想无论面对什么样的挫折你都能坚持走下去的话,成功也会属于你的。
Comments (1)
1. JC 2009-03-09 20:21
这个经典,顶.
本文版权属于美国剑知信息网。如需转载,请先同我们联系。
订阅JC写的剑知北美生活快报,您会了解到更多的美国生活窍门。
Related Articles:
• 美国机械工程(mechanical engineering)找工作的几点感想
• 微软Microsoft on-site面试经验分享
• 微软microsoft的SDET面试经验
美国职业发展 | 返回顶部 | 返回首页
About Us | Advertise with Us | Privacy Policy
Copyright © 2007-2016, All Rights Reserved.