第 1 轮(在线评估测试):平台为 HackerRank,启用了选项卡监考和网络摄像头监考。本轮由5个部分组成(有部分时间限制)
第 1 节:
- 2道中等水平的编码题(时间:30分钟)
- 允许 5 种语言:CPP、 Java、java8、 Python、python3
第 2 部分:(数学和定量):
- 标记:+5,-2
- 时间:25分钟
- 8 个多选题
- 概率、组合、二项式定理等问题。
第 3 节:(CS MCQ):
- 标记:+5,-2
- 时间:20分钟
- 7 多选题
- 基于数据结构、算法、操作系统、网络等主题。
第 4 节:
- 高级编程部分有 1 个编程问题。
- 时间:45分钟。
第 5 节:
- 2 道价值型题,每道题 10 分(简答题)
- 时间:15分钟
第5节的问题如下:
- 假设你和你的朋友正在做一个有截止日期的重要项目。然后突然你的朋友因为一些不可避免的原因中途离开了这个项目。在那种情况下你会怎么做?
- 举一个例子,你对一个项目充满热情和兴奋,并在其中取得了非凡的成果。
入围标准,GS 遵循 GPA+TEST 分数。 54 名学生入围下一轮。
第 2 轮技术面试(35 分钟):平台是用于视频通话的 Zoom 和用于编码的 HackerRank CodePair。
这一轮以正式的介绍开始,然后是一些与我在毕业期间作为安置室技术负责人所做的工作相关的问题。然后,他问我在解决问题和编码技能方面给自己打多少分,并说明我为什么这么认为。
然后,他要求为这个问题编写代码:
- 根据新的字母顺序对字符串数组进行排序。新的字母顺序以给定的字符“c”开头。
我使用冒泡排序编写了相同的代码,并根据新的字母顺序编写了一个比较函数。然后面试官让我解释排序算法的时间复杂度,以及其他一些与其他排序算法相关的问题,比如在哪些场景下更好等等……
我在比较函数和数组中使用了哈希概念,然后他让我在不使用任何额外空间的情况下编写代码,并让我解释时间和空间复杂度。
之后,他问我有没有什么问题要问。
这一轮进行得很顺利,我被选中进入下一轮。
第三轮技术面试(60分钟):这次面试官有我的简历。他首先问我上一轮面试的经历。
然后他让我自我介绍,并要求更多地介绍我的优势、语言偏好和技术技能。
然后在接下来的 20-25 分钟里,他问了与我提到的项目相关的问题。他特别让我详细解释一下我另一个队友做的那个项目的部分。他还问了一些问题,比如我从中学到了什么,这背后的动机是什么等等……
由于我在介绍中提到我对数据科学领域感兴趣,所以他问了一些与数据挖掘、数据预处理、机器学习算法、用于相同的库等相关的问题。
然后他问了我几个问题,比如:
- 你怎么能成为公司的资产?
- 你认为这个实习对你有什么帮助?
- 是什么让您认为自己是一名优秀的团队合作者并具有良好的协调能力?
然后他让我解决这个问题:
- 给定一个按顺时针方向旋转 k 个位置的排序数组,以最佳方式找到 k 的值。
(就我而言,当时对于面试官来说,HackerRank Codepair 不起作用。所以,他只是让我解释我的方法)
我最初给出了一个简单的 O(n) 解决方案。但是我立即意识到这不是最优解,然后我能够在一段时间后给出类似于二进制搜索的 O(logn) 解。之后,我解释了它的时间复杂度。
最后,他问我有没有什么问题。
这是我的面试回合的结束,我被选中了。 🙂(第四轮也为许多学生进行。)
后果:他们选择了 9 名学生进行实习。
一些可能有帮助的要点:
- 不要惊慌,保持冷静。诚实(在简历和面试中)。
- 好好听听公司的PPT。
- 在您解决问题时,请与面试官交谈。
- 数据结构,问题解决非常重要。好的 CGPA 帮助、个人项目、课外活动也会给你带来优势。
那是我的经历。祝你好运!