📜  SWE Intern 的微软面试体验

📅  最后修改于: 2022-05-13 01:57:54.719000             🧑  作者: Mango

SWE Intern 的微软面试体验

部门:信息技术

  • 批次:2023
  • 公司名称:微软
  • 实习角色:SWE实习生
  • 您的角色领域(软件/咨询/核心电子设备等) :软件截止:CGPA >= 7.5

面试过程(有多少轮,几轮) 1轮编码和3轮面试(2轮技术和1轮人力资源)

流程各个阶段提出的问题:在在线评估中,我们被问到了 2 个 DSA 或竞争编程类型的问题,其中一个是 greedy,另一个是 dp。

第一轮技术:

  • 你将如何将一棵树从一个程序转移到另一个程序? (我在树中使用文件处理和索引来回答)
  • 以及关于上述问题的一些后续问题(如更高的效率、易于计算、不同的场景、时间和空间复杂性。)
  • 验证可能包含数字的字符串表达式,“*”表示乘法,“/”表示除法,“+”表示加法,“-”表示除法,以及一些括号。我想出了一个堆栈方法。然后他让我编写相同的代码(不需要运行它)。我已经对其进行了编码,他很满意,但只是运行它进行测试,它工作正常,但在极端情况下失败了。然后他让我调试。花了2-3分钟,但发现了错误。我刚刚更改了代码,它运行良好。但是,没有必要运行代码。您也可以在文本编辑器或 doc 文件中编写代码

第二轮技术:(对我来说是技术+人力资源)

  • (从一个 HR 问题开始)你在这 2 年的大学里学到了什么?
  • 你将如何检查一棵树是否平衡?
  • 我知道这个概念,但以前从未编码过。我告诉了我的方法,他对此表示同意。并要求我编码。我做到了,但是以蛮力的方式。他问我这是否是最佳方式。然后我想出了一个 O(n) 时间,O(n) 空间的 DP 方法。当我在那个问题上应用 dp 时,他非常满意。然而,最优解具有 O(n) 时间和 O(1) 空间。他让我想想这样的解决方案。我要求提示。然后我想出了最优化的方法。
  • 选择结果背后的原因(哪些技能对您获得工作的帮助最大?) :数据结构和算法(DSA),竞争编程(CP),沟通技巧
  • 准备策略(你如何为非面试轮做准备?你为面试轮做的准备如何演变?)

编码轮:

  • 我没有单独准备编码轮,因为我经常参加竞争性编程(CP)比赛,这让我对编码轮有足够的信心。
  • 由于经常进行竞争性编程,我擅长调试,这在编码回合中帮助了我很多。

技术面试:

  • 对于技术面试,我在面试前将近一个月练习了来自 Leetcode 和 GfG 的 DSA 问题(同时进行了某种修改)。
  • 我已经修改了整个面向对象编程(OOP),因为有些公司确实会就此提出问题。在准备实习季节的时候,我和几个朋友进行了结对编程,这帮助我更快更有效地学习。
  • 即使在今天,我大部分时间都在做结对编程,而不是单独练习。结对编程非常有用,也是一种非常有效的编码模式。我在面试前 1 个月学习了一些主题,包括动态编程(DP)。由于我的时间较少,无论我解决了什么 DP 问题,我都以两种方式(即自上而下和自下而上)进行。这帮助我在更短的时间内变得擅长它。

人力资源回合:进入人力资源回合。我在 youtube 上观看了一些模拟面试,这让我对 HR 回合有了一些了解。我准备好自信并以结构化的方式说话。但我没有通过 HR 轮。我是在第二次技术面试之后被选中的。

  • 但是,我的面试官问了 1 到 2 个 HR 问题。
  • 他问我“在这两年的大学里你学到了什么?”。
  • 我也为 HR 问题做好了充分的准备,例如“介绍一下你自己”、“我们为什么要雇用你?”、“你的优势和劣势是什么?”、“你为什么想加入我们公司?”等等
  • 我制作了一个投资组合网站和 2 个 ML 项目。
  • 准备资源——
  • 必要的资源(必须做的)
  • Leetcode 和 GFG(用于 DSA),
  • Javatpoint.com(用于 OOP),
  • 高级资源(可以做) :Codeforces,
  • 实习经历(如已完成)

您想与学生分享的任何其他内容:专注于 DSA 和您的沟通技巧。一些公司还询问 OOP 问题。在学习任何东西时,一致性最重要。结对编程非常有效。竞争性编程在编码轮次、DSA、压力处理、问题解决和调试方面有很大帮助。

其他建议:

  1. 与面试官沟通好
  2. 自信点
  3. 适当的计划和奉献精神有助于破解任何公司
  4. 不要忽视 CGPA 和 Sem 考试。由于 CGPA 截止(校内实习),许多优秀的学生无法申请许多公司。尝试使 CGPA 高于 8。