在大厂面试是中怎样的体验?

作者 | Ashwin Goel

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

大约在2-3个月前,我在Linkedin上看到了微软员工发布的一系列消息。当时正值微软招聘大三的学生作为软件工程师的暑期实习生。看到这些消息后,我非常兴奋,而且我不想错过这次机会。

我将简历(包括我的所有项目、成就和经验)发给了微软的15-20个人,希望至少能有一位可以推荐我参加在线编程测试。

重点:

  1. 勇敢地和陌生人联系,这只是构建关系网的一种方式。你拥有的关系网越强大,就越容易找到工作。

  2. 在与某人联系时,不要简单地打招呼并要求对方做推荐人,你可以写一封信详细介绍你的项目、经验、成就,并写出他们推荐你的理由。

邮件刚发出去1-2个小时,我就收到了微软的第一轮面试邀请,这是一次纯粹的编程测试。

第一轮面试

2019年9月22日,我参加了第一轮面试。

我拿到了三个解决问题的题目,而且给出的时间也够。

其中一个问题是:

给定大小为n的数组,请以偶数和奇数交替的方式升序排序数组。

注:这是最简单的一道题。

在面试仅剩5分钟的时候,我的笔记本电脑崩溃了。这可能是最糟糕的情况了,但很幸运的是,过了一会儿后我可以继续测试了。

我写出了三道题的代码,并通过了所有测试用例,包括边界情况和复杂的测试用例。

我对第一轮面试充满了信心,并热切期待结果。

第二轮面试

10月11日,结果宣布了,我成功地进入了第二轮面试。

第二轮面试应该是视频面试,我认为面试主要是数据结构,所以就开始为此做准备。

这次面试定在了10月14日。首先简单地做了介绍,然后面试官开始测试OOPS的概念。我很高兴,因为从大学开始我就不需要为这个话题发愁了,因为我很早就搞清楚了这个概念。

他们问了我有关继承的一些概念,例如多态性、方法重载和方法重写之间的区别、virtual关键字和抽象。

重点:

1. 如果你不了解某个概念,那也不要给出不相关的答案,乖乖承认就好。然后询问更多有用的信息。这可以表明你愿意学习新事物,给面试官留下好印象。我并不了解virtual关键字,但我没有给模糊的答案,而是告诉他我没听说过,后来我们就这个问题讨论了2-3分钟。

面试的第二部分是解决问题。他们的主要目的是测试我们思路以及解决新问题的方法。因此,说出你的思路非常重要。

我拿到的问题如下:

假设有一个3维数组,且按照如下螺旋方式排序:

01 02 03 04

12 13 14 05

11 16 15 06

10 09 08 07

请问,从这类数组中搜索某个数字的最佳方法是什么?

起初,我没有想到好的解决方案,所以我提出了最差的解决方案(O(n²)),然后开始考虑优化解决方案。

我一边想,一边说出了我的方法,所以面试官也给予了我帮助,并给了我很明显的提示,最后我找到了正确的方法。

重点:

  1. 说出你的思路。让面试官知道你在想什么,他可能会引导你朝正确的方向思考。

  2. 跟面试官提出问题,进一步阐明问题。

  3. 从最糟糕的解决方案开始,然后开始对其进行优化。

  4. 无论你提出怎样的解决方案,他们都希望你写出代码,因此需要为此做好准备。

注:我开始想到的解决方案非常复杂O(n²),最后优化到了O(log(n)),我心中的喜悦难以用文字描述。

对于这轮面试,我也非常乐观,而且很幸运,我接到了下一轮的复试。

第三轮面试

11月17日,我在学期末考试期间抽空来到了微软的班加罗尔办事处,因为我不想错过这个大好的机会。

老实说,他们的园区是一个理想的工作场所。真的很棒!

由于我提前到了,所以一直在前台等候,一边研究GeeksforGeeks上常见的数据结构问题。

很快我们就被带到了会议室,并得知我们这20名学生是从1万1千名在线申请人中筛选出来的,顿时让我感觉良好。

在简单的介绍开始后,面试正式开始。

第一回合

本回合主要是看简历。面试官说他们真的很喜欢我的简历。他们询问了我有关项目的问题,并了解了我以前做过的工作。

重点:

1. 你必须熟知简历中的每个词。

2. 不要写任何你不是十分清楚的东西。

很快他们就开始测试我的思维能力,并提出了两个常见的数据结构问题。

