当前位置:学识中文吧 > 简历 > 求职简历 > 面试技巧 > 微软面试经历分享
手机版

微软面试经历分享

来源:学识中文吧 阅读:2.51W 次

导语:微软股份有限公司是美国一家跨国电脑科技公司。以研发、制造、授权和提供广泛的电脑软件服务业务为主,总部位于美国华盛顿州的雷德蒙德,公司的畅销产品为Microsoft Windows操作系统和Microsoft Office软件。北京时间20xx年5月12日,微软公司在福布斯“全球企业20xx强”榜单上位居第三。

微软面试经历分享

我的微软面试经历

终于收到微软的offer了,这两天可谓是过得忐忑不安,其实之前都没想到过自己可以进微软,想必竞争很激烈。不过最后收到offer letter时,心里又出奇得平静,这又能代表什么呢,只不过是一块敲门砖而已,以后要走的路还很长……

因为之前面试官叮嘱不能在面试期间向外泄露题目,因此没有详细地记录面试中的一些细节,既然面试基本已结束,我想还是补上为好,时日久了恐怕会淡忘了。

微软的这几次面试让我收获挺多的,一共三轮技术面,连HR面都免了,可见微软对技术上的重视。每次都是一名面试官单对单面一小时,即便进入终面也是如此,面试官的分配是随机的,从资历稍浅的到资深的都有,起初我还担心了一下,以为终面会是几个面试官群P。其实首先在心态上应该摆好,将其当做是一个学习的过程,在和面试官交流探讨的过程中自己也会有很大的提高,另一方面也是检验自己的能力的好机会。接下来我将好好记录一下自己的面试经历。

第一位面试官是一位资深的工程师,看得出他很有面试经验。首先会从你最得意的一个项目入手,看看你是怎么实现的,用的什么数据结构和算法,问得很细,所以一定要对这个项目了若指掌,别人不听你忽悠的,倘若被戳穿会遭人鄙视的,而且语言表达能力很重要,要逻辑很清晰的,简明扼要地阐述,否则会让人感觉你很不靠谱。我主要讨论了两年前做过的一个电路分析系统,这算是自己的得意之作了吧,涉及到电路建模,信号流解析,代数运算引擎等等内容,算是比较复杂了。面试官很较真,每个技术细节都要问清楚,直到他完全明白为止。项目讨论完后会开始做题,通常和刚讨论的内容有些近似,可能取材于该面试官做过的类似项目,他会让你谈谈你的解决问题的思路,可能会让你写code, 这主要考察你的engineering的能力。这里他问了一个文件解析方面的问题,给定一个以很散乱的数据格式分布的文件,单位数据块大小不定,每行数据块数不定,行数不定,内容不定,需要快速进行随机定位抽取,需要设计数据结构和算法以及函数接口。在我提出了若干种解决方案之后,他开始提高难度,假如数据量很大时,内存装不下了,你怎么解决?当我提出比较满意的方案后,他再问,假如数据量更大了,硬盘都装不下了,你该怎么解决等。总之会不断地加大数据量,直至让你撑爆为止。给我的感觉是,三个面试官都会有一个共同点,他们在考你算法的时候都喜欢涉及海量数据的处理,我想可能有两个原因,一个就是在实际应用中,海量数据的处理是非常重要的,另一方面,算法只有放到海量数据中,才能真正体现其威力。不断提高数据的量级,看你能否不断提出更好的解决方案,挺能考验人的思维能力的,而这种思维能力绝不是你光看几天书就能养成的,还是需要平时持之以恒地自我提升。感觉一些常规的数据结构如栈,堆,树什么的基本没考察过。

