最近越来越多的开发工程师朋友来找我帮忙内推,同时也会问我面试的流程和面试要点。所以今天我想聊一下微软开发工程师的面试要点和面试技巧,希望能帮助开发工程师朋友更好地准备面试。

『面试流程』
开发工程师的面试一般从开始到拿到Offer需要3-6周,包括3个阶段:
Phone Screen Interview: 这是第1轮面试,一般通过电话或者Microsoft Teams视频会议,面试官一般是Hire Manager或你将来的同事。
Full Loop Interview:这个阶段一般会安排5轮面试(也可能根据情况增减)。现在由于疫情,面试都会通过 Microsoft Teams 视频会议来进行,一般在1到2周内完成。
注:前4轮是技术面试,每轮都会考查算法。最后1轮通常是AA面试,AA面试一般考查软技能,看候选人是否适合微软的文化。(如果前面算法表现不是特别好的话,也有可能在AA面试中继续考查算法)。
Feedback & Next Steps: Full Loop面试结束后,一般还需要1周进行整理反馈;然后由招聘人员告知整个面试的结果,以及后续的安排。
『面试的考查点』

过往的项目:一般会讨论你过去做过的项目,你或你的团队遇到了什么样的挑战,这些最后是如何解决的,你是如何想出解决方案的,这个方案是不是最优解?
算法:需要考查算法和数据结构的基础知识,可以去开发者社区Leetcode检验一下你的算法能力。
注:不仅仅是开发工程师面试时需要考查算法,一线开发经理也需要考查算法。
测试与验证:你需要增加测试代码,尤其是Corner Case的处理情况。
系统设计/设计模式:我们考查候选人是否可以运用知识、理论和经验来解决真实存在的问题,你的设计可能需要支持几百用户同时使用。
英语面试环节:我们还会考查英语沟通能力,一般会有自我介绍环节。不同的组对英语要求是不同的,主要是看这个职位是否需要经常和国外团队沟通。另外,如果申请资深工程师或开发经理则对英语要求也会高一些。
敲黑板:薪资和级别会在面试中确定,所以面试非常重要。如果希望面到更高级别,就需要多准备一下英语,因为资深开发工程师和开发经理会承担更多和上下游团队沟通的任务。
『准备面试的技巧』

面试中的互动:面试中常常会考查候选人处理复杂问题的能力。在面试官给出题目后,一定不要马上写代码。首先,要明确需求,可以向面试官提问;然后,可以花时间整理下思路,和面试官进行一个初步的沟通;如果面试官认可这个思路,那就可以写代码了。如果没有好的思路,你也可以告知面试官你的方案可能不是最优解,也许在沟通过程中,你又会有新的灵感,也可以再进行优化。
Corner Case和测试用例:确保你考虑到各种 Corner Cases。面试官可能还会让你写一些测试用例。在设计测试用例时,要考虑基本功能、边界情况、性能测试等。此外,要能准确地分析出时间复杂度和空间复杂度。
算法:我曾在微软的同事圈做过一个调查,进微软需要刷多少题?结果如下:

在433个码农参与者中,36%的人刷题量超过200,31%的人在51-200之间,也有33%的人不到50。从评论中可以看到,这33%大概率有一定的基础,比如加入微软之前就是做算法的,或者曾经打过周赛的。所以一般情况下,建议150以上中等难度再加几十道Hard。
此外,可以在纸上写代码,这样能帮忙你熟悉正确的语法,也会让你的思维变得更清晰。
开发者社区: 如果你有一个好的开源项目,将是一个加分项(如:简历上的GitHub链接)。如果没有自己的开源项目,也可以参与到其他项目,或者去StackOverflow帮助其他开发者解答问题,StackOverflow的高分Reputation也是不错的。
项目介绍技巧:回答这类问题推荐使用STAR原则。参考面试就是讲故事
练习英语:最好找一个英文环境。推荐Toastmasters俱乐部(www.toastmasters.org),每周都会有活动,且主题不同,包括即兴演讲和备稿演讲。多锻炼,英语水平肯定会提高。

『其他注意事项』
有任何问题,请随时联系你的Recruiter。
如果面试官在面试开始10 分钟后没有给你打电话或加入会议,请联系你的面试安排人员。
如果使用Microsoft Teams面试,推荐打开视频,这样可以拉近彼此的距离。
提前下载并测试Teams,确保面试时可以正常工作。
https://products.office.com/zh-cn/microsoft-teams/download-app


End
HJ说
大厂内推 · 职业规划 · 业界资讯

本文介绍了微软开发工程师面试的详细流程,包括PhoneScreenInterview和FullLoopInterview两个阶段,强调了算法、项目经验和软技能的重要性。面试中,面试者需要展示解决问题的思路,处理CornerCases的能力,以及系统设计和英语沟通技巧。建议面试者在面试前充分准备,例如通过LeetCode练习算法,使用STAR原则介绍项目,并参与开源项目或在StackOverflow上积累经验。面试过程中的互动和测试用例设计也是关键。同时,良好的英语沟通能力对于更高级别的职位尤其重要。

3万+

被折叠的 条评论
为什么被折叠?



