选拔过程分为两部分——在线测试和两轮面试。
在线测试:这是一种 MCQ 类型的测试,其问题基于定量能力,如排列和组合、C++ 和Java 的OOP 概念、数据结构(重点是树和堆栈)、算法和沟通技巧。它还存在与通过分析逻辑结构(类似于伪代码)来调试和猜测输出相关的问题。
第一轮:在这一轮中,我首先被要求简要介绍自己。然后,我被要求编写代码来生成斐波那契数列并合并两个已排序的链表。然后我被问到我的成就和基于情况的问题,比如如果你和你的团队经理发生冲突,你会怎么做等。
第二轮:在这一轮中,我被问到为什么选择我的工程学院和分支。然后,我被问到一个关于二分搜索的问题。然后,我被问到我最喜欢的项目(面临的问题,我如何解决这些问题,项目的基本工作流程等)、我的爱好和我的团队合作能力。面试官对每个方面都进行了深入研究,例如:当我说我的爱好是读书时,他问我最近读过的书,我从它们中学到了什么以及我如何将这些概念/哲学应用于实际-生活场景。面试官很友好,所以我们的关系很好。
面试进行得很顺利,我和其他四位同学一起被选中。
提示:
- 在线回合(不限于特定公司)最重要的主题是动态规划、贪婪范式、图算法、字符串算法、二进制搜索、散列和数据结构,如堆栈、队列、堆、不相交集。除此之外,面试轮次还包括 BST 和基于链表的问题。如果你没有时间,不要去学习段树、BIT 等高级主题。除了练习,还可以参加编码竞赛,让你在时间有限的情况下提高你的编码技能。
- 另外,你需要对你最喜欢的编程语言有一个很好的理解,比如它使用的OOP概念、异常处理、内存管理等。为你在简历中提到的项目做好准备。
- 保持冷静和自信。面试前不要过度准备,因为这可能会导致疲劳。告诉面试官你的思考过程,只有当面试官对你的方法感到满意时才开始编码。如果你在面试中遇到困难,寻找面试官提供的线索,或者你可以向面试官寻求提示。面试官通常很酷,乐于助人。
我使用 GeeksforGeeks 来学习和实践所有概念。