前不久申请了剑桥微软研究院的 Principal Software Engineer 的职位, 翻译过来就是首席软件工程师, 微软的 PSE级别很高, 大概如下图:
总之就是大牛级别, 没干个十几二十年在软件行业做出点啥贡献的都很难达到这个级别.
我去年找工作的时候就投过微软, 可惜一次回馈都没有, 也许是我入职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.
英文: A Microsoft Coding Interview Screening for Position Principal Software Engineer
面试经历
- 写了十几年代码, 谷歌/Google认为我还不够Senior
- Jane Street第一轮一小时面试体验卡(伦敦软件工程师)
- Meta/Facebook四次面试经历
- 三次冲击谷歌软件工程师: 我的面试起伏录 (谷歌面试是不是一生只有三次机会?)
- 记两次伦敦抖音面试经历(Tiktok)
- 我的面试谷哥GOOGLE伦敦SRE的经验和教训
- 记Facebook的第一轮技术面试(伦敦脸书)
- 记微软Principal SE的第一轮面试
- 我的AMAZON面试经历与经验之谈(亚麻伦敦面经)
- 离伦敦脸书最近的一次 - 记FACEBOOK伦敦终面经历
面试题
- 软件工程师面试: TCP/IP协议是什么?
- 软件工程师经典面试题: 当你在浏览器的地址栏敲入google.com并按回车后发生了什么?
- 谷歌面试题: 迷宫随机生成算法
- 软件工程师数据库面试技巧之 SQL中的第二名记录
- 软件工程师面试技巧之 动态规化 - 整数拆分
- 软件工程师面试技巧之 如何检查数独的有效性
- 去年 Google 的面试题 - 打印消息
- 软件工程师面试技巧之 使用哈希表降复杂度
- 微软面试题: 三角形的面积是多少?
- 英国 IT公司 电话面试的一些技巧 (程序员)
- C/C++ 中的内存管理器(堆与栈)
- C++的 map 当键(Key)不存在的时候会发生什么?
- 随机数独游戏的算法设计 (Sudoku)
- 经典二叉树的镜像的递归算法
- 谷歌的扔鸡蛋问题
- 面经: Python 的 List 和 Dictionary 有啥区别?
- 逻辑测试系列 - 一种只有4种语句的编程语言 - (1)
- 逻辑测试系列之二 - DECR
- 逻辑测试系列之三 - SUBT
面试技巧
面试其它
- 产品设计和系统设计面的区别(Product Design vs System Design)
- 45 分钟模拟面试(编程、系统设计)+职业发展建议
- 英国和美国IT公司面试的主要区别
- 拒了甲骨文(Oracle)的 Offer
上一篇: 2019剑桥龙舟节: 很荣幸代表福建船队参赛
下一篇: 通用电气GE的两个广告


搞多了, 会不会来一句又是你. 哈哈……
哈哈, 混个脸熟不是坏事
事实上, 2019年面试我的工程师在2021年也同样面了我一次. . 只是他已经不记得我了. . . https://justyy.com/archives/45631
我们只能看看而已
梦想总是要有的, 万一实现了呢?