【面经】2022微软暑期实习STCA苏州
这次为了找暑期实习看了不少大佬的面经,对我短暂的面试流程很有帮助,所以觉得虽然我菜但是也该做一些有意义的事情呜呜。
这是我第一次写博客,一方面是为了记录一下,另一方面也是希望能够帮到还没面试的大家。
学历背景:上海985本 科班 没竞赛没科研没实习 有大创项目
准备时间:超级短,投了内推才开始leetcode抱佛脚,前后做了不到一百题,有用但是在学校学的老本更好吃...
2.18半夜终于决定投递简历,2.21收到内推人邮件说内推成功了并且接到了电话预约时间,2.23收到邮件通知面试时间
————————————紧张抱佛脚ing——————————————
一面 2022.2.28
语言:全程中文
流程:
1. 中文自我介绍
2. 会用哪些语言做开发?什么程度?
3. 讲一讲你的项目实现了哪些功能
4. 那我们做两道题吧(屏幕共享)
4.1 239.滑动窗口最大值
非常简单,做完之后在面试官指导下做了一些小的优化,比如将while循环变为for循环减少可能存在的边界问题,减少变量降低空间需求(虽然无论如何都是O(1))。
4.2 给一个字符串,可能存在字母、空格和数字,如果(一个或多个)空格后跟着字母则删除所有空格,如果跟着数字则替换为一个下划线。
也是非常简单,扫一遍装进新的字符串就能做完了。因为时间不够了,所以没有问O(1)空间复杂度怎么做(猜测时间够的话肯定要问的)。
5. 已经超时了,但是还是有反问环节
问了问简历该怎么修改。面试官说要跟突出项目内容和个人技能。
总结:个人感觉交流超级流畅的,面试官也非常温柔,面完就觉得体验很好。
————————————果不其然,一面过了,直接进入终面——————————————
leader面 2022.3.4
语言:英文自我介绍和问答,问答了一半之后实在是我太菜了,面试官决定还是中文沟通吧避免歧义
流程:
1. 棒读英文自我介绍
2. (英文)选一个项目介绍一下具体技术细节
3. (英文)为什么用flask?出于什么考虑?
4. (英文)nginx有什么用?(纯属我自己给自己挖了一个坑...早知道不写在简历里了,nginx这部分当时并不是由我主要负责的,而且还是用英文介绍......)
5. (英文)你们的数据库是怎么设计的?知道ORM吗?(我和面试官解释了半天,好像产生了误解,决定转换成中文)
(以上3-5是因为我在我的项目里负责后端开发,并且标明了技术栈)
6. 那我们来看题目吧(网页链接)
6.1 是剑指offer 22.链表中倒数第k个节点 的升级版,要求找到节点之后,与前一个节点交换位置
当时太紧张了大脑一片空白,只想到了遍历两遍和哈希表两种比较笨的办法,没能给出双指针这种O(1)空间复杂度的办法(发现两轮面试都很注重空间复杂度呢)。写了笨办法之后,也像一面一样做了一些小的优化。太可惜了,应该能做出来的呜呜。
6.2 姑且算是一道题目吧,因为继续使用了网页白板,其实是超级大经典八股问题:设计模式中的单实例模式如何实现
之前以为不会问八股所以也没看...只能磕磕巴巴地提出private构造函数、static、getInstance()等基本特征。
追问还有没有别的不安全。老师课堂上没有讲过线程安全的问题,所以我是真的没想到。
面试官说可能多线程不安全。于是我提出加上synchronized。
继续追问加在哪里。我实在是没有这方面的知识,只能说加在方法上。
面试官说加在方法上可能会浪费时间(大概?),可以加在操作上。这是我第一次听说(我真的太菜了呜呜)。
7. 时间差不多了,反问吧
问面试官是做什么的。M365,Exchange邮件系统的架构和优化之类的。(还挺有意思的,但是就我这面试表现,感觉无缘了...)
问面试官如果有机会来实习,需要先掌握哪些技能。曰:入职才选题目,所以进来之前只能说准备一些宽泛的技术知识。
总结:没有一面的时候交流流畅,可能个人心态和实力问题都有吧。面试官还是很友好的。
——————————面试流程全部结束了——————————————
写在最后:
很多人和我讲说,面试要自信,要积极沟通。但是我觉得,扎实的基础是自信和沟通的前提。所以还是要多多提升硬实力(代码能力,八股知识,前沿技术),让自己有底气去畅所欲言,之后再去考虑情商等等问题orz