Citrix 研发工程师面试体验(校内)
GeeksforGeeks 的面试经历对我来说是一个福音,同时我也在为我的校园实习做准备。非常感谢,现在我被安排在班加罗尔的 Citrix R&D。我想为什么不帮助别人用我的面试经验。所以在这里,我为其他使用 GeeksforGeeks 进行准备的有抱负的学生记下了我的面试经历。
Citrix R&D, Bangalore 于 8 月 28日至 29日访问了我们的园区。整个选拔过程包括在线测试和 3 轮 F2F(虚拟)面试。该公司使该流程符合 CS、IT、CC、EC、EE 分支机构的条件。大约 350 人申请了在线测试。
第 1 轮(在线测试):在线测试在 Hackerrank 上进行。总时长为2小时。有 2 个编码问题
编码问题:
- 给定一个包含移动成本的长度为 n 的数组。起始位置是索引 0。您可以采取一步或以 3 结尾的素数步。任务是计算最大得分(成本加法)以达到最后 (n-1)个索引。
- 给定一个正整数数组(可能包含重复),任务是找到乘积等于给定数 t 的三元组的数量。
40 道 MCQ: MCQ 来自流行的 CS 学科,如数据库系统、计算机网络、操作系统、数字电子学的理论概念、基本能力和 C 编程输出。
29人入围面试。
第 2 轮(技术):面试官在 Citrix 有 10 年的工作经验。面试是在codepair(Hackerrank)上进行的。总时长为 45-50 分钟。这些问题涉及操作系统概念,如抖动、多线程和进程调度。然后提出了一个需要通过 6 个测试用例的编程问题。
- 它们是 3 个输入,a-AP 的第一个元素,d-AP 的共同差,n-AP 系列的第 n个质数。我被要求返回算术级数的第 n个素数。如果 a 和 d 的值不是互质的,则必须返回 0。相当简单,但我被要求进一步降低代码的时间复杂度。
然后问了一些与我的项目相关的基于简历的问题。在我编码时,面试官询问了我的兴趣和我所知道的技术。
20人入围第二轮。
第 2 轮(技术):这一轮更多地面向 CS 科目,在代码对上进行。本轮比赛总时长为2小时。提出的问题是:
- 通过现实生活中的例子来解释死锁
- 解释在这种情况下如何防止死锁
- 解释如何避免死锁
- 过程中上下文切换的概念是什么?
- 什么是系统调用?
- fork() 和 exec() 调用有何不同?
- 客户端和服务器进程如何在分布式系统中通信?
- 在分布式系统中拥有父进程和子进程的重要性是什么?
- 上下文切换期间的进程存储在哪里?
- 什么是虚拟内存?它的大小是多少?
- 解释分页概念。
- 有哪些不同的缺页算法?
- 命名 OSI 模型的所有层。
- 表示层的工作是什么?
- 网络中有哪些不同的编码技术?
- 什么是路由器?它们在哪一层使用?
- 路由器、网桥和交换机有何不同?
- DBS 中有哪些不同类型的联接?
- 什么是标准化?
- 解释归一化的所有条件。
他问我关于重载的概念。我被要求为给定函数以实现重载。类型转换如何工作?什么是压倒一切的?编写一些示例并进行解释。
讨论结束后,面试官问了我一个谜题,100 Doors Puzzle,这个讨论持续了大约 30 分钟。然后是一些问题,比如我的高等教育计划以及我在公司中适合担任什么角色。
12人入围第三轮。
第 3 轮(管理):这是公司的网络工程师在代码对上进行的最后一轮。回合的总时长为 30 分钟。
- 我被要求解释我最近的项目。为什么我选择flutter而不是Java/Kotlin 来开发应用程序?该应用程序的目标受众是什么?应用程序可以缩放吗?
- 然后他问我日常生活中使用的所有应用程序都有哪些。他让我指出那些应用程序中的一些缺陷,比如 Whatsapp、Facebook 等。
- 然后我被要求用 C++、 Python给自己打分。他问我除了课程之外我知道的所有技术。
- 然后他让我用栈来实现一个队列数据结构。有人询问该方法,他指出时间复杂度很高。因此,我被要求对其进行优化,最后对其进行编码。然后他问我前几轮的经验。
结果: 4名学生被选中获得全职员工+实习offer,3名学生被选中获得实习offer。我获得了 FTE+实习。