SDE 的 Accolite 数字面试体验(校园内)
Accolite 在 8 月的最后一周为我们的校园进行了虚拟招聘流程。招聘过程包括 5 轮不同的轮次,其中前两次筛选测试在 Accolite 自己的平台上进行。校内招聘过程与他们每年进行的 Accolite 招聘挑战(校外)非常相似。
第 1 轮: 30 分钟内在线 30 次 MCQ
- 这一轮特别是 30 分钟,在 Accolite 自己的平台 Eduthrill 上进行。这些问题是简单中等难度的。这些问题来自 OS/CN/DBMS/DSA 等 CS 核心基础知识,以及一两个来自 aptitude 的问题。大约 150 名学生通过了第 1 轮比赛,并入围了编码轮次。
第 2 轮: 1 小时内在线编码 1 道题
这一轮有一个编码问题,预计将在一个小时内解决。它是在 Accolite 自己的编码平台 Codelyzer 上进行的。给出的问题陈述如下:
- 杰克和吉尔正穿过丛林到城里。他们遇到了一个怪物,他告诉他们只有在为他解决难题后才能逃脱。他们没有选择,所以他们同意了。
- 他将问题描述为:我有n 个桶,最初每个桶中有0个水果。我会给你 n 个数字,表示第 n 个位置需要的水果但是你需要保持两个简单的规则:
- 您可以在每个桶中将水果计数增加 1,即增量操作
- 或者您可以将每个桶中的水果加倍,即加倍操作。
Example:
Input :- [2, 3]
Output :- 4
Explanation :- The array can be reduced by the following operations and it is
considered to the minimal, the operations are as follows
Increment fruit in 1st bucket – [1, 0]
Increment fruit in 2nd bucket – [1, 1]
Double the entire fruits – [2, 2]
Increment the fruit in 2nd bucket – [2, 3]
The output is the no of operations required i.e. 4
- https://www.geeksforgeeks.org/count-minimum-steps-get-given-desired-array/
- 编码部分没问题,但这里的问题是平台没有为我们提供任何测试用例,我们需要在测试用例文件夹中编写自己的测试用例。编写单元测试用例时的任何混淆都会让您浪费大量时间。所以在这个过程中你必须一丝不苟。
- 我对编码回合的建议是更好地访问在之前的招聘挑战中提出的问题,因为很有可能会遇到之前被问到的编码问题。
近 50 名学生通过了第二轮比赛,并入围了技术面试。
第三轮:在线技术面试 1
时间:40分钟
Accolite 的一大优点是面试官非常友好。她通过自我介绍开始了采访。她简要介绍了面试过程。
- 她在面试开始时提出了一些关于操作系统和 DBMS 的理论问题。
- 什么是虚拟内存,需要VM?
- 操作系统类型
- 区分过程和程序
- 同步技术
- 分页和分段
- 规范化和非规范化
- SQL 和 NoSQL 之间的差异(正如我在简历中提到的 MongoDB)。
- 这些是她提出的一些理论问题,讨论持续了大约 20 分钟。接下来,她让我分享我的屏幕并给了我一个编码问题。
- 给定一个未排序的数组和一个目标值,您需要找到具有给定目标和的子数组
- 这是一个基本的数组问题,最初我在这里给出了生成所有子数组并检查总和等于目标总和的子数组的蛮力技术
- 然后我告诉她我可以通过滑动窗口技术进一步优化逻辑,并通过一个示例测试用例向她解释我的逻辑。然后她让我写同样的代码。
- 然后她问我告诉我这段代码哪里出错了。我告诉她滑动窗口不能处理负面元素的事实。然后我给出了一个使用 Hashmap 的逻辑。
- https://www.geeksforgeeks.org/find-subarray-with-given-sum/
- 然后她问了我最标准最流行的问题
- 反转一个链表
- https://www.geeksforgeeks.org/reverse-a-linked-list/
- 然后采访以讨论我的方法的时间和空间复杂性结束。
第 4 轮:在线技术面试 2
时间:1小时15分钟
- 与其他回合相比,这是最长且具有挑战性的回合。面试官首先简要介绍了自己,并要求我做同样的事情。然后他让我提供一些关于我做过的项目的见解,然后他开始问我关于我的全栈项目。
- 这是一次深入的讨论,他完全专注于技术堆栈,我是如何学习它们的,以及我使用的技术堆栈的一些替代方案、优点和缺点。然后他让我解释项目的工作流程,然后他问我关于数据库模式和所有的细节。他问了我几个网络概念,因为我的项目涉及套接字编程的使用。
- 我的机器学习项目也继续进行了同样的深入讨论。讨论持续了大约 40 分钟,之后我被要求编写一些基于连接的 SQL 查询。他问了我一些类型的问题。他问了一些关于 RDBMS 和 NoSQL 数据库中事务管理和并发控制的基本问题,还问了一些关于规范化的基本问题。
- 在所有技术讨论之后,他让我分享我的屏幕并为以下问题陈述编写代码。
- 给定一个由偶数和奇数组成的数组,您需要将偶数和奇数分开。
- 最初,我给了他蛮力方法,但他不满意,我花了一些时间告诉他两点方法,他很满意,我被要求编写相同的代码。
- 然后他给了我一个基于场景的问题,问题如下 有一个有线电视运算符,各个城市的客户很少,他的任务是连接所有城市(他有客户)与有线电视台在这样的一种使电缆线产生的成本最小的方式。
- 我花了一些时间给了他最小生成树(MST)的想法。可以将图形转换为总体成本最低的边网络。我被要求编写代码(只是函数)。他对我的做法很满意。然后他问我有没有什么问题,面试就结束了。
第 5 轮:在线 HR 轮
时间:35分钟
- 采访从我的自我介绍开始。面试包括非常标准的基于模板的人力资源问题。
- 她问我对 Accolite 了解多少。最后,她向我提供了有关提供的 CTC 的详细信息以及对所提供实习的一些见解。
- 我的建议是在本轮之前对公司做一些很好的研究,并尝试自信地沟通。
判决:选定