第二位面试官是一位资历稍浅的工程师,一上来就需要你做英文的自我介绍,你说什么不重要,重要的是看你的英文口语表达能力,别太蹩脚就行了。接下来还是会看你的简历,如果对你做过的东西都不是太了解的话,可能会让你直接做题,题目不会太难,你需要先讲讲自己的解决思路,然后写code,仍然是考察你的code能力,假如有循环,要注意上下界,假如有递归,要注意退出情况。这里他要求写一个函数,去除数组中重复的元素。在你写好之后,他会着重看你的边界是否存在问题。之后会将这个问题进行发散,很可能会往海量数据上引,让你提解决方案,然后对每种解决方案让你评估其复杂度,比如有100T个数,让你去除其中所有重复的数等等。给我的感觉是,一定要有你自己的想法,展现自己的思维能力,就是拿到一个问题之后你通常会如何思考和寻求解决方案,这是非常关键的,是否能达到最终的最优解决方案这倒不一定很重要。所以,思维要活跃和发散一点。接下来会继续给你做另一个题目,主要是考察你的raw intelligence,比如可以将其转化为数学问题,进行数学推导,然后就可以通过编程解决问题了。这里他问给定任意一个正整数,是否可以表达成若干个连续的正整数之和,如果可以请编程求解。这个问题记得在《编程之美》上看过。在和面试官讨论找平方根的过程中,我指出了一个细节,可以让程序至少省了一半的时间,这个细节连面试官都貌似没想到,所以从他眼中散发的光芒中我看得出他很满意。

假如通过了前面两轮面试,就会进入第三轮,其实和前两轮差不多,只是不同的面试官其面试风格不一样吧。不过给我感觉,他们都很nice,毕竟大家都是从学生过来的,不会故意为难你的。不会的地方坦诚自己不会,OK,没问题,毕竟每个人都有自己侧重的地方,不可能面面俱到的。重要的是展现你的能力,你的思维能力,学习能力,表达能力等。

终面通知来得挺突然的,晚上天黑了才来通知,蛋疼的是腾讯的面试通知也来了,都安排在第二天中午,基本上没法准备,不过有了前两次的教训,我专门对海量数据的处理方面好好地研究了一下,不敢说很透彻,但至少又获得了许多解决问题的新思路,这在之后的终面中证明是很有效的。

终面,首先还是问你项目的问题,可能会问他比较熟悉的项目,然后会提一个类似的问题,让你分析可能导致该问题的原因,让你谈谈自己的解决思路。这里他问假如取款机突然响应很慢,你觉得为什么会这样?请你提出解决方案。接下来会让你做题,会有一个应用场景,让你大致写一下伪代码。一定要确认自己明白无误地理解题目的意思,面试就好在这,可以当面和面试官互动。这里他问了一个网页的抓取和分类的问题,有点像网络爬虫,需要递归地扫描所有URL并进行分类,并且还要防止有环路。之后仍然会将该问题往海量数据上引,套路还是一样,内存不够了,硬盘不够了,仅限于单机等等。如果暂时没有思路也不要紧,可以让他给你些提示。思维可以发散一点,不一定总要死盯着某种算法,有时候会难以突破瓶颈的,不如换一种思路试试,说不定会有所突破呢,我就是如此,突然灵光一闪,就想到了解决方案,看得出面试官挺满意的。其实没什么高深的,关键还是在于自己平时的积累。接下来呢就谈了一下我的专业,我不是学计算机的,所以就谈一谈我的专业主要是干嘛的,其实还是考察表达能力吧,然后问一下你做过的自己专业的一些项目,都挺轻松的,最后就是看你还有没有问题了。

比较蛋疼的是,不论是腾讯还是微软的面试官,都不止一次地问我既然你喜欢计算机,为什么本科选择电子,硕士也选择电子?年轻时小盆友不懂事也罢,为什么都研究僧了还继续不懂事呢?尤其是腾讯面试,一轮三面,包括HR,这个问题都问了一遍。看来,所有的人都觉得我脑子有问题吧。

最后总结一下,感觉微软挺重算法的,不知是否跟我搞服务器有关,面试官都很喜欢问海量数据处理方面的问题,还有个人的思维能力也是相当重要的,毕竟这个东西是个长期培养的过程,不是短期培训就能搞起来的,我挺喜欢与工程师交流的,不论是技术还是人生,总觉得很畅快,我就喜欢这种感觉。

谈谈接下来的打算吧,过去一年主要精力都放在engineer上了,算法还是不够扎实,这次以去实习为契机,好好狠抓算法,现在看来,算法才是王道啊。

本文链接:https://www.xszwb.com/qzjlfanwen/jiqiao/kek076.html

Copyright © 2024. 学识中文吧 All right reserved.

文本美图素材,版权属于原作者。部分文章内容由网友提供推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。