微软爱尔兰研究院软件工程师全职职位的微软面试经验

原文:https://www . geesforgeks . org/Microsoft-面试-全职经验-微软爱尔兰研究院软件工程师职位/

职位:高级软件工程师 Office 365 团队

我最初于 2018 年 8 月申请爱尔兰都柏林 Office 365 团队的高级软件工程师职位。一个月后,我接到招聘人员的电话,要我快速聊一聊自己的现状。他问了我以下问题: 1)你为什么申请这个职位? 2)你现在的角色是做什么的? 3)你认为未来 5-8 年自己会在哪里?

招聘人员很满意,他通过 Skype 安排了一次软件工程师的技术面试。

Skype 面试:技术性 分为两部分,首先他问了我一些基于能力的问题和我简历中的一些项目。他还问我为什么要去微软工作?我做过的最具挑战性的项目是什么,为什么?–这只是 15 分钟然后他给了我一个编码面试问题给下面: 给定一个数组:【5,10,4,0,2,4,6,31,6,6,8,5,1,2,3】求其左右子数组之和的数字。在这个例子中是 31,因为左边的数字加起来是 31,右边的也是。 写一个函数,如果存在的话,将返回这个数字。如果没有,返回-1。 提示:他在寻找时间和空间的复杂性以及解决方案的方法。你必须问一些问题,比如输入数组可以是空的吗?在这种情况下,我们应该抛出异常吗?输入数组有多大?它包含负数吗?还是十进制数?诸如此类的事情。这表明,在开始编写代码之前,您应该思考并计划如何处理它。然后想想你将如何解决它,以及时间和空间的复杂性。讨论结束后,询问现在是否可以开始编写代码。 所以我开始写代码,我也不停地解释我在做什么,只是为了让他知道我的想法。一旦完成了函数的编写,我就遍历了看起来正在工作的示例输入数组。然后他改变了一个输入数组,其中有 0、1 和负数,我的代码无法找到正确的数字。 我以为我这个阶段失败了。接下来,他问我是否有任何问题,所以我问他关于他们的软件开发过程、构建和发布过程以及一些其他技术/项目生命周期类型的问题。一有机会就问问题是很重要的。

几周后,我接到招聘人员的电话,他们希望我来微软都柏林校区进行面对面的面试。

现场面试 Office 365 团队:技术 面试预约了一整天。分为 4 个阶段。每个阶段持续大约 1 个小时,还会有一个与招聘经理的午休时间(这是面试的一部分,所以要小心,不要太舒服)。

阶段 1 给定数组值= [1,3,4,8]和索引[0,2]。编写一个函数,该函数将返回一个数组,该数组包含除索引中的值之外的所有值的乘积。所以在这个例子中,这个函数的结果将包含 3,4,8 和 1,3,8 的乘积。 当然,提问可以澄清任何困惑,并讨论解决方案。解释你将如何处理它以及时间和空间的复杂性。

阶段 2: 查找字符串中的第一个非循环字符。输入“Teeter”输出“r”。同样,在编写代码之前,提出问题并详细说明您将如何实现它。

阶段 3: 反转字符串中的单词,同时保留特殊字符。input =“Hay!停止用 Java 写代码,用 C#。”output =“c#!在代码编写中使用 Java,停止 Hay”。注意!和,都没有改变。

第 4 阶段——这一次是招聘经理: 从排序的数组中找到缺失的数字。输入= [0,1,2,3,4,6,7,8,9]输出= 5。我用了二分搜索法。

他们似乎都很满意,我想我可以收到这个团队的邀请。4 周后,招聘人员打电话告诉我,不幸的是,这个职位已经给了另一个更适合这个职位的候选人。然而,我的反馈是积极的,我被推荐申请微软的另一个职位。

职位:高级软件工程师 SharePoint 团队

几个月后,我申请了微软都柏林校区 SharePoint 团队的高级软件工程师职位。接到另一个招聘人员的电话,她收到了我之前面试的反馈,她说是积极的。她计划通过 skype 与西雅图雷德蒙的一名软件开发经理进行一次技术面试。

Skype 采访。 他问了我几个关于 C# 和 CLR 的技术问题。一些 ASP.net 和。网络核心问题。然后,他转向几个基于能力的问题。之后他给了我编码问题。他让我只使用数组数据结构来设计一个 Queue 类。类应该具有以下行为: 入队(int)、出队()、查看()和计数()。 我问了他几个问题来澄清一些假设,并询问他是否可以开始编写代码。我在写代码的时候一直在说,我们讨论了一些事情。他喜欢我的解决方案,问我有没有问题要问。正如我先前所说,我们提出问题是非常重要的,我也提出了问题。最后,我要求任何负面反馈,因为这将有助于我为下一次面试做更好的准备。

几天后,她接到了招聘人员的电话,她说,由于他们已经收到了我在 office 365 面试中的积极反馈,所以他们决定跳过另一个关于 Skye 的技术面试,并受邀在微软都柏林校区进行面对面的全天面试。

现场采访 SharePoint 服务团队: 首次采访 3 名软件工程师: 1。你现在的角色是做什么的?/说说你自己。 2。当你做代码评审时,你会寻找什么? 3。如何衡量应用程序的性能? 4。你如何着手在项目中实施新技术? 5。你如何指导你的队友? 6。C# 8.0 有哪些新特性? 7。如果你的队友发现了完全符合需求的新技术,你会怎么做? 8。除了技术指导,你还指导软技能吗? 9。你如何影响你的队友? 10。白板问题: a .每层(仅 0-7 层)去一次的电梯,给定输入[0,7,5,3,4,1] [[5,7],[6,3],[4,1],[7,2]] b .讨论测试案例 c .注意:我不明白这个白板问题的重点。我是一个容易相处的人,面试官看起来不确定他想了解我解决问题的技巧。二维数组有缺陷,所以我修复了这个问题,然后讨论了如何解决它(算法)。最终,我被要求为我所做的算法编写代码。 d .你会如何设计一款调用 3 微服务完成线上订单的 app?

招聘经理(团队经理)复试 1。定义实体 2。监控和遥测有什么不同? 答:在遥测方面钻了更多的孔,这有什么帮助吗.. 3。有一个我已经忘记的第三个技术问题。 4。说说你参与或领导过的最具挑战性的项目? a .有哪些歧义,你是如何解决的等。 5。你认为团队领导应该是什么样的? 6。你如何接受同事或队友的负面反馈?

第三次面试招聘经理的老板(在雷德蒙) 1。你被告知我们的团队结构了吗? 2。最具挑战性的项目 3。你如何掌握新技术,又如何着手学习它们? 4。你如何衡量一个项目的成功?

几天后,招聘人员又打来电话,告诉我招聘的过程。这是我一生中最快乐的一天!