0%

微软实习面试总结

Microsoft SDE Intern Interview

  原先有暑假回国的计划,本想在4月底集中申请国内公司,但是三月某天有同学告诉我今天是微软的截止日期,抱着试试水的想法,粗略地做了一个简历,投递了SDE岗位。
微软像其它的外企一样,没有像国内其它公司细分先后端算法,符合我专业的只有SDETSE两种选项,前者是软件工程师,后者是技术支持工程师。

  到了四月,在瑞典遇到了有意思的人,在斯德哥尔摩的生活并不像以前那么煎熬。于是决定假期留在瑞典,所以也就没有投递任何国内的公司,微软也就成为我唯一申请的公司。
  微软的面试分为笔试,一面二面三面,每面45分钟。其中一面,二面为平行面,三面为leader面。因为我通过了一面,所以直接进入了三面。

机试

  微软的笔试一共三道算法题,全球统一在codility进行。三道题中一三两道AC,第二道题意有理解得有些问题,把问题想复杂了,不仅没有AC,还花了大量时间。但是通过了30%测试样例,姑且算半道吧。第三道题虽然AC了,但是用的方法不好,性能不够高,也扣了一定的分。
  微软的笔试没有想象那么难,可能是对实习的要求不高,在我看来三道题应该都是Leetcode中的easy或者medium难度。

一面

  笔试后过了好久,我都以为自己因为机试被刷了。五月中旬收到面试邀请,于是抱着积累经验的心态,捡起了leetcode重新刷了三四天,把简历上的项目经历看了看,粗略地准备了一下网络八股文,参加了一面。
  一面和我想象得不太一样,女面试官,上来让我进行了一段自我介绍,问我回国实习的时间。于是直接让我share screen开IDE做算法题LC200。以前没做过这道题,好在算法简单,用BFS解了出来,做完之后让我解释一下思路,还反复地问我是不是BFS,当时差点就改口说DFS了,还好足够坚定。完成这道题的时间比较快,面试时间空出了一大段,她问了我关于一些数据结构的问题:

  • 数组和链表的区别?
    老八股文了
  • 你用的语言中那些底层是数组,哪些底层是链表?
    面试时用的是JAVA,她可能不怎么用,跟她解释了一些类后她应该不怎么明白,就跳过了。
  • 如何判断循环链表的长度
    我说可以利用快慢指针来判断
  • 图平常用得多吗?
    不怎么了解
  • 那你是怎么做出这道题的
    这个时候才意识到这道题原来是图,赶忙说了些基本的概念,有向图,无向图,邻接矩阵,邻接表,DFSBFS之类的。她应该不是特别满意
  • 说一下平衡树?
    说了一下基本概念,但是她似乎也不怎么满意
  • 解决过的技术难点
    说了本科毕设的一些苦难和解决方案

  问完问题后问我是不是没有数据结构背景,很多基础概念掌握得不牢靠
  我说是通信背景,没有系统地学过,只是离散地学习一些基础。

反问环节

  • 微软的开会时间和工作时间的占比,沟通的需求多吗?
  • 在微软工作会不会像一个螺丝钉?

一面总结:

  算是第一次正儿八经的职业面试。一面的时候一直在紧张,不断地抖和咽口水。后来和姚澜聊起了这个问题,姚澜告诉我多面面就好了,最重要的是面试的时候要学会引导面试官问问题。

leader面

5.21(昨天)
  一面后过两天就收到邮件说成功进入了终面。这次我吃一堑长一智,把数据结构重新又过了一遍(结果他没问……)
  面试官是总监级的,声音听起来很年轻,估计三十多岁,后面的时候他告诉我他手下的团队从一开始的20多人到现在的80多人,应该是一个大牛。因为声音听起来很亲切,甚至有点像我一个本科同学,完全没有第一次那么紧张。
  他先是问我BNSS的项目经历,我给他简单地介绍了一下,提到了一嘴Kerberos(失言!)。他顿时来了兴趣,问了很多Kerberos的细节,我说这个项目是和另一个同学一起做的,我负责的不是这部分,我只知道一些Kerberos的原理,后来把原理给他解释了一下。他后来问我问什么KDC到多加一道程序,我回答说这就是kerberos最大的特性,目的是为了减少KDC的负荷,他说没错,而且不用总是传输账号密码,这样也增加了安全性。
后面问我JAVA Socket的聊天室的项目经历

  • 解释一下TLS握手的过程
  • 并问我证书的颁发过程和如何避免中间人攻击

  最后聊的时间差不多了,让我按照惯例做一道算法题,还问我一面的时候做了哪一道题,做出来没有。我说和图有关的。给我出了一道二位数组中小球下落的题(没见过,后面才知道是LC1706),先讲了讲思路,然后在collabedit写代码。写代码的时候class的c写成大写了,然后函数名大写了,类名小写了(这仨全部写反了!)被他嘲笑了一番,说这种代码不规范的小错误不应该。好在虽然有些小瑕疵,最后还是顺利完成。

反问环节

  • 微软的工作时间(不是实习,而是入职后的时间)
    他说有时也是挺忙的,但是早上可以睡懒觉,比较宽容,甚至可以上午11点再过去。
  • 如果没有实习机会,您对我接下来秋招有什么建议,专注于项目还是基础
    建议是公司角度上更加喜欢项目经历。
    后来补充了一句说现在可以告诉我他这关是没有什么问题了,并向我介绍了一下他带的团队是微软的广告算法,欢迎我的加入。

终面总结

  这次完全没有第一次紧张感了,并且听姚澜的建议适当性地引导面试官问问题,感觉比一面时的状态好多了。希望能够像总监最后说得那样收到offer,不管到时回不回国。