第 1 轮(在线测试):由 4 个部分组成
- 能力倾向: 10 题 15 分钟
- 技术部分: 19道题(包括数据结构、操作系统、网络、数据库等)
- 编码部分: 1 题 30 分钟
找到具有给定位数 N 的第二个最小值并求和 S,使得 N 的位数之和应等于给定的总和。类似于 https://www.geeksforgeeks.org/find-smallest-number-with-given-number-of-digits-and-digit-sum/) - 预测输出: 2 部分——每部分有 5 个问题,8 分钟
在本节中,我们可以选择任意两种语言 C、C++、 Java、 Python。对于每个问题,我们给了 8 分钟的时间来解决 5 个 MCQ 问题。
第 2 轮(技术面试 1 – 60 分钟):这是技术第 1 轮。整个过程是在 Zoom 会议和代码对上虚拟进行的。首先,他问我是否适合用Python编写代码,然后问我在Python可用的一些内置数据结构,并要求我用示例编写他们的语法。然后,他让我解决在线测试中提出的编码问题,因为我遇到了超时错误。之后,他又问了我一个编码问题,比如给定8*8的棋盘,给定棋子在棋盘上的位置,我们必须返回下一步棋子所有可能的位置。然后,他动了一些主观的讨论。首先关于网络,你在网络中学到了什么?什么是ICMP协议? ping 是如何工作的,解释整个流程?然后,转移到操作系统。什么是调度?不同的调度算法,基本思想、缺点和优点?什么是死锁?发生死锁的必要条件是什么?不同的预防方法? (我给他详细解释了预防、检测&恢复、回避、无知)。关于资源分配给进程的一些令人困惑的问题,应该使用哪种机制来避免死锁。他试图迷惑我。然后,他问你更喜欢哪个操作系统?在 Windows 上使用 Ubuntu 的一些优势? Ubuntu 中的各种命令?用例子解释grep?再次网络,Ubuntu 中网络配置的一些示例?最后,他问我有没有什么问题。
第三轮(技术面试2 – 60分钟):这是技术第二轮。但现在我必须在Collabedit上编写代码,意味着没有编译和运行代码。问我自我介绍。正如我所提到的,操作系统是我最喜欢的主题。她从操作系统问题开始。什么是 sleep() 和 wait() 系统调用?如何实现睡眠()?首先,我讨论了逻辑以及我该怎么做。然后她让我编码。当我解释我的逻辑时,她问了我各种交叉问题,比如为什么这个数据结构,调度将如何发生?计数器将如何处理?那么,系统时钟是如何工作的呢?它是如何实施的?我必须为它写一个伪代码。然后,她问我,编码问题——给定列表,我必须找到三元组的最大乘积(https://www.geeksforgeeks.org/find-maximum-product-of-a-triplet-in-array/) .总是问一些问题,然后先把问题弄清楚。我先给了她一个蛮力解决方案,并用时间复杂度详细解释。然后她让我优化,然后我给出了一个使用一些额外空间的解决方案。她要求进一步优化。最后,我能够在 O(1) 空间中做到这一点。然后写一个可行的代码。然后,她对网络进行了一些讨论。什么是网络?两台电脑如何通信?关于 TCP/IP 的一些问题。解释层?什么是TCP?什么是IP?什么是 IPv4?什么是 IPv6?什么是无类寻址和有类寻址?什么是子网划分和超网划分,为什么使用它们?最后,你有什么问题吗?
第 4 轮(管理轮 – 45 分钟):开始于 介绍自己。你今天过得怎么样?还有之前的采访?然后他让我解释我的项目。各种各样的问题,比如,你为什么选择这个项目?为什么是这个技术栈?有哪些挑战?你为这个项目花了多长时间?它有哪些潜在的改进?我们已经讨论了我在简历中提到的 3 个项目。然后,他问了我之前的实习、经历、项目、挑战等等。他让我优先考虑操作系统、网络、DBMS 等主题。一些关于网络、操作系统的问题。然后他让我解释项目的整个生命周期(软件开发生命周期)。我最喜欢哪些部分?有些问题是我在 3 年后在哪里看到自己?如果我在一个我不喜欢或不感兴趣的域中分配了一个项目怎么办?你认为人们应该如何认识你?最后,他问我有没有什么问题。
第 4 轮(HR 轮 – 10 分钟):
他让我做自我介绍。非常普遍的问题,比如你的父母是做什么的?你从哪来?在操作系统、DBMS、网络等学科中给自己打分?在哪些方面,你认为你需要改进,你将如何做到这一点?那么最后你有什么问题吗。
终于,我拿到了实习offer。希望这会帮助你🙂