📜  2018年微软IDC实习校内面试体验

📅  最后修改于: 2021-11-16 15:44:58             🧑  作者: Mango

Microsoft IDC Hyderabad 于 7 月访问了我们的校园进行实习。允许工程物理和所有计算机和电气/电子分支。他们将申请的CGPA截止设置为7。

第 1 轮:在线测试

第一轮在线进行,持续时间为 75 分钟。它托管在 Co-Cubes 上,其中有 3 个编码问题,但每个人都有随机问题。他们可以选择 C、C++、 Java和 C# 之间的语言。此外,并非所有测试用例都是可见的,其中大多数是稍后评估的后端/隐藏用例。我的是:-

  1. https://www.geeksforgeeks.org/round-the-given-number-to-nearest-multiple-of-10/(2分)
  2. https://www.geeksforgeeks.org/linked-list-sum-nodes-0s/(3 分)
  3. https://www.geeksforgeeks.org/delete-n-nodes-after-m-nodes-of-a-linked-list/(5 分)

我在大约 25-30 分钟内完成了这 3 个问题,因为它们相当简单。 5 天后,从大约 1000 名学生中选出了 110 名学生的这一轮入围名单出炉。虽然标准没有透露,但大多数选择了那些完成所有具有所需时间和空间复杂性的问题的人。

提示:如果每个人都设法做 3 道题,速度在这一轮中很重要。当您尝试了所有 3 种方法后,再考虑优化。

第 2 轮:团体飞行(纸笔测试)

这是笔和纸回合,发生在在线测试后 5 天。时长 45 分钟,包括 7 个基于数据结构的简答题和一个编码问题。编码问题有 2 部分,第二部分是奖励部分,但所有简短问题都是强制性的。

编码问题要求我们用我们选择的语言在纸上为边界遍历编写工作代码。即使我事先不知道这个解决方案,我还是使用修改后的 BFS 来完成它并且它被接受了。

奖励部分基于树的螺旋遍历。所以我们也必须按逆时针顺序输出所有内层。我没有尝试这部分,因为只剩下 5-10 分钟,并决定修改我的其他答案。幸运的是,我也发现了一个错误。在此期间,我还确保在我的书面代码中包含注释。

简短的问题很容易,但容易出错。此外,他们因人而异,主要是在给定的价值观方面。他们基于:-

  1. 数组地址计算
  2. 中缀后缀转换
  3. 宏扩展
  4. 速度差 b/w 行和列主要遍历
  5. 循环操作后的字符串输出
  6. 针对给定情况推荐数据结构
  7. 给定代码的建议更正(如果不正确)

提示:确保做正确的问题而不是做所有的问题。

第 3 轮:技术面试 1

上一轮面试后,只有31名学生被选中。

我的面试在考试后几个小时开始。面试官也懒得问我要简历。她立即给了我一个问题。

这是 LCA 问题,我在不到 5 分钟的时间内编写了基于方法 2 的代码。

然后她问我 Anagram Substring Search。对于这个问题,我们对优化进行了相当广泛的讨论,甚至继续讨论了黑白无序和有序映射(如内存使用)以及底层数据结构(即红黑树和哈希表)的权衡。最初她不相信我的算法,并一直要求我制作测试用例并进行试运行(我的笔迹和不整洁的代码可能对此有所贡献:p)。因此,我们花了将近半个小时的时间进行采访。

提示:练习使用笔和纸编写代码,因为所有采访都是以这种方式进行的。

第 4 轮:技术面试 2

这次采访在上一次采访后半小时开始。面试官最初询问我的笔试情况,然后问我要简历。她就提到的一些问题提出了几个问题。之后她还给了我一些问题来编码。

首先她问我Root to Leaf path sum问题,我以递归方式编写代码。我正在累积总和而不是减去它,她问我是否可以改进它。我告诉她我可以删除额外的变量,她同意了。

然后她问我最喜欢的数据结构是什么(仅供参考,它是 DSU)并且她会问一个问题。我告诉她我不介意,她可以问我她想要的任何一个。起初她看起来有点惊讶,但后来告诉我我有正确的精神,对于这个问题,她给了我一个与阵列相关的。问题是:

这个解决方案立刻让我印象深刻,当我告诉她时,她让我编写代码。它是通过使用一维动态规划(前缀最大值和后缀最大值)的两个数组完成的。因此,尽管她一直坚持制作各种测试用例,但这是所有采访中最短的一次。

提示:如果您对自己的技能有信心,请把握机会。你可以通过这种方式给面试官留下很好的印象。

第 5 轮:人力资源 + 技术面试

等了大约一个小时,其他面试结束后,结果公布了,很少有人被告知要等。我是第一个被人力资源经理从小组中叫出来的人。这一次持续了大约半个小时。最初他让我做一个基本的介绍,然后他从我的简历(Android+Web+Data Science)中询问了项目和技能。尽管他没有询问 Android,但我们讨论了为什么我在我的项目中做出某些决定以及背后的理由。项目中代码的可重用性方面存在很大压力。他甚至还询问了 numpy、pandas 和 Django 等包的实现细节,以及为什么它们比传统实现更有效。

他看起来更像是一名经理,因为他明显比其他面试官年长。但令我惊讶的是,他甚至问了我编码问题,因为我认为这将是严格的 HR 回合。 QWERTY Words 是个问题。我很容易地做到了这一点。然后他让我以迭代的方式而不是递归的方式来做,我花了一些时间来解决这个问题。我向他解释说,所讨论的差异类似于黑白 DFS 和 BFS 的差异,因此可以使用队列来完成。当我写完代码时,他告诉我面试结束了,问我是否有什么想问他的。 (所有采访都是这样结束的)

提示:HR 回合是一种潜在的香蕉皮,所以要善于交流,不要放弃,因为您可能会得到微妙但重要的提示。

第 6 轮:最终面试

这是在上一次面试后几秒钟的即兴面试,由另一位正在参加人力资源轮次的其他候选人的经理进行。我觉得这只是在漫长的一天后测试我,因为他只给了我一个问题就回到了其他候选人。后来我发现其他被选中的候选人不需要提供这个,所以我猜他只是想测试我自己和/或通过随意的面试让我不安。问题是使用字符数组作为输入构建自定义 ATOF函数(Ascii 到 Float)。在编写基本函数大约 10 分钟后,我想问他一个问题,当我打电话给他时,他回来直接阅读代码。读完之后他告诉我,我今天已经完成了。

自然地,我很暴躁,因为在校园里待了将近 14 个小时,所以我在回应他对结果的神秘回答时有点激动:p。然后他用印地语笑着说——“回家聚会吧”。没想到那天正式确认,但当我回到家时,实习协调员发送了名单。

8人被选中,我的名字也在其中。祝贺立即开始涌入,这是一个伟大的时刻。

提示:大多数科技公司更愿意在面试中关注申请人的竞争编码和解决问题的能力。实践。理解。不要死记硬背,因为当您遇到未知问题时,只有您对主题的理解才能帮助您。所以相信自己,因为你可以通过专注于此来掩盖其他缺陷。