其中一个问题是如何反转链表。前一天晚上乘坐公交车的时候,我刚刚在GeeksforGeeks上阅读了有关这个问题的文章,而且我记得部分解决方案。经过一番思考后,我向他们解释了算法。他们还让我们用C++写出正确的代码,还通过示例进行了测试。

注:微软追求完美,每个面试官都表现出了这一点。每个算法和代码都需要通过测试用例验证正确性。

另一个问题是,假设你有一个改进的链表,链表中的每个节点除了正常的数据变量和指向下一个节点的指针之外,还有另外一个指针,可能指向链表的任何一个节点。现在你的任务是克隆这个数据结构。

在上图中,每个节点都有一个指向下一个节点的指针,一个数据项(即Node1,Node2…Node5),以及一个指向任意随机节点的随机指针。

我发现这个问题很棘手,需要一些思考。

第二回合

本回合主要是测试更深的编程技巧和更快的思维。

我拿到了两个问题:

1. 编写代码,检查二叉树的高度。

2. 编写代码,检查二叉树是否是二叉搜索树。

我写出了两道题的代码,但不得不多花点时间调试一些小错误。

这两个问题都需要利用递归来解决。

重点:

1. 写完代码后,还有非常重要的一步:验证!

第三回合

这是最后一回合,面试官是微软的一位高级专业工程师,他已经在微软工作了8年。面试开始的时候,他首先问了一些关于我的简历的问题。他对我做过的一个项目IGBTQ CPU调度算法很感兴趣。我在白板上向他解释了这个项目。

下半场是解决问题。他给我的问题是:

考虑一个从1到n的数字序列。

接下来,在迭代(i)时,我们删除第(i + 1)项。

例如:

考虑 n = 20

迭代1:删除第二个元素

1 3 5 7 9 11 13 15 17 19

迭代2:删除第3个元素

1 3 7 9 13 15 19

迭代3:删除第4个元素

1 3 9 13 15

以此类推……

最后剩下来的数字称为幸运数字。

任务是检查给定的数字“ n”是不是幸运数字。

在经过反复思考后,我说出了解决方案,并得到了面试官的反馈,然后我根据反馈找到了解决方案的模式,并写出了代码。

接下来是一些常见的问题,有关我个人以及我想从事的工作。

重点:

1. 你需要清楚为什么想进这个公司。你需要对他们的产品和计划进行足够的研究,并清楚地了解你的动机以及为什么想在这里工作。

2. 在面试前,你需要准备明确而清晰的答案:为什么你想进这个公司,而为什么这家公司应该雇佣你。

3. 不要说“我有信心”或“我正在努力”之类的话!具体说明你的答案,并举例证明你的观点。

总结

最后,我想说这是有史以来最好的面试经历之一。我曾接受过多家顶级公司的面试,但以前从未感觉自己和面试官和面试过程如此亲近。别的公司可能会测试你的知识,并期望获得行业水平的答案,但微软更注重你的思维过程和编程技巧。我在整个过程中就感受到了这一点。

另外,我没有被录用。我想在本文最后说明这一点,因为对于我们这个年龄的人来说,最重要的是学习经验以及提升自我。我们的职业生涯才刚刚起步,被拒、薪水和便利性没那么重要。但是,我为什么被拒仍然是一个谜,我本人毫无头绪。我感觉面试非常顺利,本来也以为会有好结果。

然而,我失去的只是暂时的,但我获得的却是永久而无价的。

原文:https://medium.com/better-programming/my-interview-experience-with-microsoft-754039df9103

本文为 CSDN 翻译,转载请注明来源出处。

【End】

热 文 推 荐 

☞5G 是否有过度承诺之嫌?

☞3 天开发物联网应用!腾讯云 IoT 超级小程序来了

☞30 年间,软件开发行业为何 Bug 纷飞?

☞2019年区块链安全事件总结,全球损失超60亿美元 | 盘点

☞互联网诞生记: 浪成于微澜之间

☞GitHub宝藏项目标星1.6w+,编程新手有福了

☞马云穿布鞋演讲,任正非打的出行,盘点科技大佬们令人发指的节俭生活

点击阅读原文,即刻参加!

你点的每个“在看”,我都认真当成了喜欢

