前言
本篇文章转载自这里。
经过几个月的准备、投递简历、面试以及(最令人苦恼的)等待之后,我终于在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和五个报告,以及上三节课就开始机考的考试模式,真是让人哭笑不得。
但每个阶段的挑战都是不同的。面试的挑战解决了,以前被搁置的问题又变得突出:
工作还是保研
这是一个让我纠结很久的问题。是否用两年时间换取一个更高的学历?对我来说,学历并不仅仅是为了得到更好的工作机会或是薪资问题。我更关心的是,学历作为一个硬性指标,在未来职场竞争中可能变得更加重要。但从个人角度,我确实不太想再继续学业,而是更期待能够投入到工作中,做一些真正有意义的事情。
上海还是苏州
这个问题也让我思考良久。尽管之前更倾向于苏州,主要是考虑到生活成本和房价等实际问题。但经过一番考察后发现,苏州的房价并没有想象中那么亲民,而且上海的薪资水平普遍较高,这让我开始重新考虑两者之间的权衡。
总结
我的微软实习申请过程到此告一段落。现在最重要的是在本学期的课程中存活下来,同时也要找时间重新开始刷算法题,毕竟转正面试也是不可避免的。通过这段时间的经历,我学到了很多,也对自己未来的职业方向有了更清晰的规划。无论如何,我都期待着即将到来的微软实习经历,希望能够在那里继续成长和学习。