📜  Platform9系统面试经验

📅  最后修改于: 2021-11-18 01:39:14             🧑  作者: Mango

第 1 轮(面试前评估):(3-4 天虚拟)

  • 选定的学生(可能基于我们的 CGPA)通过电子邮件发送了问题陈述。
  • 我们有大约 3 天的时间来完成并使用任何选择的语言发送作业。
  • 每个学生都有一个不同的简单中等水平的问题。我得到了一个名为“锦标赛安排程序”的问题,其中输入是将参加锦标赛的玩家数量,并且必须以循环赛格式输出锦标赛的日程安排。
  • 建议:我建议学生最好编写一个模块化的解决方案,最好带有适当的注释,并以读者可以理解的有效方式呈现他们的代码,在这种情况下,给了足够的时间来提交解决方案。
  • 根据提交的内容,我被选中进入下一轮。

第二轮(技术面试 1):(35-40 分钟)

  1. 说说你自己。
  2. 面试官问了最后一年的项目。他进一步询问了与该项目有关的问题。
  3. 面向对象编程的支柱。
  4. 多态及其类型(编译时和运行时)。
  5. 虚函数。
  6. 遗产。
  7. 进程和线程之间的区别。
  8. 并行性和并发性。
  9. 信号量,互斥量。
  10. 死锁及其必要条件。
  11. 死锁处理方法和预防。

提示:

  • 如果可能的话,用现实生活中的例子解释概念。

第三轮(技术面试 2):(45-50 分钟)

  1. 面试官让我做自我介绍。
  2. 对简历中提到的项目进行讨论。
  3. 我在我的一个基于 android 的项目中使用了 firebase 作为数据库。从那里我们开始讨论 SQL 与 NoSQL 以及进一步的相关问题。
  4. 定义线程。
  5. 互斥,信号量。
  6. 有一个快速的 DBMS 回合,他问了以下问题:
    主键、外键
    归一化及其类型
    TRUNCATE(DDL,快速,不能回滚)和DELETE(DML,可以回滚)的区别
    联接及其类型
    观看次数
    酸特性
    索引和索引类型
    索引中使用的数据结构(B/B+ 树)。
  7. 他要求共享屏幕并提供一个输入表,并要求根据该表编写 4-5 个查询。它们基于使用 LIKE、HAVING、GROUP BY、ORDER BY 等。
  8. 然后讨论转向了一些基本的数据结构和算法问题。什么是 BST 等?
  9. 然后他让我为以下中级问题编写代码:
    给定一个已排序的数组,就地删除重复项,使重复项最多出现两次并返回新长度。
  10. 最初,我解释了我的方法并开始编写解决方案。我首先使用了额外的空间 来解决问题。然后他要求使用 O(1) 额外内存来优化它。他给了一些提示,我在某种程度上满足了他。使用两个指针方法解决了它。

提示:-

  • 你的简历应该彻底。
  • 说出解的时间和空间复杂度。
  • 大声谈论你的思考过程并清除与问题相关的所有疑问。
  • 如果遇到问题,请寻找面试官的提示。

第 4 轮(技术面试 3):(30-35 分钟)

  1. 告诉我一些你的事吧。
  2. 他询问了操作系统。从进程和线程的定义开始。差异等。
  3. 面试官向我解释了生产者-消费者问题,并要求我为此编写伪代码。
  4. 我使用了基本的入队和出队操作、线程和锁定概念来避免竞争条件。
  5. 然后他要求使用链表编写队列的入队和出队操作。
  6. 然后他问我你对微服务、Docker、分布式系统、实时调试器、Linux 等有什么想法。他解释了一些我不知道的术语。
  7. 面试官问我有没有什么问题。

5名学生被选中,我就是其中之一!

保持自信和冷静。祝一切顺利!