“我的一次微软面试经历”相关推荐

  1. 微软面试经历和相关思考总结

    说明:微信公众号不方便插入外链,需要查看文章链接的读者请直接点阅读原文看我博客-- 这篇文章介绍我面试微软的完整经历,以及相关的思考总结.文章字数1.3w+,阅读全文大约需要半小时.断断续续写了一个月 ...

  2. 微软ATC的笔试面试经历

    微软ATC的笔试面试经历 今天总算和一家比较心仪的公司签约了,找工作这么长时间, 经历的正式的面试只有微软ATC.联想和我签的这家公司了,虽然微软在最后一轮被cut了,不过还是想把这一轮笔试和五轮面试 ...

  3. 苏州微软面试--机器学习自然语言处理

    博客园开通有三年了,第一次写随笔以记录苏州微软的面试经历. 楼主一个月前在校园BBS上看到师弟发布的社招信息,对苏州微软的这个研发职位比较感兴趣,就发邮件帮忙内推下.师弟很爽快的答应了,没多久就收到了 ...

  4. 华为人工智能岗位面试经历分享

    https://blog.csdn.net/csdnsevenn/article/details/81916843 博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP ...

  5. 一个程序员的面试经历(一)

    ? 为了吸引大家对此系列文章的兴趣,首先列出我曾经面试的公司吧,以后会逐一介绍面试过程(包括面试的形式和题目哦!)相信大家会感兴趣的! 日期 公司 形式 说明 0210 联想运作管理部 面试 ? 02 ...

  6. 近期面试经历总结及公司评价

    前言 之前在博客园看到有朋友发表过一些工作经历以及面试体验,由于本人近期也在考虑换工作的问题,一个月来也陆陆续续面试了一些公司,下面就把我的面试经历以及个人对公司的印象同大家分享一下,希望对大家有所帮 ...

  7. 滴滴新锐计划实习生面试经历

    滴滴新锐计划实习生面试经历 周四(2017.04.20)面了滴滴,两面总共花了大概1.5小时吧.感觉整个面试过程和之前经历过得面试完全不一样.而且二面也让我收获颇丰.于是想记录下来. 一面是一个有点吊 ...

  8. 华为、中兴、阿里...硬件工程师分享24家公司的面试经历

    硬件工程师分享24家公司的面试经历 一.百度 "硬件与系统开发"岗位.总共有5道大题: 1.1)CMOS反向器及其说明:2)典型的计算机结构:3)VLIW和SIMD的区别与定义: ...

  9. 阿里、百度、字节跳动、京东、地平线等计算机视觉实习生面试经历分析,已成功上岸!

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 来源:https://www.nowcoder.com/discuss/192224 本文已授权,未经允许,不得二次 ...

最新文章

  1. 批量修改漫游配置文件路径
  2. android string.xml前后加空格的技巧
  3. python【力扣LeetCode算法题库】543-二叉树的直径
  4. C语言求最大公约数欧几里得Euclid算法(附完整源码)
  5. centos7 nat模式配置静态ip_Centos7设置静态IP后无法上网的解决方法
  6. 多项式对数函数|指数函数(多项式)
  7. 如何合理的规划jvm性能调优
  8. c#获取屏幕分辨率信息
  9. XSRF(XSS+CSRF)
  10. poj 2741 Colored Cubes(dfs暴力枚举)
  11. python定义一维数组
  12. 【PowerDesigner】Constraint name uniqueness问题及处理
  13. mybatis与hibernate的区别及各自应用场景
  14. 快手内容运营-数据分析面试
  15. java坦克加快速度_Java坦克大战 (三) 之可完全控制坦克朝八个方向运动
  16. 项目管理体验营day3:项目管理之沟通技巧
  17. 深圳市社会医疗保险门诊大病管理办法
  18. 2019秋-走的太久忘记了为什么出发
  19. HTTPS的SSL单向验证和双向验证
  20. 如何在 SAP ABAP 系统中使用 Adobe Form 试读版

热门文章

  1. C#通信之Socket通信的简单例子
  2. KaTeX parse error: No such environment: align
  3. [LibTorch] 指定参数不进行学习
  4. [Python] virtualenvwrapper 常见问题
  5. matlab mingw 32,Matlab 2017b MinGW-w64 5.3安裝
  6. Macaca简单入门
  7. 中国凝胶密封高效空气过滤器行业市场供需与战略研究报告
  8. 中国可擦除可编程只读存储器行业市场供需与战略研究报告
  9. 2021-2025年中国道路平地机行业市场供需与战略研究报告
  10. 2021年中国电子高度表市场趋势报告、技术动态创新及2027年市场预测