📜  Commvault Systems 软件开发工程师面试经验

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

Commvault Systems 软件开发工程师面试经验

Commvault 访问我们的校园,了解软件开发工程师(实习+全职)的简介。他们也有 SDET 档案,但我只申请了 SDE。整个过程分为三个不同的轮次,如下所述:

我们被要求在第一轮的前一天晚上选择我们选择的语言——我们必须在 C++ 或Java之间选择 SDE 配置文件。选择的语言将用于在此阶段和进一步的回合中评判我们,并且在此阶段之后不允许更改语言。我选择了 C++。

第一轮:本轮在geekd平台进行,是主要的筛选轮。它由两个部分组成。

第 1 部分:它由 15 个关于所选语言的 MCQ 组成。对于 C++,提出了基于输出预测、面向对象概念、指针、运算符重载、范围解析运算符和数据文件处理的问题。这些 MCQ 将在 25 分钟内得到答复。

第 2 部分:这是一轮编码,我们必须使用之前选择的语言进行编码。根据 C++03 标准,我们被允许使用原始 STL。这一轮包括三个编程问题,需要在 40 分钟内解决。

编程问题不完全是,但有点像:

  1. 最长回文子串问题
  2. 数组中每个窗口大小的最大值之和
  3. 油漆屋问题

我正确地解决了所有问题。

这轮比赛的结果是在三天后公布的,我已经获得了参加本应在两天后进行的下一轮比赛的资格。

第 2 轮:这一轮是最令人兴奋和最具挑战性的,因为这涉及到设计和 DSA 知识。我们被要求用我们之前选择的相同语言设计一个文件系统。我们必须在文件系统中执行的一些操作是:

  • 创建文件
  • 删除文件
  • 将文件复制到给定路径
  • 将文件移动到给定路径
  • 维护同一文件的多个版本
  • 需要时恢复到旧版本

我们必须使用远程桌面在他们的虚拟机中编写相同的代码,在比赛前一天提供给我们的凭据。

  • 在这一轮的前一天晚上,我们还与 Commvault 的高级官员进行了一次会议,会上我们被告知了一些细节,比如这一轮将持续多长时间,一轮何时开始,如果我们有任何。另外,早上,在真正开始编码之前,公司官员对问题陈述进行了彻底的解释。
  • 这是一个 6-7 小时的轮次,我们被指派了导师,他们通过 Zoom 与我们联系,并会定期检查我们的进度,并解决我们的疑问和疑问。在第一个小时里,我们应该准备好我们的文件系统的设计,我们必须用我们计划使用的数据成员和成员函数来填充提供的类。任何无法提出设计的人都被指定的导师要求离开。此外,在编码阶段,如果有人的表现不满意,他们也被要求离开。除了我之外,我房间里的每个人(有多个房间)都被要求离开,因为过了一段时间,我的导师一直和我在一起。我们应该编写一个运行代码,并且输出也应该是正确的。如果我们遇到任何错误,我们的导师会通过指出错误可能出现的位置来帮助我们。我们被允许在这一轮中使用 C++14,这让我松了一口气。
  • 导师们非常乐于助人,也很有动力,在本轮开始前向我们致辞的公司高级官员也是如此。
  • 这一轮的结果没有正式公布,但我写了一个完美运行的代码来结束,我的导师告诉我HR会有人联系我,所以我认为我已经通过了这一轮。两个小时后,我接到了人力资源部的电话,要求我参加 Zoom 会议,小组成员正在那里等我进行第三轮——技术面试。

第三轮:这一轮是技术面试和讨论,在这轮中我们对我们的理论知识和实践知识进行了测试。它持续了大约 75 分钟,我被要求解决一些编码问题,例如:

  • 字符串中仅包含元音的所有子字符串
  • 实现 LFU 缓存 - 有和没有重复的键的整体

我能够解决这两个问题,同时对我使用的数据结构和可能的各种优化进行了很好的讨论。

  • 小组成员非常乐于助人,理解和知识渊博,并且非常温和地交谈。这是一次精彩的讨论,如果我们在任何地方受到打击,小组成员会通过给出提示来帮助我们。
  • 我们还讨论了我的项目,其中包括解释他们的工作。
  • 我还被问及 C++ 中的覆盖和 OOPS 概念。最后,我被问到一些基于字符串和指针的问题。
  • 然后他们问我是否有任何问题要问他们,我问了一些问题,面试结束了,我被要求离开房间。
  • 在此之后,我期待着一轮人力资源,但这并没有发生。面试结束 3.5 小时后,我收到 HR 发来的邮件,要求我参加一次 Zoom 会议,高级官员和 HR 团队正在与小组成员一起等待告诉我我被选中。

在第二轮的 25 人中,最终有 4 人被选中并出席了同一次会议。我们所有人都获得了实习 + FTE 简介。

最终判决:选中!