blog

Welcome to my blog!

[转载]2019 Spring:微软实习面试经验

ab's Avatar 2024-03-24 Future

  1. 1. 前言
  2. 2. 面试前
  3. 3. 2018年底:微软冬季实习
  4. 4. 2019年1月:MSRA和上海Blockchain
  5. 5. 2019年2月:夏季实习投递简历
  6. 6. 刷题
  7. 7. 面试
    1. 7.1. 第一轮
    2. 7.2. 第二轮
    3. 7.3. 面试后
  8. 8. 三面
  9. 9. 结果和感想
    1. 9.1. 和SAP提出离职
    2. 9.2. 在第三学期中生存下来
    3. 9.3. 工作还是保研
    4. 9.4. 上海还是苏州
    5. 9.5. 总结

前言

本篇文章转载自这里

经过几个月的准备、投递简历、面试以及(最令人苦恼的)等待之后,我终于在4月16日拿到了微软苏州STCA SE的实习Offer。因此,在这里我想记录下这几个月来经历过的与实习相关的事情,并分享一些关于实习和未来规划的思考。

面试前

面试前最重要的当然是刷题和选择职位投递简历。在这次夏季实习之前的2018年底和2019年初,我还经历了一些与微软相关的面试。此外,这次夏季实习的简历投递过程也颇为曲折,在上海和苏州的职位中犹豫不决,最终选择了苏州。以下是我投递过但最后撤回的职位的图片。

2018年底:微软冬季实习

2018年10月,当我看到冬季实习的消息时(通过当时的微信推送),我感到非常兴奋,并迅速投递了简历,选择的职位是微软苏州STCA的SE Intern。

等了一个月,终于在刚下课时接到了来自苏州的电话,一听到是HR非常激动,原以为会像SAP一样进行电话面试,没想到只是询问了我可以上班的时间。我报告了1个月后(寒假期间),HR随意提了如果有进一步消息会再通知,之后就挂断了电话。后来得知这种实习通常需要3个月的时间,因此我选择放弃,最终也没收到后续通知。

2019年1月:MSRA和上海Blockchain

在俱乐部邀请了两位去过MSRA的学长学姐来介绍实习经历后(通过俱乐部微信推送),受到鼓舞,我请学长帮忙内推MSRA。接下来的面试经历在这篇文章中有详细描述,因此不再赘述。这次面试让我第一次体验了从自信到自我怀疑的全过程,最终还收获了拒绝MSRA的宝贵经历。

实际上,在那段时间里,除了MSRA,我还投递了上海的一个区块链相关职位(如上图所示)。在拒绝MSRA之后,我感到非常沮丧,决定放弃并继续在学院中度过半年的时间。所以,当区块链职位的HR打来电话询问面试时间时,我直接拒绝了面试机会。

随后,我迎来了一个本应用于刷题,但实际上在家中连LeetCode都没有打开的寒假。

2019年2月:夏季实习投递简历

寒假结束后的第一个工作日,我看到了夏季实习生开始投递简历的消息。由于刚开学,时间相对充裕,我便花了一段时间更新我的简历,并立即开始投递。简历投递经历了以下几个阶段:

  • 苏州STCA、上海C+AI、上海C+AI Open Source

最初,我认为可以投递多个职位,因此在浏览实习职位列表时,除了确定要投递的苏州STCA外,我还发现了上海的两个职位。一开始我以为上海微软只有支持岗位,结果发现其实也有开发岗。特别是C+AI Open Source职位吸引了我,这个工作主要是为VSCode编写Java扩展。作为VSCode(当然还有其他微软产品,除了Surface)的忠实用户,我对这个开源项目和开发扩展的工作非常感兴趣,因此也选择了这个职位。

后来听说只能投递一个职位,我经过反复考虑,最终还是选择了苏州的职位,因为觉得在微软写开源代码和在微软写Java听起来非常酷,而且这样也能提高自己参与开源社区的能力,避免自己变成纯粹的螺丝钉,并且还能体验上海的生活。

听说有学长可以帮忙内推后,我再次陷入纠结。内推可以直接免掉笔试,但学长只能内推苏州STCA的职位,而我之前的选择是上海C+AI。最终,追求稳妥的我选择了苏州STCA的职位。

刷题

面试前最重要的任务就是刷题。对我而言,刷题是一件非常痛苦的事情。每遇到一个题目,我脑中几乎都是一片空白,即便刷过许多题目后也是如此。尽管设定的目标是每天解决5道题目,但大多数时间都是花2小时解决2道中等难度的题目,遇到解决不了的题目时,我就会忍不住去看解答,然后情绪崩溃,寻找3道简单题目来填补,但有时候连简单题目都解不出来。其他同学可能只刷几十道题目甚至更少就能在面试中应对自如,而我即便刷了很多题目,面对新题目时仍然感到茫然和不安。尽管其他人可能觉得刷题是一种放松和乐趣,对我来说却是一种折磨。

