面经|微软|社招|前端|8面完整面试经历
20736
2022.03.13
2022.03.14
发布于 未知归属地

背景

985本科,工作一年半,微软社招 base 苏州。因为我的技术栈偏向前端,所以面试中的部分问题也跟前端有关,不过微软的面试更多注重coding和测试。

面试

1.6 一面

一面的面试官是一个小姐姐,聊天中感觉她是非常熟悉前端的,所以也问了很多前端相关的问题。

  • 英文自我介绍

  • 项目介绍,下面的问题也更多是从项目中延伸的

  • React Native运行的大致原理

  • React Native有vdom吗

  • React Native有几个线程,分别负责什么工作,有阻塞关系吗

  • AppRegistry的作用

  • 前端微服务的理解

  • 前端的监控你们是怎么做的,性能监控/错误监控

  • 出现线上问题时,以你的经验一般是如何定位的呢

coding

  • 编写一个组件,在input中输入文本,在给定的数据中查找相关的项目,并渲染搜索结果列表。

follow up

  • 防抖

  • 渲染列表时 key 的作用是什么

这次面试更多是对基础知识的考察,面试结果很快,当天晚上就约了后面的四次面试。

1.17 二面

  • 英文自我介绍

  • 英文聊项目

  • ES7了解吗,聊聊新特性吧

  • bind的作用

  • JavaScript是如何处理异步的

coding

  • 使用Promise封装XMLHttpRequest,需要在浏览器真实环境中跑起来,需要发出真实请求获得数据,建议自己寻找可用的服务完成测试。

这个题目本身并不难,我觉得面试官考的是面试者能不能在有限的时间内搜集有效信息完成测试,coding中要注意错误处理。

  • 给定一个字符串,按照字符频率降序重排字符,否则按照字典序升序。例如: "acba" 最终为 "aabc"。

follow up

  • 详细分析时间复杂度,这里有一个遍历/拼接字符串的复杂度 ,还有一个对字符集排序的复杂度

  • 你的算法对任意字符串都有效吗?答案是否定的,对于特殊字符其长度不一定为一个字节,那么在遍历字符串时就会不准确,详细可以看一下字符编码,这里不展开了。

1.17 三面

  • 自我介绍

  • 聊项目

coding

1.18 四面

  • 英文自我介绍

  • 英文聊项目

  • 思维题:在二维空间是用最少边数封闭图形是三角形,在三维空间使用最少边数封闭空间是三棱锥,那么在四维空间使用最少边数的封闭物体有多少个面。这道题主要考推理逻辑思维,我当时给出答案可能不是正确的,大家可以思考下。

coding

  • 给你一条链表,统计多少个节点是重复的,可以改变链表,要求在最小的空间复杂度前提下时间复杂度尽量最小。例如 1 - 2 - 3 - 1 - 5 - 1,答案就是3,有3个重复的1.

follow up

  • 链表有环怎么办

1.18 五面AA

  • 英文自我介绍

  • 英文聊项目

coding

  • 给定一个数字 ,给定一组 ,都在 中,要求使用 构成比 小的最大数字,每种数字的个数不限。

我使用了回溯,然后需要注意无法构成的特殊情况,可能有更好的解法。

本来到这里就结束了面试,后面HR反馈说面评不错,应该稳了,等HC批下来,我就准备过年躺平了😂。
年后HR反馈说HC没有了,我面试的比较晚,在面试过程中发出去的offer已经把HC签完了。表示理解,也感谢HR帮忙match了新的组,遂继续面试。

与新组沟通,看了我的情况后表示之前的面得不错,只需要加3次面试就可以了。

2.18 六面(换组后)

  • 自我介绍

  • 项目聊的很细,主要是问了如何实现的,为什么这么实现,有没有遇到印象比较深刻的问题,如何解决。也跟面试官讨论了各种可能的解决方案

  • 讨论了一下单元测试的相关内容

coding

  • 实现节流,要求传入一个能够控制是否立即执行的参数

follow up

  • 编写测试用例自测

  • 要求测试能够自动执行,比如在CI/CD环境下

2.18 七面

  • 自我介绍

  • 聊项目

coding:

做完后还有点时间,讨论了组内的业务,可能遇到的性能问题,你有什么建议之类的。

2.18 八面AA

  • 自我介绍

  • 展示了组内现在做的东西,并讨论了可能遇到的技术挑战

coding:

  • 中文数字转int。 例如 输入 “一千七百八十二” 结果为 1782

题目不难,要注意计算时的溢出问题,也要注意非法输入之类的处理。

结语

经历了8次面试,虽然发生了小插曲,最后终于拿到了offer。
可以看到微软的面试也不是只有算法,对基础知识和项目的掌握也同样重要,在此分享下我的经历,希望给大家带来帮助,麻烦点个赞哦~
最后祝愿大家金三银四,面试成功,收割offer。

评论 (24)