Microsoft SDE Intern Interview
原先有暑假回国的计划,本想在4月底集中申请国内公司,但是三月某天有同学告诉我今天是微软的截止日期,抱着试试水的想法,粗略地做了一个简历,投递了SDE
岗位。
微软像其它的外企一样,没有像国内其它公司细分先后端算法,符合我专业的只有SDE
和TSE
两种选项,前者是软件工程师,后者是技术支持工程师。
到了四月,在瑞典遇到了有意思的人,在斯德哥尔摩的生活并不像以前那么煎熬。于是决定假期留在瑞典,所以也就没有投递任何国内的公司,微软也就成为我唯一申请的公司。
微软的面试分为笔试
,一面
,二面
,三面
,每面45分钟。其中一面
,二面
为平行面,三面
为leader面。因为我通过了一面,所以直接进入了三面。
机试
微软的笔试一共三道算法题,全球统一在codility
进行。三道题中一三两道AC,第二道题意有理解得有些问题,把问题想复杂了,不仅没有AC,还花了大量时间。但是通过了30%测试样例,姑且算半道吧。第三道题虽然AC了,但是用的方法不好,性能不够高,也扣了一定的分。
微软的笔试没有想象那么难,可能是对实习的要求不高,在我看来三道题应该都是Leetcode中的easy
或者medium
难度。
一面
笔试后过了好久,我都以为自己因为机试被刷了。五月中旬收到面试邀请,于是抱着积累经验的心态,捡起了leetcode重新刷了三四天,把简历上的项目经历看了看,粗略地准备了一下网络八股文,参加了一面。
一面和我想象得不太一样,女面试官,上来让我进行了一段自我介绍,问我回国实习的时间。于是直接让我share screen开IDE做算法题LC200。以前没做过这道题,好在算法简单,用BFS
解了出来,做完之后让我解释一下思路,还反复地问我是不是BFS
,当时差点就改口说DFS
了,还好足够坚定。完成这道题的时间比较快,面试时间空出了一大段,她问了我关于一些数据结构的问题:
- 数组和链表的区别?
老八股文了 - 你用的语言中那些底层是数组,哪些底层是链表?
面试时用的是JAVA,她可能不怎么用,跟她解释了一些类后她应该不怎么明白,就跳过了。 - 如何判断循环链表的长度
我说可以利用快慢指针来判断 - 图平常用得多吗?
不怎么了解 - 那你是怎么做出这道题的
这个时候才意识到这道题原来是图,赶忙说了些基本的概念,有向图,无向图,邻接矩阵,邻接表,DFS
和BFS
之类的。她应该不是特别满意 - 说一下平衡树?
说了一下基本概念,但是她似乎也不怎么满意 - 解决过的技术难点
说了本科毕设的一些苦难和解决方案
问完问题后问我是不是没有数据结构背景,很多基础概念掌握得不牢靠
我说是通信背景,没有系统地学过,只是离散地学习一些基础。
反问环节
- 微软的开会时间和工作时间的占比,沟通的需求多吗?
- 在微软工作会不会像一个螺丝钉?
一面总结:
算是第一次正儿八经的职业面试。一面的时候一直在紧张,不断地抖和咽口水。后来和姚澜聊起了这个问题,姚澜告诉我多面面就好了,最重要的是面试的时候要学会引导面试官问问题。
leader面
5.21(昨天)
一面后过两天就收到邮件说成功进入了终面。这次我吃一堑长一智,把数据结构重新又过了一遍(结果他没问……)
面试官是总监级的,声音听起来很年轻,估计三十多岁,后面的时候他告诉我他手下的团队从一开始的20多人到现在的80多人,应该是一个大牛。因为声音听起来很亲切,甚至有点像我一个本科同学,完全没有第一次那么紧张。
他先是问我BNSS
的项目经历,我给他简单地介绍了一下,提到了一嘴Kerberos
(失言!)。他顿时来了兴趣,问了很多Kerberos
的细节,我说这个项目是和另一个同学一起做的,我负责的不是这部分,我只知道一些Kerberos
的原理,后来把原理给他解释了一下。他后来问我问什么KDC
到多加一道程序,我回答说这就是kerberos
最大的特性,目的是为了减少KDC
的负荷,他说没错,而且不用总是传输账号密码,这样也增加了安全性。
后面问我JAVA Socket
的聊天室的项目经历
- 解释一下
TLS
握手的过程 - 并问我证书的颁发过程和如何避免中间人攻击
最后聊的时间差不多了,让我按照惯例做一道算法题,还问我一面的时候做了哪一道题,做出来没有。我说和图有关的。给我出了一道二位数组中小球下落的题(没见过,后面才知道是LC1706),先讲了讲思路,然后在collabedit
写代码。写代码的时候class的c写成大写了,然后函数名大写了,类名小写了(这仨全部写反了!)被他嘲笑了一番,说这种代码不规范的小错误不应该。好在虽然有些小瑕疵,最后还是顺利完成。
反问环节
- 微软的工作时间(不是实习,而是入职后的时间)
他说有时也是挺忙的,但是早上可以睡懒觉,比较宽容,甚至可以上午11点再过去。 - 如果没有实习机会,您对我接下来秋招有什么建议,专注于项目还是基础
建议是公司角度上更加喜欢项目经历。
后来补充了一句说现在可以告诉我他这关是没有什么问题了,并向我介绍了一下他带的团队是微软的广告算法,欢迎我的加入。
终面总结
这次完全没有第一次紧张感了,并且听姚澜的建议适当性地引导面试官问问题,感觉比一面时的状态好多了。希望能够像总监最后说得那样收到offer,不管到时回不回国。