微软面试经历分享
导语:微软股份有限公司是美国一家跨国电脑科技公司。以研发、制造、授权和提供广泛的电脑软件服务业务为主,总部位于美国华盛顿州的雷德蒙德,公司的畅销产品为Microsoft Windows操作系统和Microsoft Office软件。北京时间2015年5月12日,微软公司在福布斯“全球企业2000强”榜单上位居第三。
我的微软面试经历
终于收到微软的offer了,这两天可谓是过得忐忑不安,其实之前都没想到过自己可以进微软,想必竞争很激烈。不过最后收到offer letter时,心里又出奇得平静,这又能代表什么呢,只不过是一块敲门砖而已,以后要走的路还很长……
因为之前面试官叮嘱不能在面试期间向外泄露题目,因此没有详细地记录面试中的一些细节,既然面试基本已结束,我想还是补上为好,时日久了恐怕会淡忘了。
微软的这几次面试让我收获挺多的,一共三轮技术面,连HR面都免了,可见微软对技术上的重视。每次都是一名面试官单对单面一小时,即便进入终面也是如此,面试官的分配是随机的,从资历稍浅的到资深的都有,起初我还担心了一下,以为终面会是几个面试官群P。其实首先在心态上应该摆好,将其当做是一个学习的过程,在和面试官交流探讨的过程中自己也会有很大的提高,另一方面也是检验自己的能力的好机会。接下来我将好好记录一下自己的面试经历。
第一位面试官是一位资深的工程师,看得出他很有面试经验。首先会从你最得意的一个项目入手,看看你是怎么实现的,用的什么数据结构和算法,问得很细,所以一定要对这个项目了若指掌,别人不听你忽悠的,倘若被戳穿会遭人鄙视的,而且语言表达能力很重要,要逻辑很清晰的,简明扼要地阐述,否则会让人感觉你很不靠谱。我主要讨论了两年前做过的一个电路分析系统,这算是自己的得意之作了吧,涉及到电路建模,信号流解析,代数运算引擎等等内容,算是比较复杂了。面试官很较真,每个技术细节都要问清楚,直到他完全明白为止。项目讨论完后会开始做题,通常和刚讨论的内容有些近似,可能取材于该面试官做过的类似项目,他会让你谈谈你的解决问题的思路,可能会让你写code, 这主要考察你的engineering的能力。这里他问了一个文件解析方面的问题,给定一个以很散乱的数据格式分布的文件,单位数据块大小不定,每行数据块数不定,行数不定,内容不定,需要快速进行随机定位抽取,需要设计数据结构和算法以及函数接口。在我提出了若干种解决方案之后,他开始提高难度,假如数据量很大时,内存装不下了,你怎么解决?当我提出比较满意的方案后,他再问,假如数据量更大了,硬盘都装不下了,你该怎么解决等。总之会不断地加大数据量,直至让你撑爆为止。给我的感觉是,三个面试官都会有一个共同点,他们在考你算法的时候都喜欢涉及海量数据的处理,我想可能有两个原因,一个就是在实际应用中,海量数据的处理是非常重要的,另一方面,算法只有放到海量数据中,才能真正体现其威力。不断提高数据的量级,看你能否不断提出更好的解决方案,挺能考验人的思维能力的,而这种思维能力绝不是你光看几天书就能养成的,还是需要平时持之以恒地自我提升。感觉一些常规的数据结构如栈,堆,树什么的基本没考察过。