微软面试总结

写在前面的话:
前两天阴差阳错,有幸参加了北京微软的实习面试,虽然被虐的很惨。
在准备面试的过程中,发现网上可以找到的面试总结还是挺少的,特别是最新日期的,所以这篇文章权当个人总结,激励自己努力,也希望能够帮助后来人。
文中内容有一部分为自己经历,一部分是准备的时候自己找的资料和联系的一些朋友提供的,仅供参考,有问题也欢迎讨论。
之前还面试过国内一些知名公司的实习岗,也拿到了一些offer,如果有人看或者时间允许的话,大概也会总结出来。

个人简介:
本硕双985非清北
本科数学,研究生软件
目前方向是算法和数据挖掘,没有特别的兴趣趋向
有一年研究院实习经验,参加过零星的几个比赛
代码能力较弱,相比之下沟通能力强一点。
废话比较多,大家多多体谅

投递渠道:
微软亚洲研究院某部门:官网投递,需要写个小申请表的那种。
微软(工程部):内推,具体过程正文会提到

五月初的时候,因为研究所的实习生活将要结束,所以开始投递简历,并在月末拿到还不错的实习offer,决定前往北京。
六月初刚来北京,正式开始租房和企业实习。这个时候阴差阳错的认识了我的房东,闲聊中知道了他在微软工作,他也知道了我很巧也是程序员。
实习半个月后,房东问我,他们部门正在招实习生,要不要去试一试。
微软在程序员心目中的地位无需多提,我自然是欣然接受,把简历修改一下后发给了他。

内推的反馈非常迅速,大概两三天后就收到了邮件,这里还有一个小小的乌龙,一开始有一位员工短信联系我,后来另一位员工给我发了邮件,我就一直以为第一位是和我约时间的hr。最后才知道第一位是微软另一个组的,反馈的是我在五月份时候随手投的msra的简历,实在是因为反馈时间太长我都忘记了这个事情了。。。。非常尴尬,还好在沟通的时候没有暴露出来。
面试时间定的非常接近,大概就是投简历的一周后,正好过了个端午节,所以毫无疑问的。。我的端午也过的非常糟心。

我对自己的实力算是有比较全面的认识,知道自己基本没有什么希望,但还是想要试一下,时间太紧急,遗忘的东西也特别多,所以非常焦虑和慌乱,甚至一度怀疑自己得了焦虑症=
=。中间现在的实习岗位和租的房子也出了很多问题,比如水管爆炸等等等。
算是情绪的一个爆炸状态吧。
感谢这期间各种朋友的开导和安慰。

直接跳到面试部分。
因为各种原因,变成了我一天需要面两个部门,上午是msra,下午是微软工程部某部门。
上午因为太过紧张,没吃早饭就去了公司。结果面试官临时有事情,加上各种原因,面试流程比我想象的长很多。饿得我头晕眼花(本身有点低血糖)。
因为是官网投递,第一面就是纯代码题。有卷子的那种,三道题,白纸写代码,一个小时左右,然后面试官会让你给他陈述思路,最后会把卷子给收走。
三道题难度不大,可能主要是语言问题吧,卷子上说的是c++和c prefer,python和java accepted(自行体会感情色彩)
第一题是不能调用库写十进制和十六进制转换。
第二题是判断两个矩阵是否重叠,如果重叠返回重叠面积。
第三题是一个贪心算法的会议问题,加了一点难度,不是当天调度,可能是一周以内,不过原理差不多,就是跨天的问题处理。
和我一起的是一个北大学霸,本科二年级,我问他你们有时间来实习?他说他已经把两年的学分都修完了。。。。。。emmmmm。。。

我代码写的确实不好,但是基本磕磕绊绊都能写下来,所以虽然知道没希望,但是还是觉得比想象的顺利一些。

上午的面试官很nice,因为面试结束已经比较晚了(快一点),还请我们在微软的食堂吃了一顿饭(死而无憾哈哈哈),然后一开始因为一些事情来迟了,也一直在道歉,总之给我留下的印象非常好。

下午是工程部面试,可能因为是内推,所以没有上午那种考试一般的笔试试卷,但是每一轮面试算法是一定跑不掉的。
一开始是一个很温柔的小哥哥,先和我聊了一下项目细节,各种问的很细,各种模型选择和一些他理解的可以比较的关键点。然后就开始写代码。
第一道题是很经典的ugly
number(可以自行百度),然后加了难度是2,3,5,7(我记得leetcode原题是2,3,5),我机缘巧合见过这道题,但是因为多了一个数(还是原方法理解不到位吧),按照原思路扩展有点困难,所以最后自己重新写了一个思路。

我个人感觉是,面试官对我的反应还算是比较满意吧,思路反应速度还可以,最后的解法也算比较优化,沟通和边界情况也考虑的还不错,硬伤可能就是代码了,维护的那个最小堆插入代码没写出来(我代码是真的弱鸡啊啊啊)
第二题是实际工程问题,问的是屏蔽关键词的问题,有n个句子需要屏蔽指定的m个关键词,选择可行的优化方法和相应的数据结构(大概这样)
然后我一开始想了个字典树,后来面试官说不是英文单词,是汉语。还追问我了很多(我觉得这个和个人思路有关,就不展开了)。
这个是个开放问题,最后也没有什么确切的答案吧/

第二轮应该是一个压力面。小哥哥贼严肃,说话也贼快,而我又是一个。。别人快起来我就会跟着别人快起来的性格= =所以就导致我俩说话越来越快,最后问了很多问题。
项目部分不详细说了。
深度学习部分,小哥问我机器学习的两个经典分类,我确实没get到他问的点,他说是生成模型和判别模型。然后问我朴素贝叶斯是生成模型还是判别模型
然后问了我最大似然估计的原理。
提到lr的时候,问我为什么LR的loss
function是(1-y)乘以什么加上y乘以什么而不是选取mse这种,这个点我还真的没有考虑过,就感觉原来的很合理,也没有思考过为什么不用别的(思考不深入,哎)
下来也查了资料,网上说是因为求最大似然估计log更方便(等待答案中)

然后开始写代码,写的是搜索引擎输入关键词以后按照词频给推荐的算法的思路和数据结构实现(大概这个意思)然后这里我们讨论了很多,有点讨论的意味了吧,最后他说我问到了一些他之前没考虑到的边界问题,我还是很开心的哈哈哈。
然后问了个比较简单的一个文件中所有相同开头的字母进行merge的问题。然后他看了我写的代码。。。问我是不是从来没写过代码。。。t t
然后说,你这个代码写的不行啊。。
说起来这个小哥非常的耿直,不会像很多面试官谈笑间把你给毙掉,他会直接告诉你你回答错了。。。。反正对我来说算优点?算是学到了很多吧。
代码写完了以后,他又问了很多问题,cover了设计模式和计算机网络和算法各种,还问了我这种非专科的什么时候学的这些基础课。
总之出来的时候问的我脑袋都晕了= =

但是走出面试房间,小哥就变得nice,人也很温柔,也很耐心,然后一路友好的送我出门(我觉得大部分程序员脾气都是很好的哈哈哈哈啊哈,毕竟debug是个磨脾气的事情)

总结:

面试出来真的如释重负。觉得自己完成了一件很新奇的任务。整个面试过程中,微软给我的体验非常非常的好,无论是环境、人、还是食物,都很加分。所以,也要努力秋招投一波啦。
日后要加强刷题强度,临时抱佛脚永远不可行,养兵千日,才能用兵一时。
与君共勉。
(一口气写出来累死我了)

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信