微软面试全过程分享
导语:微软作为知名的国际大公司,很多求职者都想要进去,可是有那么容易吗?下面一位求职者对微软面试全过程的分享,希望可以帮到大家。
微软面试全过程
笔试当天,我感觉一般,微软的题目是全英文的,评分规则有点奇怪,空着不答0分,答错了反而倒扣分。这提醒下大家,这非常重要,可以看得出微软非常看重一个人的信誉,让我们千万不要不懂装懂。从中,我们可以发现两条规则:第一,题目应该不会有陷阱,如果有陷阱的话被倒扣分很冤枉,因为被陷阱坑了远远比不会要强;第二,无论是笔试还是将来的面试,千万不要不懂装懂,不懂就不懂。笔试的题目来说,是我参加这么多笔试中感觉最好的一次,因为考的内容基本上都是算法和数据结构,没有我最讨厌的计算机网络等靠记忆的学科。不过难度还是有点大的。
考完后我没有报太大的奢望,可是一个星期过后,我奇迹般的收到了微软的邮件,叫我两周内准备电话面试。后来上周五那的工作人员打电话给我,叫我这周二,也就是今天下午2:00到4:00准备电话面试。我问了另外一个已经收到OFFER的兄弟,他和我说他是去现场面试的,至于我为啥是电话面试,他不清楚,至于具体原因我待会儿再说。
今天下午2:00,微软准时打电话给我,接电话的是个女的,对着我的简历问了我下南网那变的项目,我就吹啊吹啊吹啊吹。吹玩后,她用问我北京实习的项目,还要叫我用英文回答最大的挑战。讲完后,问了我下C++的知识,其中包括了虚函数,好在我之前两天看了C++。接下来她说我对测试有没兴趣,问了我很多测试的问题,包括让我测试下电灯泡,还要我说说在中软做项目过程中遇到的测试问题等等。最后出了一道编程题,关于字符串的,我回答的不是很好。她要求不断的降低时间复杂度,最后还是提到了测试方面的问题。我现在终于明白为啥我是电面的了,可能我笔试的不是很好,处于候补名单中,软件开发不要我,看看有没别的部门要我,结果软件测试那部门看重了我。大概一面面了我差不多30多分钟,然后叫我等通知。
问了同学,他们说一面一个小时,我感觉我没戏了,正心灰意冷的准备肥学校准备UC笔试时,可爱的铃声再次响起。这次是个男的了,这个可能是技术人员,问的问题全是技术问题。首先叫我自我介绍下,这个我事先准备好了,对着稿子读了一翻。然后问我懂不懂C++,虽然之前我不会用C++,但是前几天蹲在家里闭门看书,总算有了帮助,今天早上还刚看完虚函数这一章,结果他在次问道了这个问题。看来虚函数非常重要啊。我就结合多态来讲了下虚函数的做用。接着他又问了许多C++的问题,其中一个是多重继承,这是JAVA没有的,叫我回答为什么JAVA没有的原因。我就从二义性方面讲。感觉他对我的答案基本满意。接着又问我关于C++和JAVA数组定义的区别,这个我回答不上,我老实说不会,他很耐心的给我解答,当数组越界时JAVA会自动查找错误,而C++不会。可以看出这为面试我的GG非常非常的好人,我忍不住再赞扬他一遍。接着又问查找树和哈希表的区别,这个问题问的非常的好,我答不出来,他又很耐心的给我解答,原来查找树适合有序的查找,而哈希不适合,例如查找人的名字,由于姓太多,按照哈希表查找会很麻烦,查找树就解决了这一难题。接下来,他又问了不少C++方面的问题,例如堆和栈之间的区别,还有链表和数组的优劣等等,这些问题我都很流利的答出,感觉他对我这几个回答还算是比较满意。
接下来,两道编程题。第一题,叫我判断一个链表是否为循环链表。这个问题查补度纠结了半个小时,我不断的更新自己的回答,不断的被否定,接着否定之否定,一直到了最后在他的不断提示下,找到了答案。其实答案有点考智商,就是给两个指针,按照不同的速度向前移动,如果到了发现到头来他两会出现重叠,则该链表是一个循环链表。这里提醒下大家,类似于这种编程题,大家千万千万不要轻易的说想不到,告诉我答案吧。这样说是死定的。再怎么样都要想下去,千万不要放弃,实在想不到可以要提示。好吧,让我再次表扬下那位面试我的GG,他非常非常的NICE,还很有耐心,非常的好人。
最后一道题,是关于二叉树的:给你个二叉树,只有从上往下的方向,问你怎么去判断两个节点的最近父节点。这个问题花了差不多40分钟,还停顿下来叫我写代码,写完后念给他听。不过还好,题目不是很难,花了10几20分钟写好了。但是之前针对这个算法我提出了多个方案,但是都被要求优化,可见微软对时间复杂度和空间复杂度的要求是非常的高。
面试结束了,27号前出结果。如果RP大爆发,我还要去北京现场面试,据说是要求面试4遍,原来我还是长征的一小段啊。即便这次有很大的机会被刷下来,但是今天2个半小时的面试还是令我受益匪浅。在次感谢两位面试官的友善和耐心,让我从中学到了好多东西。