Accolite 2022 Batch 数字面试体验
第 1 轮(基于 MCQ 的轮):
- 有 30 个问题,提供的时间为 30 分钟。
- 涵盖的主题是基本数据结构和算法、DBMS、OS、OOPS、CN 和一般能力。
- 如果您一直在为上述主题的实习做准备,那么这一轮很容易通过。
- 在大约 200 名学生中,有 67 名能够通过这一轮。
第 2 轮(编码轮):
- 有 1 个问题应该在 60 分钟内解决。
- 在测试之前,我们被要求填写一份表格,说明我们将用于编写代码的编程语言。
- 该问题基于数组,它与“计算获得给定所需数组的最小步数”非常相似:https://www.geeksforgeeks.org/count-minimum-steps-get-given-desired-array/
- 这一轮的主要问题是学生必须使用谷歌的库“gtest.h”编写自己的测试用例。如果您从未见过该库或不知道单元测试是如何工作的,这可能真的很吓人。因此,在进入回合之前,先看看这个库。
- 从 67 人中选出了 27 人。我是其中之一。
技术面试-1:
- 这是一个预定的一小时编码面试。面试官很准时,首先问了我在一个主要规模上完成的任何项目。
- 然后他浏览了一些简历。项目和团队开发之类的东西。
- 然后他从编码问题开始,我被告知打开一个记事本来回答以下问题。他问的第一个问题是首先对具有最高频率的元素的数组进行排序。我用一个优先级队列和哈希映射来做到这一点。后来他让我解释优先队列是如何工作的。
- 用两种不同的方法问一棵树的直径,我都给了他,但我一开始就搞砸了。他真的很有帮助,并指导我朝着正确的方向前进。
- 问了 BFS 和 DFS 的区别。
- 使用各种优化技术的落蛋问题。
- 然后他问我关于我的开源之旅,以及我过去贡献的一些存储库。
- 一些基本的 git 命令,如挑选、拉取请求。
- Java和 C++ 的区别。为什么 C++ 不是 100% 的 OOP 支持?
- Typescript 和 Javascript 的区别。
- 一些基本的 DBMS 查询、第二高的薪水以及行号在 SQL 中的使用
10 分钟后,我接到 HR 的电话,通知我已被选中参加下一轮。
技术面试-2:
- 这又是一个一小时的技术面试,但难度增加了很多。
- 面试官以面试官的一般性问候开始,然后他接着让我自我介绍。
- 他直接转向DSA问题,链表和数组的区别。
- 使用两个链表将两个数字相加,因为他要求我提供可能的最大空间效率。由于一个 int 变量可以容纳 32 位,而我的解决方案仅使用 4 位。我给出了使用 char 的想法,因为它只有 16 位,但是,他不满意,我后来给了他一个使用仅使用 4 位的 bitset 组合生成类的想法。他同意这行得通,但他问我为什么不在列表中存储多于一位?我从来没有以这种方式想过这个问题,然后继续给他解决方案。
- 然后他让我打开一个代码编辑器,并从编码问题开始。
- 第一个问题是使用数组实现队列,我能够得到正确的输出,但是我的解决方案在空间复杂性方面做得不好,因为我没有旋转数组,而是继续增加索引,他向我暗示这多次,但我无法理解。
- 第二个问题是一个基于字符串的问题,他让我用空格分隔单词。我给出了通用的解决方案,忘记了前导和尾随空格,这导致面试官对我有点激动,并告诉我不要每次都期望一个完美的数据集。然后我更正了他满意的代码,我们结束了采访。
- 他问我有没有什么问题,我问他如何正确解决队列问题,他后来解释得很清楚,我问他们现在公司正在使用什么技术堆栈。在回答他结束采访后,我为无法回答而道歉并离开了会议。
我等了一个小时没有接到电话,所以我以为我没能进入下一轮,但过了一段时间我接到了电话,我的面试安排在接下来的 15 分钟。
人力资源面试:
- 这是整个过程的最后一次采访。首先是对我自己的一般性介绍。
- 我为什么想成为一名工程师?
- 过去 4 年我的大学的利弊。
- 我未来的目标。
- 我最近的成功和挫折。
- 后来他向我简要介绍了 Accolite 近年来的发展和工作情况,我会学到很多东西。
- 最后,他问我有什么问题要问他。
判决:全职+实习生入选
第二天早上公布了入选学生名单,我有幸被列入其中。
我的一些提示:
- 对所有数据结构有深入的了解
- 不要掉以轻心的理论话题
- 从去年的问题准备
- 不管面试有多糟糕,都不要让你的笑容消失
- 最后,如果你没有被选中,不要灰心,相信这个过程并继续前进。