【粉丝投稿】机器马大佬的微软面经
Editor's Note
在公众号3号群的同学,都知道机器马大佬最近收获了很多大厂的Offer。本文是他的微软面经。大家来瞻仰大佬。
The following article is from 机器马喝啤酒 Author 机器马喝啤酒
目前是站在面试已经过去3个月的时间点写这篇面经,微软其实一直是我心中的理想公司,最主要的两点是WLB和transfer机会,但是最后我没有选择微软,具体原因之后讲如何选offer的文章会提到.
这篇主要讲一下微软的面试流程和面经. 我面的岗位具体是Azure的后端开发工程师,技术栈是.NET. 但是会不会.NET并不影响面试流程,我完全没有相关经验一样拿到了offer.
微软面经(已offer)
本来没想过能进微软,一面根本没复习,直接摆烂了。微软按组匹配的,面试官全是同一个组的,也就是说未来会是你的同事和上级。
面试官是一个小姐姐,先让我自我介绍,主要问了项目,然后说切换到英文,问了俩项目问题。
做了一个算法题,合并两个有序链表,用迭代方法写完的,然后问我递归怎么写,写完递归测完,问我如果两个链表都是逆序的怎么办,我说反转之后合并再反转。这个时候面试到了55分了,问我有没时间写一下反转链表,3分钟秒了。
反问环节:
问了一下面试官微软面试要不要求bug free. 面试官说没有这个要求,但是如果是面试官帮你发现bug肯定会有一定影响,自己CR出来的就无所谓.
第二天HR通知我面试过了,问我周四全天有没有时间,我说有,然后周四约了4连面,10-11点,11-12点,2-3点,3-4点
同一天面的,具体问题记得不太清楚了,每一面都是项目+算法,算法题一般都给2-3题,先给一个简单的然后问follow up。三面是先做的算法题,然后才问的项目。中间问了几个2面和4面都问了两个英语问题。主要也是关于项目的。
记得的题目
有序数组二分法搜索
旋转有序数组二分法搜索
旋转又重复有序数组二分法搜索
两个有序数组找两边都出现过的数字
两个字符串,判断两个字符串是否能通过旋转match(是否能通过旋转从a变成b)我一开始想得很复杂,通过双指针进行判断,后来其实不用,把s1复制一次然后如果s2是通过旋转产生的则肯定在s1出现过。kmp就行。
一个小插曲
三面的时候有个算法题出了个很简单的问题, 但是我当时有点慌, 我直接用IDE开启debug模式, 一秒钟找到问题就改对了.
面试官最后对我说代码写得挺快的,但是毕竟我们是在面试, 最好自己肉眼debug.
Team leader,跟我说和之前的面试官沟通过了,项目没啥好问的了,直接开始刷题。
x1,y1 x2,y2两个点确定一个矩形,x3,y3,x4,y4确定另一个矩形,求两个矩形交集,不需要写代码,和面试官讨论思路。其实就是横轴和纵轴的合并区间。我一开始说要先通过射线法判断两个图形相对位置关系,然后根据位置关系求解。之后讨论了老半天,最后才想到横纵坐标合并区间方案。
简单计算器,给了一个web,卡得要死,总是断线,语言选择也没有golang,相当于白板写代码,也不需要运行,看着差不多就行,思路要说清楚。写完了问我怎么测试,怎么写边界case,反转情况很多,说了一大堆。然后说我说的差不多了,也面了一个小时了。问我有什么问题,问了一下工作节奏和福利。
看着像大boss,头发都白了,面试也不好约,一直在催hr才约上。这一面基本就是聊天,聊个人情况,问了一些经典的BQ问题.
1. 你为什么想来我们公司
2. 未来长期职业发展
3. 如果你和同事或者上级意见不合怎么处理
4. 你更喜欢团队氛围是什么样的
反问环节:
1. 组内任务怎么分配,
2. 公司有没有technical sharing,hackthon之类的东西
面试流程
外企的面试官在我看来是很nice的, 面试官并不是面试者的敌人,我一直很不喜欢一些"吊打面试官"之类的说法. 实际上面试官和面试者的目标是一致的, 面试也不是为了从面试者身上找优越, 抱着平等的心态去面试.
首先在面试开始的时候会自我介绍,介绍本次面试的流程和一些注意的点,然后才会让你开始自我介绍.
即使碰到一些不会的问题也不用慌, 你实际上是在和面试官一起讨论解题方案, 有不清楚的地方及时和面试官反馈. 面试官的目的是考验你的技能是否能满足目标岗位,而不是为了难倒你.和某些公司形成鲜明对比(就不点名了).
面试没有八股文,全是算法题和项目问答. 一定要对自己之前的项目有清晰的认知和反复过逻辑,你为什么要这么设计,这么设计有没有什么好处,能不能用别的方案.
把你准备的所有东西用英语准备一遍.
算法题做题步骤
确认题目是不是你理解的
和面试官讨论思路,确认思路ok再开始写
coding
边界条件开头判断好.
变量函数命名写好,英文驼峰还是下划线,别混用,别用无意义变量名.
注释,最好写好注释,更容易理解,面试官不一定懂你写题的语言.
告诉面试官写好了,跑一个测试用例,如果面试官需要就解释一下,分析时间空间复杂度
大概率会有follow up,根据你写的速度.
END
我的爬虫架构课开课啦!
爬虫架构进阶就在这里
送未闻Code知识星球一年订阅!
未闻 Code·知识星球开放啦!
一对一答疑爬虫相关问题
职业生涯咨询
面试经验分享
每周直播分享
......
未闻 Code·知识星球期待与你相见~
一二线大厂在职员工
十多年码龄的编程老鸟
国内外高校在读学生
中小学刚刚入门的新人
在“未闻 Code技术交流群”等你来!
入群方式:添加微信“mekingname”,备注“粉丝群”(谢绝广告党,非诚勿扰!)