入职微软也有3个星期了,借这篇文章来分享一下自己的微软面试经和工作体验吧

面试

投递

我自己是喜欢经常活跃在脉脉上,了解一些互联网公司的坊间八卦,所以因此也被很多猎头和hr加了好友。
在面微软之前其实也陆陆续续拿了国内几家大厂的offer,其实在最后投递微软的时候,也是抱着试一试的心态,毕竟在之前的面试中秉承这自己的一套方法论,也没遇到失败的案例,所以就借着这份自信,找到躺在好友列表中的微软hr投了简历。
PS: 我的面试方法论可以看这篇文章 面试随想

准备

在投递的前期,其实也做了很多的准备工作。
因为我是浙江人,不太愿意去北京。苏州和上海只能二选一,最后选择了更适合程序员发展的上海。(啥时候我软能开杭州开一个office啊,求求了,我可以给微软卖命一百年)
上海的team,大部分都是和海外对接的,所以其实多多少少都有一定的英语要求。所以我还要在准备一份英文简历(英文简历可能不是一个必须的,但是是一个比较大的加分项,面试过程中我觉得还是把握好每个细节吧,就跟约会一样,尝试把握好每个细节,最后会有意想不到的收获)
英文简历前前后后也改了3、4版,也差不多花了一周的时间。

Phone Screening

第一轮面试,好像叫 Phone Screening,也有人叫简历面。
有点人是视频面,我是电话面,大概持续了 30 min。
问了一下 behavior question,然后问了一下项目。大概 15 min 后,问了一道算法题剑指offer的原题,直接给思路就行,因为是电话面,也没办法share code。
面完整体感觉还是不错,但是感觉不出意外,应该是过了的。(比较自信,哈哈哈)

Loop

Phone Screening 出结果还是很快的,大概过了两三天就安排 Loop 面了。
Loop 面就属于是微软面试中的大头了,看网上的说法是 3-4 轮的车轮战。我被安排了三轮,全都安排在周五下午,基本上每轮都是 1 hour。

Loop 1

第一轮的面试官还是比较友善的,前 10 min 跟我聊天,问了一些项目的背景,然后就开始做题,是一道 system design,需要结合 OOP 的思想。当时还挺意外的,居然不是算法。
拿到题目没有急着做,而是不停的跟面试官交换信息,大体罗列了一些场景常见的对象,比如门、按钮、电梯、电源、刹车之类的。一开始让我写尽量可以运行的代码,但是写到后面越写越烦,直接写了伪代码,哈哈哈。写的过程中还要不断的跟面试官探讨,看看当前场景是否有什么缺陷,通过不停的解决异常case来完善自己的程序,并且在完善程序后再回过头来重构,看看是否有一些更好的模型可以替代当前的设计。
其中跟面试官聊得还是非常契合的,从一开始乱七八糟的设计,一直重构到引入 Pub/Sub 模型,再从单电梯单按钮延伸到多电梯多按钮。
我觉得这种面试是我非常享受的(也可能是我自己算法不够强,哈哈哈哈)我还是比较喜欢做场景设计。
这轮面完也是比较自信的,觉得应该问题不太大。

Loop 2

第二轮的面试官,我们将近聊了 15 - 20 min 的项目,期间我一直没有 get 到她的问题想问什么(可能是我理解的不够到位),然后就开始做题,是一道二叉树的题目(我软好像还是挺爱考二叉树的)。
按照常规的解法去做,花了不久的时间就做出来了。大概还剩 15 min,让我自测自己的程序是否有问题,当时其实测了半天,都没有发现什么问题,最后求助面试官才发,我太过在乎解算法,却忘记了我的解法是线程不安全的(虽然角度刁钻,但我觉得这是一个很好的观点)
面完其实感觉挂了(当然,确实挂了,哈哈哈哈)毕竟题做得不好,并且前面的交流也不好。

Loop 3

