📜  微软IDC面试经历|设置 44

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

微软IDC面试经历|设置 44

我最近收到了微软 IDC 的实习机会,想分享一下我的面试经历。有点长,因为我在分享我的经验,而不仅仅是问题。

第一轮(在线):这对 Microsoft IT 和 IDC 来说都很常见。有 2 个编码问题(1 小时)和 20 个 MCQ(30 分钟)。 MCQ 主要基于数据结构、C/C++ 和少数操作系统。在编码问题中,我们得到了 main函数,我们只需要填写函数的代码。

编码问题1:找到两个链表的交点。 (检查给定链表是否为循环的加分项)

编码问题 2:给定一个由 1 和 0 组成的矩阵,池定义为完全被 1 包围的 0 的集合。例子,

1 1 1 1 1 1 0 0 0 0 1 1 1

1 1 1 0 0 1 1 0 0 1 1 1 1

1 1 0 0 0 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 0 0 0 0

该矩阵仅包含一个池,因为只有一组 0 完全被 1 包围

查找给定矩阵中的池数

我解决了这两个问题,但无法通过第二个问题的所有测试用例。但是我在第一个问题中解决了奖金问题,我的总分变高了。因此,如果您有任何奖励问题,请不要忽略它们。他们可能会帮助你取得很好的成绩。


第二轮(电话):
面试官开始谈论印多尔(我的家乡),我的弱点,我的爱好等。所以基本上他是想让我冷静下来(Tough我没有恐慌。我不知道他为什么会这么想我是:-P)。然后他开始提问。

问题1:假设您是一个项目的负责人,您需要开发一个在线火车票预订系统。在规划项目时,您会考虑哪些事情,为什么?

我很兴奋,因为我已经准备好了这个答案。基本上,这是他们希望检查您思考的规模以及您对最新技术保持更新的程度的问题。首先,我谈到了我们的要求将如何帮助确定使用哪种技术。我告诉他我在PHP和 ASP.NET 方面的项目,然后在成本、可扩展性、支持、易用性等方面对两者进行了比较。然后我告诉他一些关于 UI/UX 的信息,最后是关于可能的因素导致我们的网站崩溃。简而言之,我们谈到了数据库备份、恢复等。这个问题没有完美的答案,您只需要向他们展示您在设计系统时考虑的“全局”。当他完全相信时,我们继续下一个问题

问题 2:给你一个指向链表中节点的指针(不是指向链表的指针!)。你将如何删除这个节点?

坦率地说,我以前从未听说过这个问题。这个问题很常见,但我在准备过程中错过了它,这让我感到非常惊讶!这时候我就紧张了。但我记得我应该让面试官知道我在想什么,所以我一直在说。但 5 分钟后,他继续回答下一个问题,并告诉我们将再次回到这个问题。

问题 3:你是一名项目经理,你有 100 个小时来完成一个项目。你会花多少时间来规划、编码和测试?

在这一点上,我后悔在软件工程讲座上睡觉了。我认为胡乱猜测会给人很坏的印象。因此,我没有给他数字,而是告诉他,根据我的经验,编码将花费最多时间,然后是计划和测试。他对我的回答笑了(哦,是的……他们这样做了-_-)。但也许他认为我是一个几乎没有任何经验的孩子,并且很友善地告诉我工业项目不是这样运作的。他们为计划提供了最大的时间,因为如果计划做得好,那么编码几乎不需要任何时间! (我知道你们中的大多数人都和我在一起:-P)

但是当他告诉我这一切时,我有时间思考第二个问题。但问题是当节点是列表中的最后一个节点时,我的答案将不起作用。这正是我在回答问题之前告诉他的。令人惊讶的是,我的回答是正确的。他问我如果节点在最后我会怎么做?我说我不知道。然后他告诉我“虚拟节点”,但他告诉我他对我的回答很满意。

所以我的面试花了超过 45 分钟(不像我朋友的 20-30 分钟!:-O)。我以为我搞砸了很多,不会被选中进入下一轮。但我是(我猜其他人比我搞砸了更多;-))


第三轮(微软IDC,海得拉巴校区面对面):
所以校园很大,内部很棒,设施等。半小时内,我就被要求参加第一轮。

F2F 1:面试官自己来到等候区,带我去了面试室。嗯,这是一个很大的大厅,有 8 名面试官坐在很远的地方。他们都带着笔记本电脑、笔和几张白纸。

采访者:你为什么不告诉我一些关于你自己的事情?

我向他简要介绍了我自己(特别强调了我是 Microsoft 学生助理这一事实 ;-))

采访者:好的,让我们跳到问题上来……给你一个由 Rs、Gs 和 Bs 组成的字符串。您需要对字符串进行排序,以使所有 Rs 都在前面,Gs 在中间,Bs 在最后。