总之,这段刷题经历让我终生难忘,也是我最后选择接受内推的主要原因:我实在不想再经历刷题的痛苦了。

面试

3月1日结束了投递简历的环节,然后我就开始边刷题边焦虑地等待面试。终于,在3月12日收到了现场面试的邀请。确认了自己有空的时间后,我在3月18日收到了3月20日面试的通知,这种生日面试的体验真的很刺激。第一次面试包括两轮,每轮1小时,基本上都是在白板上做算法题。听说,只要通过一轮就能进入下一轮面试。

第一轮

第一轮面试官在随便寒暄几句后就开始了题目。题目是关于计算一个人被直接和间接关注的总人数,可以通过DFS算法来解决。虽然知道是DFS,但当时我不知怎么地想得太复杂,没能及时想出正确的解法,最后在面试官的提示下才勉强完成。这轮根据面试官的反应和个人感觉,我认为自己表现不佳。

第二轮

第二轮面试官先是询问了我的项目经验,我借机介绍了我的博客。在做题环节,第一题是关于在二叉搜索树中找到一个节点的前驱节点。这个题目相对简单,主要考查对二叉搜索树的理解和中序遍历的应用。面试官要求对解法进行优化,最终我用记录前一项的方法来减少空间复杂度。这轮面试还算顺利,虽然中途遇到了一些小困难,但总体来说完成得还不错。

面试后

两轮面试结束后,我对自己的表现有些担心,尤其是第一轮。但第二轮的表现还算可以,结合听说通过一轮就能进入下一轮面试的情况,我还是抱有一丝希望。令人高兴的是,3月21日我就收到了三面的安排邮件,最终在4月4日进行了三面。

三面

三面的内容较为轻松,主要围绕React和ASP.NET Core等技术进行了深入的讨论。面试官还出了两道LeetCode原题,幸运的是,我对这两道题都比较熟悉,因此表现不错。面试结束后,我感觉整个过程还是比较顺利的。

结果和感想

三面结束后不久,我就收到了微软的Offer,被分配到了Office 365部门。这标志着我的春季招聘过程正式结束。回顾这几个月的经历,我感到非常充实,同时也对未来充满期待。尽管面试过程中遇到了一些挑战,但最终的成功还是让我感到非常欣慰。我期待着在微软的实习经历,希望能够学习到更多的知识,积累宝贵的经验。

此外,我还需要考虑一些未来的规划,比如是否继续在SAP工作,以及如何在繁重的课程和项目中找到平衡。总之,这段时间的经历让我成长了许多,我也更加清楚自己未来想要走的方向。对于未来,尽管我拿到了微软的实习offer,但还有几个重要的决定需要做:

和SAP提出离职

我在SAP的工作经历非常宝贵,SAP是一家非常有人文关怀的公司,不仅工作时间合理(955),而且在各种岗前培训中也能感受到SAP是真心实意地将每位员工当作人才来培养。因此,即使决定离开,我也充满感激。

在第三学期中生存下来

面对czy、zh等四门课程的轰炸,以及三个组队项目和四个大作业,压力山大。尤其是zh的四个pre和五个报告,以及上三节课就开始机考的考试模式,真是让人哭笑不得。

但每个阶段的挑战都是不同的。面试的挑战解决了,以前被搁置的问题又变得突出:

工作还是保研

这是一个让我纠结很久的问题。是否用两年时间换取一个更高的学历?对我来说,学历并不仅仅是为了得到更好的工作机会或是薪资问题。我更关心的是,学历作为一个硬性指标,在未来职场竞争中可能变得更加重要。但从个人角度,我确实不太想再继续学业,而是更期待能够投入到工作中,做一些真正有意义的事情。

上海还是苏州

这个问题也让我思考良久。尽管之前更倾向于苏州,主要是考虑到生活成本和房价等实际问题。但经过一番考察后发现,苏州的房价并没有想象中那么亲民,而且上海的薪资水平普遍较高,这让我开始重新考虑两者之间的权衡。

总结

我的微软实习申请过程到此告一段落。现在最重要的是在本学期的课程中存活下来,同时也要找时间重新开始刷算法题,毕竟转正面试也是不可避免的。通过这段时间的经历,我学到了很多,也对自己未来的职业方向有了更清晰的规划。无论如何,我都期待着即将到来的微软实习经历,希望能够在那里继续成长和学习。

本文最后更新于 天前,文中所描述的信息可能已发生改变