📜  微软 ML 工程师 2020 面试经验

📅  最后修改于: 2021-11-17 10:11:43             🧑  作者: Mango

微软机器学习工程师招聘团队确认了我在印度的机器学习工程师申请。在这篇文章中,我将分享我的经验,希望对你们中的一些人有用。我有 2 年以上在初创公司担任机器学习工程师的经验。

面试流程:

1. Week1(星期三)

我收到了一封来自 Microsoft 招聘人员的电子邮件,内容涉及 Microsoft 的软件工程和机器学习职位。我给了她我的简历,一个小时内,我接到了一个电话来解释这个过程。有人告诉我,我的简历将被转发给招聘经理,如果我被选中,招聘团队的另一位招聘人员会与我联系,我将在下周六(第 2 周 – 周六)进行面试。

2. Week2(星期三)

我接到另一位招聘人员的电话,通知我我的个人资料已入围面试。星期六,我将进行三轮面试(第 2 周 – 星期六)。面试将涵盖数据结构和算法、设计和机器学习等主题。我定期与我联系以确认我是否有机会参加面试。招聘人员确保我有一个非常顺利的面试体验,真是太棒了。

3. Week2(周六):面试日

第1轮:

  • 数据结构和算法问题(1 小时)。
  • 问题 1:一个较大的字符串后面跟着一个较小字符串的列表。我被指示包括开始和结束 xml 标签(比如斜体)。删除最接近最长标签对的标签对。它是合并相交区间的更高级版本。我被要求写测试用例,所以我写了三个来测试边缘用例。 https://www.geeksforgeeks.org/merging-intervals/。
  • 问题2:提供了两个数组,每个索引代表两个不同人的空闲和忙碌时段。当两个插槽都空闲时,我被要求找到最大的连续插槽大小。

追问:如果只允许我将一个忙时隙改为空闲时,最大可用时隙是多少?

解决方案:借助两个人的两个忙(和空闲)数组,提取所有(开始,结束)对相交槽并稍微修改合并间隔以找到最大槽大小。

我很快解决了这两个问题。但我问了许多澄清问题,我从蛮力开始,并在其基础上进行逻辑进展。

第二轮:

  • 低级设计(1 小时)。
  • (a)从头开始设计LRU:我使用了双链表和Hash Map来解决问题。我只知道这一点,自下而上地构建它,随着我的移动,我不断获得解决问题的逻辑进展。 https://www.geeksforgeeks.org/lru-cache-implementation/
  • (b) 如何使用 LRU 启用多个用户同时使用(或阻止)以确保一致性。

第 3 轮:

  • 招聘经理(1.5 小时)。
  • 我的简历和经历引起了激烈的争论。我的所有项目(ML 项目)都经过彻底讨论,包括我采用的方法、我在项目中的角色、我如何解决一些挑战等等。
  • 向我解释了我受雇的团队。
  • 当我询问如果选择我的潜在角色时,它清楚地解释了所有细节。

4. Week4(星期二)

我收到了来自 Microsoft 的邮件,我被选中并要求提供所有详细信息和支持文件。

我的准备:

  1. 编码:一般情况下,我使用 GeeksforGeeks、leetcode 和 Codechef 进行大量编码。 GeeksforGeeks 对我帮助很大。 https://www.geeksforgeeks.org/practice-for-cracking-any-coding-interview/
  2. 我从 GeeksforGeeks 学习了数据结构和算法。所有的概念在这里都清楚地提到。 https://www.geeksforgeeks.org/data-structures/。
  3. 在整个面试过程中,我们的行为应该保持良好,因为这是所有面试官都会注意到的要点。

终于,我准备好了就被搜查了,现在大喜过望了。我要感谢 GeeksforGeeks 和社区帮助我获得这个机会。我希望这篇文章对你们中的一些人有所帮助。