查看原文
其他

微软面经分享:如何更好地做好面试准备

formulahendry HJ说 2020-10-17

韩老师 2012 年暑期在微软实习,2013 年正式入职微软,算下来在微软已经快有 7 年的时间了。虽然是 90 后,但在微软可以算是个老员工了~ 七年间,韩老师作为面试官面试过许多人,作为推荐人也推荐成功不少优秀的候选人。在这篇文章中,韩老师总结了一些微软面试的要点,希望帮助大家能更好地来准备面试,拿到自己心仪的 offer ~

最近微软正在热招,有兴趣的童鞋,请砸简历到 junhan(AT)microsoft(DOT)com , 如果合适,我会帮大家内推~ 也欢迎找我来咨询详情~

[内推] 微软大量职位热招:Azure Management Experience & Java on Azure

长期准备

想要拿到微软 offer,只靠面试前几周的冲刺是万万不够的。只有细水长流,把自己的实力全面提升,才是重中之重。

  • 基础知识

这个不用多说,作为一个优秀的程序员必须要很好地掌握编程语言、数据结构、算法、数据库、操作系统、网络等基本功。

  • 刷题

韩老师当年毕业找工作时,看的是何海涛老师的《剑指Offer》,讲的非常全面,值得一读。

近些年来,刷 LeetCode 越来越流行。有很多童鞋会问,刷多少比较合适呢?当然是多多益善咯~ 不过一般来说,韩老师觉得,至少刷个 50 题,是个比较合理的数量。当然,如果你之前搞过 ACM 或者 NOIP,你可能只需要练练手,找回当年的感觉就行了。

在 LeetCode 刷题时,要注意控制做题的时间。做完题目就算 AC 了,也要参考学习一些其他人的解决方案,开阔自己的思路。刷题不仅要有数量,还要注重质量。推荐大家使用 LeetCode for VS Code: Offer 收割利器 进行刷题。

说到《剑指Offer》,还想起当年一件有意思的事。有次吃完午饭,在公司附近散步,正好遇到了何海涛,他说他那时来面微软,遇到了各种奇形怪状的难题,也是醉醉的。哈哈~ 我在想,也许当时面试他的面试官都是看的他的《剑指Offer》面进的微软,一定是要绞尽脑汁,出一些何老师没有遇到的题吧~

  • 英语

无论你是否在外企工作,当遇到技术问题时,用英语在 Google 或者 Bing 进行技术相关内容的搜索是必备的能力。有大量的第一手的技术文档或是博客都是英语的,如果你没有用英语进行学习的能力,很难成为一个真正优秀的程序员。

做一个骄傲的 Stack Overflow 程序员也是走向成功的必经之路。

在微软的话,有些组是需要和美国总部或是其他国家的同事合作的,能否与国外同事谈笑风生,就要看你平时的积累了。

  • 开源项目

近些年来,微软越来越拥抱开源。VS Code 就是一个最好的例子。如果你有一个好的开源项目,一定是一个加分项。如果没有自己的开源项目,积极地参与到其他开源项目,也是个很好的选择,可以发 PR 也可以提 Issue。

参与开源项目,对自己也会是一个很大的提升。韩老师自己就是个很好的例子:[VSCode插件开发] 由浅入深,带你了解如何打造百万级产品

针对性准备

针对所要面试的职位,做出有针对的准备,才能事半功倍。

  • 简历


  1. 准备英文简历

  2. 事实就是:除非你是真的精通某个技术栈,否则慎用“精通”二字。

  3. 针对面试的职位,突出重点:比如你是面我们的 Java 组,在简历中可以着重突出 Java 相关的项目和技术栈。


  • 白板做题

微软面试一般是在白板上做题。离开了 IDE,你是否还能轻松写出高质量的代码?建议在面试之前,脱离 IDE,进行一些训练。一般来说在面试做题时,对语言没有硬性要求。如果做题时,忘了某个语言的 API 具体的签名或是参数,也不是问题,只要和面试官说清楚就行。我们并不是考察你对某个语言的 API 有多熟练。

面试流程

微软的面试流程一般是:1 轮电话技术面试 + 4-5 轮现场技术面试( 45-60 分钟 /轮)。和大多公司的面试情况一样,面试轮数越往后,面试官的基本越高。一般来说,最后一轮的面试官就是你面的组的大老板了。每一轮面试一般分为三个方面:自我介绍、聊项目、做题。

  • 自我介绍

自我介绍时,要突出重点,把自己的优势都展示出来。而且也要准备英语版本的自我介绍。当然,你也可能遇到外国童鞋面试官,那你就要全程英语面啦~

  • 聊项目

自我介绍之后,面试官一般会根据简历和你的自我介绍进行提问,聊聊你的项目和技术栈。最重要的一点,还是“实事求是”。自己简历上所提到的所有东西一定要能对答如流谈笑风生。介绍项目时,可以使用 STAR 面试法:

  1. Situation:简短的项目背景

  2. Task:自己完成的任务

  3. Action:具体实现,用到的技术

  4. Result:自己的贡献


  • 做题

做题当然时面试的重点啦~ 在面试官说出题目后,一定一定要先了解清楚需求,不要马上就蒙头写代码。要善于向面试官提问,把需求了解清楚,然后花时间去想一想思路。有了思路后,也不要急于撸代码。先和面试官沟通下你的想法,如果面试官觉得 OK,那就可以开始写了。如果一开始没有想出最佳的算法,也可以先想个简单的方案,和面试官说说你的可能不是最优解的想法。也许在沟通过程中,你又会有新的灵感,或者面试官也认可你先写当前的方案,可以之后再优化。

多沟通!多沟通!多沟通!重要的事说三遍!

在写题时,要注重代码风格和命名规范,也要考虑到各种 corner case。写完题目后,要能准确地分析出时间复杂度和空间复杂度。面试官可能还会让你写一些测试用例。在设计测试用例时,对于基本功能、边界情况、性能测试,都要考虑到。

总结

想要成功地拿到微软 Offer,离不开平时的内功修炼和面试前的最后冲刺,做好充分的准备是成功的关键。也欢迎大家找韩老师内推,韩老师会全程进行 follow up,给出面试准备的建议,助你一臂之力!

关注韩老师的“HJ说”微信公众号,可以获取最新微软内推信息。祝大家面试成功~

“ HJ说 ”微信公众号


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存