微软实习面试经验(通过 Engage)
去年,随着 Covid-19 袭击印度,微软启动了 Engage 导师计划来招聘实习生。我们通过人力资源部收到了一封关于该计划的邮件。给出的选择标准是——
- 毕业年份-2022
- CGPA >= 7
- 没有积压
- 在 CS/Circuit 分支追求 B.Tech/M.Tech/MS
这是为那些在学士第 4 学期或硕士第 1 学期结束时提供的指导计划。
女士参与
选拔流程:第一轮,您必须填写表格(今年您必须在MS职业门户中申请),如果您满足标准,您将收到一个选拔测试链接。
选拔测试包括10 个 MCQ 问题,需要在 30 分钟内解决。
有多个问题集,并且相应地对分数进行了标准化。问题的主题是——
- Basic DSA – Stack、Queue、Graph(主要是遍历算法)、Sorting、Binary Search
- 关于人工智能的一些理论问题
没有负面标记。我对这个测试的建议是——
- 积极地解决所有问题,不要遗漏任何问题。
- 尝试尽早提交(如果可能,在中点之前),根据我的观察,他们使用时间作为决胜局,因为很多人得分几乎满分。
指导:选择邮件在一周左右的时间内发送。之后有一个介绍性的会议,随后被选中的人被分成大约 12 人的小组,他们尝试根据大学进行分组。每个这样的小组都被分配了一名导师,他是在微软工作的软件开发人员。
我们得到了两个示例项目-
- Tic-Tac-Toe – 示例 repo (https://github.com/alialaa/js-tic-tac-toe)
- 路径查找算法可视化工具 - 示例 Repo(https://github.com/qiao/PathFinding.js)
我们的目标是选择其中一个项目并基于新的技术堆栈、AI、ML 等对其进行创新,以使其更加用户友好、易于访问和专业。我和我的一位大学朋友在同一组中参加了第二个项目。
为此,我们可以单独工作,也可以在选定的组内组建一个最多 4 名成员的团队。
导师每周举行两种类型的会议与我们互动
- 小组讨论
- 1:1
每周举行一种讨论,并交替变化。
GD 主要是讨论项目和进展,一个人可能面临的问题,而 1:1 的会议更接近于面试。在 1:1 会议中,我被问到的一些问题是 -
- 关于项目计划的问题。
- 关于 Dijkstra 算法的详细讨论。
- 详细讨论项目的实施、技术细节。
- 树和二叉树的定义。单个节点可以形成二叉树吗?
- 什么是平衡二叉树?为什么需要它?
- 给定一些数字,构建一个平衡二叉树,并展示它与非平衡选项的不同之处。
- 你知道任何平衡的 BST 吗?解释 AVL 树中的插入过程。
- 证明在平衡 BST 中,搜索操作具有 O(logn) 时间复杂度。
- 二分查找是如何工作的?解释它的时间复杂度。
- 什么是堆?解释 minheapify 的算法以及时间复杂度。你能证明这个吗?
除了导师互动和项目,每周还会举行不同主题的会议,如 git、人工智能、破解面试、微软文化等。每周分配一份作业。其中一些是——
- 提出一种方法或讨论如何从人工智能系统中消除种族和其他偏见。
- 一行中有 n 个硬币,正面和反面随机排列。在每一步中,一个人可以翻转连续放置的任意数量的硬币。设计一种算法,以最少的移动次数将所有硬币正面朝上。在最坏的情况下需要多少次移动?
- Git 上的定时 MCQ 测试。
明年夏天实习的选择基于3个标准-
- 导师反馈——高优先级
- 项目
- 作业
基于这 3 个标准,您可能会收到直接的实习机会,或者可能需要通过更多轮面试。就我而言,我必须参加由首席工程经理进行的另一轮面试,与您将实习的经理级别相同。
最终面试:约一个月后,我收到了一封关于面试的邮件。它在 MS Teams 上举行了 30 分钟。被问到的问题——
- 说说你自己。
- 您在 Engage 中的项目是什么?你从中学到了什么?
- 然后我们讨论了我的其他项目和我的角色、其中的技术细节、使用的算法。
- 你感兴趣的领域是什么?我已经回答了物联网,然后他接着问了一些问题,比如——
- 通过 IoT 设备传输的数据在什么范围内?如何继续破解物联网设备。如果发现漏洞,您将如何保护它?
- 在一家超市,有一份年度销售收据清单,其中包含 Id、Amount、Price 和其他详细信息。他们聘请您即兴发挥他们的整体销售业绩。为此目的设计一个系统。
- 给定两个未排序的数组和一个值 X,找到总和为 X 的所有对。一个来自第一个数组,另一个来自每对中的第二个。
对于最后一个,我被要求编写代码并在本地 IDE 中运行,然后我们讨论了不同的可能方法、极端情况等,时间到了。
大约一周后,他们发送了一份选拔实习的 10 名学生名单,我就是其中之一。
尖端
- 对于指导项目,制定适当的计划并为每个较小的目标设定严格的截止日期。
- 让您的导师了解目标的最新信息。开会不要迟到。
- 保持 DSA 的基础知识清晰。在 Leetcode 上练习字符串、数组、DP 和堆栈、队列、递归的问题。
- 对于 Intro,保留项目和一些经验。对您的项目有详细的了解。
- 不要过分依赖课程,因为您主要需要自学。
祝你好运!