Loop 面是做样子的,不论挂没挂,都会把流程走完。
第三轮的面试官,感觉非常的友善(也是我在入职后的老板),当时他搞了个虚拟背景,有一种在夏威夷度假的感觉。问了比较多的 behavior
question,为什么要走,为什么要来之类的(别的因为时间太久远了,忘记了,主要是这两个最典型,比较好记)。其中我还提了几个比较有意思的话题:如何 PUA 你的老板;如何 PUA 你想合作的同事的老板。
聊了一顿之后就开始做题,让我比较震惊的是,他让我手写一个比较基础的排序算法。写完后,我们围绕着排序算法聊了很多,比如 TDD;如果我这个排序是一个对外接口,我应该如何设计,如何发布新版本….
第三轮的面试,主要是两个感受吧,当时感觉应该是问题没有很大,但是可能也在挂与不挂的边缘,因为我觉得我在面试过程中表现的过于冒进,可能会让人比较反感。
另一个感受就是,第三轮的面试官让我觉得亲和到可怕,应该是一个深不可测的大佬。

About Loop

其实 Loop 面是可以挂一轮的,不会影响到整体的招聘,我感觉这一点还是挺好的,因为面试其实是在招共事的合作伙伴,我没办法做到让所有人都对我满意,我只要让大多数人给我"YES"就好了。

As Appropriate

最后一轮,也是大家口中的 aa 面,面试官是一个在美国的中国人,前后大概也聊了 40 min,中间让我用英语介绍自己在上一家公司做的事情,没有做题,但是也有一定的压迫感,对方问了比较多的项目经历。
这一轮面完也是比较犹豫的,因为感觉面试官全程比较严肃。

Finally

面完 aa 面后,没有等很久,就收到了面试通过的喜讯,还是挺幸运的。
后续就是一些谈薪和收集个人信息的过程。其中还发生了一些小插曲,一开始我以为我投的那个岗位是写 Java,后来才知道是搞 C# 的。一开始内心还是比较排斥的,好像从我的认知里面 C# 就是出去没人要的,后来还发了推,好多推友给了我建议,包括后来看到了陈皓大佬的一条推,才发现是自己格局小了。

工作体验

正式入职也有三个星期了,有一说一,该夸夸,该骂骂,也发了好几条推。

第一次体验有 mentor 的感觉

说来也可笑,实习加上正式工作,也差不多3年的时间了,这是我第一次体验有 mentor 的感觉,第一次被人带着学习和做事情,感觉还是很丝滑的。mentor 也没有太过圈养,是我比较喜欢的方式,扔给我一个目标,让我自己去拆解,自己定计划,感觉慢慢从野路子变成正规军吧。并且 mentor 跟我有 weekly 的 1:1,受宠若惊,当初在国内互联网,老板一个季度能跟我 1:1 一次就已经非常罕见了。

windows 系统真难用

之前用惯了苹果全家桶,现在突然来使用 windows,真的太难受了。我们的项目目前也是跟 windows 强依赖的(给自己定了个终极目标,希望有朝一日可以把项目里的几十万行代码全改成跨平台的,让全组人都用上 macbook,求求了)

资本主义的糖衣炮弹

入职后莫名其妙被发了 1k 的京东卡,原来是公司因为上海疫情,给所有的上海员工发了购物卡,希望资本主义的糖衣炮弹可以多来几发。

六点下班是真他妈的爽到爆啊!!!!!!!

话不多说,就一个字,爽!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
没有国内大厂那么push,大家给我更多的感觉就是“这只是一份工作而已”,工作很重要,当然生活也很重要

级别越高越忙碌

级别越高的人越忙碌,像我manager,基本上一天的会议拉满了(希望自己也能多学学时间管理能力)

最后的最后

欢迎找我内推,发送resume到我的邮箱或者我的公众号
我的邮箱:ttsaiggo@gmail.com
我的公众号:tsaiggo的奇思妙想
PS: 好久没写文章了,感觉自己的语言表达能力都混乱了,不能在当懒狗了,好好加油吧。