985本科,工作一年半,微软社招 base 苏州。因为我的技术栈偏向前端,所以面试中的部分问题也跟前端有关,不过微软的面试更多注重coding和测试。
一面的面试官是一个小姐姐,聊天中感觉她是非常熟悉前端的,所以也问了很多前端相关的问题。
英文自我介绍
项目介绍,下面的问题也更多是从项目中延伸的
React Native运行的大致原理
React Native有vdom吗
React Native有几个线程,分别负责什么工作,有阻塞关系吗
AppRegistry的作用
前端微服务的理解
前端的监控你们是怎么做的,性能监控/错误监控
出现线上问题时,以你的经验一般是如何定位的呢
coding
follow up
防抖
渲染列表时 key 的作用是什么
这次面试更多是对基础知识的考察,面试结果很快,当天晚上就约了后面的四次面试。
英文自我介绍
英文聊项目
ES7了解吗,聊聊新特性吧
bind的作用
JavaScript是如何处理异步的
coding
这个题目本身并不难,我觉得面试官考的是面试者能不能在有限的时间内搜集有效信息完成测试,coding中要注意错误处理。
follow up
详细分析时间复杂度,这里有一个遍历/拼接字符串的复杂度 ,还有一个对字符集排序的复杂度
你的算法对任意字符串都有效吗?答案是否定的,对于特殊字符其长度不一定为一个字节,那么在遍历字符串时就会不准确,详细可以看一下字符编码,这里不展开了。
自我介绍
聊项目
coding
英文自我介绍
英文聊项目
思维题:在二维空间是用最少边数封闭图形是三角形,在三维空间使用最少边数封闭空间是三棱锥,那么在四维空间使用最少边数的封闭物体有多少个面。这道题主要考推理逻辑思维,我当时给出答案可能不是正确的,大家可以思考下。
coding
follow up
英文自我介绍
英文聊项目
coding
我使用了回溯,然后需要注意无法构成的特殊情况,可能有更好的解法。
本来到这里就结束了面试,后面HR反馈说面评不错,应该稳了,等HC批下来,我就准备过年躺平了😂。
年后HR反馈说HC没有了,我面试的比较晚,在面试过程中发出去的offer已经把HC签完了。表示理解,也感谢HR帮忙match了新的组,遂继续面试。
与新组沟通,看了我的情况后表示之前的面得不错,只需要加3次面试就可以了。
自我介绍
项目聊的很细,主要是问了如何实现的,为什么这么实现,有没有遇到印象比较深刻的问题,如何解决。也跟面试官讨论了各种可能的解决方案
讨论了一下单元测试的相关内容
coding
follow up
编写测试用例自测
要求测试能够自动执行,比如在CI/CD环境下
自我介绍
聊项目
coding:
做完后还有点时间,讨论了组内的业务,可能遇到的性能问题,你有什么建议之类的。
自我介绍
展示了组内现在做的东西,并讨论了可能遇到的技术挑战
coding:
题目不难,要注意计算时的溢出问题,也要注意非法输入之类的处理。
经历了8次面试,虽然发生了小插曲,最后终于拿到了offer。
可以看到微软的面试也不是只有算法,对基础知识和项目的掌握也同样重要,在此分享下我的经历,希望给大家带来帮助,麻烦点个赞哦~
最后祝愿大家金三银四,面试成功,收割offer。