微软苏州STCA暑期实习面经

总体流程

  • 2.8 内推投简历完善信息,简历上写的项目就是一个普通的分布式电商项目,在基础的CRUD上做了ElasticSearch全文检索。
  • 2.11 招募问卷
  • 2.17 通过简历初筛,确定面试日期
  • 2.21 通知一面时间
  • 2.28 一面
  • 3.2 因为一面过了所以没有二面,所以直接通知了终面时间
  • 3.4 终面
  • 3.9 data collection
  • 3.15 offer

一面2.28

项目

一面全程中文,自我介绍到项目的时候被面试官打断开始针对项目进行提问(自我介绍写长了)。问题如下:

  1. Spring Boot和Spring Cloud的区别?
  2. 为什么采用分布式?分布式和单体的区别?分布式的缺点?
  3. 说说什么是CAP?(说的时候提到了项目中的分布式事务问题)
  4. 什么是分布式事务?怎么解决的?(提到了Seata)
  5. Seata的tc是个什么机制?这个框架怎么解决分布式事务问题的?
  6. 简历上的技术难点提到了ES,说说亮点在哪里?

算法

一面是用本地IDE写的,问了两数之和,当时听面试官口述完之后感觉应该没那么简单,自动代入了多数之和那道题,所以提出用背包做,之后面试官说贪心就可以,才发现就是道两数之和。
ps:当时觉得好尴尬,这题都磨了10分钟,还好最后面试官放了我一马,直接进终面了。

终面3.4

项目

面试官英文开场,所以做了英文自我介绍。之后面试官用英文对项目进行提问,因为我英文确实很烂所以和面试官沟通了一下,用中文回答了orz。问题如下:

  1. 为什么使用ElasticSearch而不是对MySQL进行优化?(提到了InnoDB)
  2. 知不知道其他的数据引擎,和InnoDB的区别?(提到了MyISAM)
  3. 那为什么不用MyISAM?(说到了MyISAM不支持事务)
  4. 分布式系统里InnoDB也不能很好地支持事务啊?(提到了分布式事务问题,并说用Seata解决)
    然后面试官说ok,这么做没有问题,下次可以试试换一种数据引擎解决问题

sql

随后,面试官说既然问到了数据库,那我们来做两道sql吧。然后他发了一个codeshare链接,给定三个表,然后问了两道简单的题:

  1. 查找所有同学的语文成绩,按名字和成绩排出来
  2. 进阶:如果语文是选修课怎么办(left join)

算法

继续在codeshare上写,问了一道bfs及其进阶,问题如下:

  1. 给定一棵多叉树,填充它的next指针,其中节点的next指针指向该节点右侧第一个节点,如果其右侧没有节点,那么就指向其下一层的第一个节点(层序遍历)
  2. 进阶:如果这不是一棵多叉树,它是一个长得像多叉树的图怎么办?(存在环,每个节点只入队一次)

终面问了30分钟就提前结束了,在sql和做算法题的时候其实对方挖了很多坑,我都义无反顾的跳进去了,跳进去之后对方都会补一句:“其实我刚才没说xxx,如果xxx怎么办?”,然后原来简单的问题就进阶了。所以在反问对方对我的建议时,对方说要加强沟通。

总结

微软的面试体验真的很好,也能从中发现自身存在的不少问题。如果在简历上写了项目的话,一定要在面试前对自己的项目涉及的问题和知识进行深挖。在面试期间一定要多和面试官进行沟通,不理解的地方一定要多问,写题之前一定要和对方交流自己的想法可不可行。
最后祝大家都能拿到心仪的offer!

#微软暑期实习春招##面经##实习##微软#
全部评论
lz大大,能问一下是那哪三张表和两条sql是怎么写的么?
点赞 回复 分享
发布于 2022-03-17 20:22
感谢大佬的分享,怎么样通过了吧
点赞 回复 分享
发布于 2022-03-19 13:48

相关推荐

评论
11
27
分享

创作者周榜

更多
牛客网
牛客企业服务