Accolite 面试体验(校内)
第一轮(笔试-2021年8月23日):第一轮在一个名为Edu Thry的平台上进行。
- 考试时间为 30 分钟,包括 30 道选择题。
- 这 30 个 MCQ 涵盖了几乎所有与 CS 相关的主题以及能力问题。
- 不过,大多数问题都是关于 DSA 的。
- 本轮过后,约有 152 名学生入围。
第 2 轮(编码轮 – 2021 年 8 月 23 日):有一个编码问题,我们有大约 60 分钟的时间来解决它。它是在 Accolite 的编码平台 Codelyzer 上进行的。
- 这是编码问题:https://www.geeksforgeeks.org/count-minimum-steps-get-given-desired-array/
- 我们也应该编写自己的单元测试用例。然而,这不是强制性的。
- 47名学生入围面试。
技术第一轮(持续时间:1 小时 15 分钟 - 2021 年 8 月 24 日):我的面试安排在上午 9:00。面试官自我介绍。然后,他让我自我介绍。后来,他开始了编码回合。他和我分享了一个谷歌果酱板并解释了这个问题。他总共问了我3个问题。
- 二叉树顶视图:https://www.geeksforgeeks.org/print-nodes-top-view-binary-tree/。我解释了我的方法,然后他让我在记事本中编码。在那之后,他浏览了我的代码,他似乎对它很满意。
- 使用下一个和随机指针克隆一个链表:https://www.geeksforgeeks.org/a-linked-list-with-next-and-arbit-pointer/
- 我解释了如何通过在白板上绘制和显示所有内容来修改节点之间的链接的方法。首先,我说我将修改下一个指针,然后是随机指针,我将单独分离列表。他似乎对这种方法非常满意,并要求我对其进行编码。我编写了整个代码并试运行,以便面试官清楚地理解我的方法。我还在我的代码中写了注释并给出了有意义的变量名。
- 给定一个数组 arr,找到最大 ji 使得 arr[j]>arr[i]:https://www.geeksforgeeks.org/given-an-array-arr-find-the-maximum-ji-such-that -arrj-阿里/
- 这是我以前从未解决过的问题。我觉得可以使用两个指针技术来解决这个问题。我问面试官我的想法是否正确。他说是的,然后我们就方法进行了很多讨论。最后,我终于想出了解决方案,但他没有让我编码,因为时间已经到了。他问我有没有什么问题要问他。我向他询问了他在 Accolite 的经历和各种学习机会。
技术第二轮(时长:1 小时 - 2021 年 8 月 24 日):第一轮结束后,在接下来的 30 分钟内,我接到电话说我被选中参加第二轮面试。
- 一开始,面试官要我介绍一下自己。然后,他让我解释一下我的项目。我谈到了我的全栈 Web 开发项目,并解释了所有功能。我还谈到了该项目的技术栈。
- 他问我在项目中使用了哪些 Reactjs 概念。我谈到了 reactjs 中的类和函数组件,reactjs 中的 Hooks,axios,我还强调了我选择 reactjs 的主要原因。然后,他问我如何确保项目中数据的安全性。
- 他问我如何验证和区分各种用户(基本上他是在谈论基于角色的访问)。我告诉他,根据登录的人,页面将显示在屏幕上。我还告诉他,我在 javascript 中使用了本地存储的概念来做到这一点。我说这是我保留的那种检查,以便只有正确权限的用户才能访问该网站。我告诉他我只实施了登录检查,我向他保证我稍后也会在我的项目中尝试实施基于角色的访问。接下来的几个问题是关于如何在我的网站中保护敏感信息的安全。我告诉他使用 https 是安全的。他问我是否知道 SSL。我告诉他我不知道。然后,我告诉他我在项目中使用的触发器。
- 后来,他开始专注于我的 Web 应用程序的后端部分。他让我写2个查询。一个是自然连接,另一个查询要求我使用 GROUP BY 子句。这两个都是特定于我的项目的。他还问我如何在我的项目中实现聊天机器人。我告诉他我使用 Google 的 Dialog flow 来开发它。然后,他问我什么是关系数据库,关系数据库有哪些重要的概念。他让我解释规范化及其所有形式。他让我详细解释多对多关系以及如何在数据库中维护参照完整性。他还询问数据库本身是否可以找出并维护参照完整性,或者我们是否必须明确地这样做。我告诉他我们需要明确地写“On delete cascade”或“On update cascade”。如果我们不在查询中写这个,那么数据库会抛出错误。他似乎对我的回答很满意。
- 然后,他问我是否知道通过主键访问数据库中的速度非常快。他问我是否知道原因。我告诉他在数据库中建立索引。我还告诉他,由于主键是排序的并且是唯一的,我可以通过二分搜索检索或搜索任何记录,即在 O(logN) 时间内。然后,他说,有时,我们可能不知道主键。在这种情况下,我们需要使用其他一些甚至重复的键来搜索记录。然后,我解释了聚集索引和二级索引。然后他问我索引的权衡。我告诉他这会导致使用额外的空间,因为现在,我们也需要将索引表与数据库表一起存储。他说空间不是问题,并问我插入和删除等性能。我立即告诉他,插入、删除和更新需要更多时间,因为对于数据库中的每一次修改,索引也必须更新。
- 然后,他问我知道哪些编程语言。我告诉他 C++ 和Python。他问我这两种语言的主要区别是什么。他还让我解释 C++ 中的友元函数和虚函数。他问我关于多重继承以及它们如何在两种语言中实现的问题。
- 经过这一严格的一轮,他问我是否有任何问题要问他。我向他询问了 Accolite 的各种学习机会、认证和工作与生活平衡。
人力资源轮次(持续时间 - 15 分钟:2021 年 8 月 24 日):
- 自我介绍。
- 你的优势和弱势是什么?
- 你以前在团队中工作过吗?
- 您在团队中工作时遇到过挑战吗?你是如何解决它们的?
- 如果你是团队负责人,如果团队成员之间缺乏协调,你将如何处理这种情况?
- 如果你被要求搬迁,你将如何适应那里的文化?
- 你有任何问题问我吗?
判决:选定
总的来说,这是一次非常棒的体验。我觉得我有一个绝佳的机会来证明自己,因为我在各个方面都受到了考验。