方法1:蛮力,即简单选择排序

方法 2:使用 3 个计数器 r、g、b 并在第一次解析中计算 Rs、Gs 和 Bs 的数量,并将这些 Rs、Gs 和 Bs 放在第二次解析中。 (他笑着说这是一个很好的解决方案,但他想要一个不同的答案)

方法 3:在第一次解析中,将所有 Rs 放在前面。剩下的字符串将只有 Gs 和 Bs。同样,在第二个解析中,收集最后的所有B(他说我可以做得更好)

方法4:我花了一点时间思考这个问题,但他给了我提示,我终于想出了一个算法。他让我编写代码并开始做他自己的工作。我带他浏览了代码(并尝试强调我是如何处理无效输入、极端情况等的:-P)

采访者:嗯……这都是从我这边来的。你想问我任何问题吗?

好吧,我不介意闲聊😛 所以我开始向他询问他在 MS 所做的最具挑战性的项目,以及他们为开发跨平台应用程序所遵循的开发策略。他很好,很感兴趣地告诉我一切。


F2F 2:
我的2个朋友在第一轮就被拒绝了,而我们剩下的3个人进入了下一轮。这位面试官看起来很严肃。

采访者:告诉我一些关于你自己的事情……

用他的表情,他似乎对我的回答一点兴趣都没有,很快就问了我一个问题。

采访者:好的,给你一个由元音、辅音和其他字符组成的字符串。您需要对字符串进行排序,以使所有元音都靠前,辅音靠前,其他字符靠后。

那一刻我简直不能更开心😀 我没有告诉他在上一次采访中我被问到这个问题并告诉他我的方法(上次采访的方法 4)。但他明白我知道答案,所以他改变了问题😛

面试官:给你一个由字符组成的矩阵,你需要在该矩阵中搜索一个字符串。现在可以通过从特定矩阵位置进入任何方向来形成字符串。所以唯一的限制是单元格的角必须接触。

这是一个简单的问题,我告诉他我的方法

采访者:现在我在这上面加了一个限制。您不能多次遍历一个元素。

这又简单了。我只是使用了一个虚拟字符(*) 来代替已经访问过的字符,并在递归步骤之后恢复了字符。他对这个虚拟字符概念有点困惑,但后来我向他解释了为什么它会起作用,他对我的回答很满意。然后他让我编码。我犯了一些错误,后来我纠正了,但总的来说这一轮很好🙂

F2F 3:这是最后一轮,应该是 HR 轮。但是由于他们必须完成面试,所以他们把我送到了技术人员那里! (我偷看他的笔记本电脑,看到他有我前几轮的反馈,还有问我的问题!)

面试官:说说你自己

我再次给出了相同的答案(当然,重点是 MSA :-P)

采访者:在你之前的任何一次采访中,你在哪些方面做得更好?

我告诉他我的代码中有一个小错误。我忘了增加一个变量,面试官忽略了它。

采访者:所以我看到你在 Hadoop 上工作过。你能告诉我你在项目中做了什么吗?

我期待这个问题,并给了他一个很好的解释。我的项目是关于使用大数据的网络入侵检测系统。

采访者:既然你做过IP,那我给你提一个小问题。将以下数字转换为 IPv4 格式。

这相当容易,我编写了代码。我在代码中犯了一些错误(这次我真的很紧张)但后来更正了

采访者:好的,告诉我一些关于垃圾收集的事情……

告诉了定义

采访者:我们用哪种语言进行垃圾收集?

我告诉 C++(是的……当你承受如此大的压力时,你就是这样做的 -_-) 他给了我一个奇怪的眼神,然后我才意识到我告诉他的是什么!但我猜他明白我在恐慌

采访者:好的……什么是 unicode字符串?

面试时我没想到会问这个问题,我给出了一个非常糟糕的定义。他看起来一点也不感动。

采访者:嗯……让我给你一个编码问题。给你一个画布,你必须画一条从 A 点到 B 点的线。你将如何解决这个问题?

呼……这个问题会救我(至少我是这么想的)。但我没有考虑极端情况。他给了我一个提示,幸运的是我可以成功地解决这个问题。

采访者:我这边就是这样。你有任何问题问我吗?

是的当然!我问他做过的最具挑战性的项目,但他似乎有点不知道该回答什么。所以我再次向他解释了我的问题,并给了他一些其他面试官回答的例子(那一刻感觉很棒,因为他和我在 10 分钟前处于同一个位置:-P)

体验很好,因为他们只关注技术问题,而且问题也很好。我真的很喜欢那里的人们乐于助人的态度。

我要感谢 geeksforgeeks 帮助我准备这次采访。我认为你们在帮助学生方面做得很好😀

微软的所有练习题!