📜  微软实习面试经验(通过 Engage)

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

微软实习面试经验(通过 Engage)

去年,随着 Covid-19 袭击印度,微软启动了 Engage 导师计划来招聘实习生。我们通过人力资源部收到了一封关于该计划的邮件。给出的选择标准是——

  1. 毕业年份-2022
  2. CGPA >= 7
  3. 没有积压
  4. 在 CS/Circuit 分支追求 B.Tech/M.Tech/MS

这是为那些在学士第 4 学期或硕士第 1 学期结束时提供的指导计划。

女士参与

选拔流程:第一轮,您必须填写表格(今年您必须在MS职业门户中申请),如果您满足标准,您将收到一个选拔测试链接。

选拔测试包括10 个 MCQ 问题,需要在 30 分钟内解决。

有多个问题集,并且相应地对分数进行了标准化。问题的主题是——

  • Basic DSA – Stack、Queue、Graph(主要是遍历算法)、Sorting、Binary Search
  • 关于人工智能的一些理论问题

没有负面标记。我对这个测试的建议是——

  • 积极地解决所有问题,不要遗漏任何问题。
  • 尝试尽早提交(如果可能,在中点之前),根据我的观察,他们使用时间作为决胜局,因为很多人得分几乎满分。

指导:选择邮件在一周左右的时间内发送。之后有一个介绍性的会议,随后被选中的人被分成大约 12 人的小组,他们尝试根据大学进行分组。每个这样的小组都被分配了一名导师,他是在微软工作的软件开发人员。

我们得到了两个示例项目-

  1. Tic-Tac-Toe – 示例 repo (https://github.com/alialaa/js-tic-tac-toe)
  2. 路径查找算法可视化工具 - 示例 Repo(https://github.com/qiao/PathFinding.js)

我们的目标是选择其中一个项目并基于新的技术堆栈、AI、ML 等对其进行创新,以使其更加用户友好、易于访问和专业。我和我的一位大学朋友在同一组中参加了第二个项目。

为此,我们可以单独工作,也可以在选定的组内组建一个最多 4 名成员的团队。

导师每周举行两种类型的会议与我们互动

  1. 小组讨论
  2. 1:1

每周举行一种讨论,并交替变化。

GD 主要是讨论项目和进展,一个人可能面临的问题,而 1:1 的会议更接近于面试。在 1:1 会议中,我被问到的一些问题是 -

  1. 关于项目计划的问题。
  2. 关于 Dijkstra 算法的详细讨论。
  3. 详细讨论项目的实施、技术细节。
  4. 树和二叉树的定义。单个节点可以形成二叉树吗?
  5. 什么是平衡二叉树?为什么需要它?
  6. 给定一些数字,构建一个平衡二叉树,并展示它与非平衡选项的不同之处。
  7. 你知道任何平衡的 BST 吗?解释 AVL 树中的插入过程。
  8. 证明在平衡 BST 中,搜索操作具有 O(logn) 时间复杂度。
  9. 二分查找是如何工作的?解释它的时间复杂度。
  10. 什么是堆?解释 minheapify 的算法以及时间复杂度。你能证明这个吗?

除了导师互动和项目,每周还会举行不同主题的会议,如 git、人工智能、破解面试、微软文化等。每周分配一份作业。其中一些是——

  1. 提出一种方法或讨论如何从人工智能系统中消除种族和其他偏见。
  2. 一行中有 n 个硬币,正面和反面随机排列。在每一步中,一个人可以翻转连续放置的任意数量的硬币。设计一种算法,以最少的移动次数将所有硬币正面朝上。在最坏的情况下需要多少次移动?
  3. Git 上的定时 MCQ 测试。

明年夏天实习的选择基于3个标准-

  1. 导师反馈——高优先级
  2. 项目
  3. 作业

基于这 3 个标准,您可能会收到直接的实习机会,或者可能需要通过更多轮面试。就我而言,我必须参加由首席工程经理进行的另一轮面试,与您将实习的经理级别相同。

最终面试:约一个月后,我收到了一封关于面试的邮件。它在 MS Teams 上举行了 30 分钟。被问到的问题——

  1. 说说你自己。
  2. 您在 Engage 中的项目是什么?你从中学到了什么?
  3. 然后我们讨论了我的其他项目和我的角色、其中的技术细节、使用的算法。
  4. 你感兴趣的领域是什么?我已经回答了物联网,然后他接着问了一些问题,比如——
  5. 通过 IoT 设备传输的数据在什么范围内?如何继续破解物联网设备。如果发现漏洞,您将如何保护它?
  6. 在一家超市,有一份年度销售收据清单,其中包含 Id、Amount、Price 和其他详细信息。他们聘请您即兴发挥他们的整体销售业绩。为此目的设计一个系统。
  7. 给定两个未排序的数组和一个值 X,找到总和为 X 的所有对。一个来自第一个数组,另一个来自每对中的第二个。

对于最后一个,我被要求编写代码并在本地 IDE 中运行,然后我们讨论了不同的可能方法、极端情况等,时间到了。

大约一周后,他们发送了一份选拔实习的 10 名学生名单,我就是其中之一。

尖端

  • 对于指导项目,制定适当的计划并为每个较小的目标设定严格的截止日期。
  • 让您的导师了解目标的最新信息。开会不要迟到。
  • 保持 DSA 的基础知识清晰。在 Leetcode 上练习字符串、数组、DP 和堆栈、队列、递归的问题。
  • 对于 Intro,保留项目和一些经验。对您的项目有详细的了解。
  • 不要过分依赖课程,因为您主要需要自学。

祝你好运!