📜  2020 年思科面试体验 |在校园

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

2020 年思科面试体验 |在校园

这是 2020 年 8 月 Covid-19 大流行期间发生的校园虚拟采访。思科以两个角色访问了我们的园区。

  1. 软件工程师 - 网络/嵌入式/应用程序开发
  2. 软件工程师 - 云应用程序开发

我接受了云应用程序开发职位的面试。

第 1 轮(在线测试):该 HackerRank 测试包括 15 道 MCQ 和 2 道编码问题,必须在 60 分钟内完成。 MCQ 主要基于由计算机网络、DBMS 和操作系统组成的 CS 基础知识,很少有问题与位操作有关。解决前一年的 GATE 1 标记技术 MCQ 足以在 MCQ 部分做得很好。

编码问题:

  1. 您将获得一个字符串列表,该列表指示公司员工在特定日期签入和签出公司的时间。输入的格式为 (逗号分隔)。
    例如:
    Alice,10:23:02,13:04:45Bob,09:00:43,12:03:21

    时间始终采用 HH:MM:SS 24 小时格式。您获得了一天中的一个时间作为查询 例如:11:00:56。我们必须确定当时公司内部有多少员工(Query_Time)。在这些示例中,o/p 应为 2(原因:Alice 和 Bob 都在 11:00:56 时间在办公室内)。

  2. 给你一个由 1-9 之间的数字组成的 3×3 矩阵。最后,你必须按以下格式排列矩阵
    1 2 3
    4 5 6
    7 8 9

    在原始矩阵中,只允许进行以下操作来转换矩阵。
    操作 - 只有当它们的和是质数时,您才能交换两个相邻的数字。
    找到达到最终(目标)矩阵所需的最少交换次数。

通过这一轮的诀窍是首先专注于解决简单的编码问题,然后完成尽可能多的 MCQ。然后在完成上述部分后,转到困难的问题。

注意:由于一些奇怪的未知原因,这个 HackerRank 测试选项中的 C++ 代码不可用。唯一的选择是 C、 Java和Python。因此,至少要熟悉除您的主要 CP 语言之外的至少一种其他语言。

由于这发生在 Covid-19 大流行期间,接下来的所有面试轮次都是在 Cisco Teams 上进行的虚拟面试。通过与面试官共享屏幕解决了编码问题(可以使用任何编辑器 - 记事本/VS Code 等)

第二轮(技术面试):

这次采访从简要介绍自己开始,然后很快就开始讨论我做过的不同项目。这是一个 10 分钟的讨论。由于我的项目基于云计算,因此提出了以下项目特定问题:

  1. 您使用了哪个管理程序?
  2. VirtualBox 是如何工作的?那里有什么样的虚拟化?
  3. 为什么不用OVA?您为什么从头开始实施基础架构?
  4. 什么是 ISO 文件?
  5. 然后面试官给了我一个简单的递归/循环问题。问题是打印基于整数的模式。
    例如:
    I/P:  4   O/P: 4321 - 4321 - 4321 - 4321
    I/P:  3   O/P: 321 - 321 - 321

    面试官检查了所有极端案例,并确保它适用于一组输入。
    然后他转向理论问题:

  6. OSI 模型中的不同层并解释了每一层的作用。 (您也应该了解 Presentation 和 Session 层)
  7. 描述当您在 WhatsApp 中向您的朋友发送消息时会发生什么(开放式问题)。你将不得不问面试官他想回答什么。例如,给定这个问题,可以回答有关 Whatsapp 的端到端加密或系统设计方面的问题,或者消息如何在 OSI 模型中从一层传递到另一层。就我而言,面试官想知道消息是如何封装在 OSI 层中的,从应用层到发送方的物理层,以及在到达接收方时如何读取消息。
  8. 现在他问我“你对操作系统中不同类型的内存了解多少?”。 (开放式问题)。再次,我必须确保我回答他真正希望听到的内容。在这种情况下,他想了解操作系统中的内存管理。
  9. 然后他向我询问了不同的 IPC 流程。询问有关共享内存、消息传递和管道的问题。消息传递和管道如何不同?
  10. 然后他问了几个关于死锁的问题,死锁发生的条件是什么。
  11. 然后他告诉我我有 10 分钟的时间来编写一个堆栈。除此之外,他没有告诉我任何事情。您将不得不提出问题,例如他需要什么方法。应该使用链表或数组等来实现吗?
    我最初使用带有 top()、push() 和 pop() 函数的数组进行编码。他通过检查他已经拥有的示例测试用例来验证它是否正常工作。
  12. 然后在上一个问题的基础上提出了一个后续问题。在上一个问题中,我将数组的大小设为静态,但面试官希望知道如何在不设置最大大小限制的情况下设计堆栈。他期待动态数组的实现。我向他解释了方法,他对此很满意。

这一轮持续了大约1小时10分钟。

提示:要非常清楚基础知识。那是最重要的。如果你在一个复杂的问题中犯了错误,那很好,但如果你错过了基础知识,那么它看起来就不好了。

第三轮(技术面试):这一轮是最放松的一轮,也是我做过的最好的面试之一。面试官是一个非常有魅力的人,非常放松/冷静。首先,他介绍了自己并解释了他在思科的工作。然后他问我感兴趣的领域和我做过的项目。有趣的是,他的兴趣领域和我的相匹配(我们在云计算和分布式系统方面有着共同的兴趣)。然后就下面提到的不同主题进行了多次讨论。这不是一个问答环节,因为大多数典型的面试应该是这样的。这更像是两个共享相同兴趣领域的人之间的聊天会话,因为我们都在讨论我们自己对云技术如何帮助我们的生活变得更好的看法/意见。

由于我在简历中的项目是基于云计算和分布式系统的,并且我正在接受云应用程序开发职位的面试,所以我希望我了解这些主题。这一轮非常具体到你正在面试的角色。我们就以下主题进行了深入讨论:

  1. 微服务与单体架构
  2. 一致的散列和负载平衡
  3. 读写仲裁
  4. 基础设施即代码(Ansible 和 Terraform)
  5. REST API
  6. 您是如何在云项目中设置基础架构的?
  7. 身份验证与授权
  8. 两因素身份验证
  9. 密码加盐
  10. CAP定理
  11. MapReduce 与 Spark

然后他问我为什么要加入这个行业,为什么选择思科?

这一轮持续了大约 40 - 45 分钟。

提示:对您感兴趣的领域充满热情,并始终对您感兴趣的领域的概念有实践经验。这对面试有很大帮助。有时,一些面试官确实期望一些实施细节。对简历进行彻底的修改,简历中使用的每一个技术词/流行词都应该修改。面试官可以问简历中提到的任何一点。

第 4 轮(HR 面试):这是一个非常短的轮次。 HR让我自我介绍,问我过去的工作经历。他问我为什么要参加大师赛以及背后的原因。他向我简要介绍了团队的工作以及如果我加入团队,我的角色是什么。然后他问我为什么对云技术感兴趣。然后我问他在思科的日常工作日感觉如何?在此之后,HR 轮结束。这一轮持续了10-15分钟。

提示:在传达你的想法时要真实、清晰。

判决:选择。