记微软Principal SE的第一轮面试


前不久申请了剑桥微软研究院的 Principal Software Engineer 的职位, 翻译过来就是首席软件工程师, 微软的 PSE级别很高, 大概如下图:

software-engineer-levels-google-amazon-microsoft 记微软Principal SE的第一轮面试 微软 程序员

software-engineer-levels-google-amazon-microsoft

总之就是大牛级别, 没干个十几二十年在软件行业做出点啥贡献的都很难达到这个级别.

我去年找工作的时候就投过微软, 可惜一次回馈都没有, 也许是我入职GE(美国通用), 大公司, 所以简历增色不少, 今年一投, 微软 Technical Recruiter 就立马联系了我(看来公司真的也是看背景的, 就和学校一样). Technical Recruiter先是一个电话互相介绍, 然后讲了一下剑桥微软做的事情. 然后就约定了第一轮技术面.

邮件里并没有特别说第一轮技术面会怎么样个流程, 但是从给的链接事先点进行发现需要开启摄像头, 然后浏览器里有协同代码编辑器, 还有白板, 就知道第一轮面试还是得真功夫写代码.

面试我的是在微软工作20几年的一个 Principal SE Lead. 人挺 nice 的, 刚开始问了几个较简单的问题:

  • 你最喜欢的编程语言是啥? 为什么? 我就说我最喜欢的是 Pascal, 因为高中参加竞赛就用它了, 主要是情怀吧, 而且Pascal 语法也较清晰.
  • 你认为你是什么样的C++程序员? 比如是C, 还是Mixed, 我说我是基于C然后会使用C++一些容器.
  • 你上次写的一个程序(不是那种 test and throw away 的代码)是什么? 我就讲了我的视频下载插件, 哈哈.
  • 你认为从硬件, 操作系统, API, 应用软件……你认为你在哪一层? 我说除了硬件都可以.

然后就是一个比较难的问题了(需要临场发挥): 假如你要到美国微软每年举办的一个开发者大会Build演讲一个1小时的演讲, 你会讲什么? 然后就是需要用浏览器里的白板画图, 讲一下大概内容. 我当时想了一下, 就大概讲了一个这样的题目(其实我也没想好要讲什么): How to improve the communication speed between nodes in blockchain?

结果当时技术故障, 白板怎么都无法同步(面试官看不到我写的)有可能是网速原因, 只能作罢.

当时, 我用的是家里的WIFI, 结果信号不是很稳定, 也耽误了不少事, 这点是失误. 经常有延时, 写代码也不是很痛快. 教训: 一定得使用有线LAN, 保证网速, 事先得测试.

题目没有我想像中的难, 我就不重复了, 在这个英文贴里: 把输入的单词按行右居中显示. 我刚开始还以为每行可以显示多个单词(这个难度系数就较大了)

结果程序当时在浏览器里就显示正确结果了, 我们就程序进行了讨论, 比如如何测试, 还有就是利用C++的特性 string(n, ‘*’) 来去掉 for 循环.

面试45分钟, 很严格的遵守时间, 最后几分钟有机会让我问了几个问题.

很可惜, 第一轮并没有通过, 也没有任何 feedback, 我只能猜想级别不够吧, 反正就是不停的尝试, 面试反正不要钱, 还能涨知识, 攒经验XP.

microsoft-interview-right-justify 记微软Principal SE的第一轮面试 微软 程序员

microsoft-interview-right-justify

英文: A Microsoft Coding Interview Screening for Position Principal Software Engineer

GD Star Rating
loading...
本文一共 843 个汉字, 你数一下对不对.
记微软Principal SE的第一轮面试. (AMP 移动加速版本)
上一篇: 2019剑桥龙舟节: 很荣幸代表福建船队参赛
下一篇: 通用电气GE的两个广告

扫描二维码,分享本文到微信朋友圈
3ac31dcc84abf4f01ee3a190c484609f 记微软Principal SE的第一轮面试 微软 程序员

5 条评论

评论