第 1 轮(面试前评估):(3-4 天虚拟)
- 选定的学生(可能基于我们的 CGPA)通过电子邮件发送了问题陈述。
- 我们有大约 3 天的时间来完成并使用任何选择的语言发送作业。
- 每个学生都有一个不同的简单中等水平的问题。我得到了一个名为“锦标赛安排程序”的问题,其中输入是将参加锦标赛的玩家数量,并且必须以循环赛格式输出锦标赛的日程安排。
- 建议:我建议学生最好编写一个模块化的解决方案,最好带有适当的注释,并以读者可以理解的有效方式呈现他们的代码,在这种情况下,给了足够的时间来提交解决方案。
- 根据提交的内容,我被选中进入下一轮。
第二轮(技术面试 1):(35-40 分钟)
- 说说你自己。
- 面试官问了最后一年的项目。他进一步询问了与该项目有关的问题。
- 面向对象编程的支柱。
- 多态及其类型(编译时和运行时)。
- 虚函数。
- 遗产。
- 进程和线程之间的区别。
- 并行性和并发性。
- 信号量,互斥量。
- 死锁及其必要条件。
- 死锁处理方法和预防。
提示:
- 如果可能的话,用现实生活中的例子解释概念。
第三轮(技术面试 2):(45-50 分钟)
- 面试官让我做自我介绍。
- 对简历中提到的项目进行讨论。
- 我在我的一个基于 android 的项目中使用了 firebase 作为数据库。从那里我们开始讨论 SQL 与 NoSQL 以及进一步的相关问题。
- 定义线程。
- 互斥,信号量。
- 有一个快速的 DBMS 回合,他问了以下问题:
主键、外键
归一化及其类型
TRUNCATE(DDL,快速,不能回滚)和DELETE(DML,可以回滚)的区别
联接及其类型
观看次数
酸特性
索引和索引类型
索引中使用的数据结构(B/B+ 树)。 - 他要求共享屏幕并提供一个输入表,并要求根据该表编写 4-5 个查询。它们基于使用 LIKE、HAVING、GROUP BY、ORDER BY 等。
- 然后讨论转向了一些基本的数据结构和算法问题。什么是 BST 等?
- 然后他让我为以下中级问题编写代码:
给定一个已排序的数组,就地删除重复项,使重复项最多出现两次并返回新长度。 - 最初,我解释了我的方法并开始编写解决方案。我首先使用了额外的空间 来解决问题。然后他要求使用 O(1) 额外内存来优化它。他给了一些提示,我在某种程度上满足了他。使用两个指针方法解决了它。
提示:-
- 你的简历应该彻底。
- 说出解的时间和空间复杂度。
- 大声谈论你的思考过程并清除与问题相关的所有疑问。
- 如果遇到问题,请寻找面试官的提示。
第 4 轮(技术面试 3):(30-35 分钟)
- 告诉我一些你的事吧。
- 他询问了操作系统。从进程和线程的定义开始。差异等。
- 面试官向我解释了生产者-消费者问题,并要求我为此编写伪代码。
- 我使用了基本的入队和出队操作、线程和锁定概念来避免竞争条件。
- 然后他要求使用链表编写队列的入队和出队操作。
- 然后他问我你对微服务、Docker、分布式系统、实时调试器、Linux 等有什么想法。他解释了一些我不知道的术语。
- 面试官问我有没有什么问题。
5名学生被选中,我就是其中之一!
保持自信和冷静。祝一切顺利!