📜  诺基亚网络研发工程师面试经历|新生(校外)

📅  最后修改于: 2021-11-18 01:27:54             🧑  作者: Mango

诺基亚网络研发工程师 2020 年校外活动昏倒了学生。这个驱动器包括四轮

第一轮:AMCAT 在线测试轮

本轮包括一组来自主题的问题

  1. 英语(理解等)
  2. 定量能力
  3. 推理能力
  4. 编码(2 个只能用 C/C++ 编码的基本问题)

这个平台让我不得不仔细选择一个答案。一旦进入下一个问题(编码问题除外),我就无法返回到之前的问题。没有负面标记。

两天后,我被要求参加第二轮。

第二轮:工程师对 C/C++ 基础的技术轮

这是一个长达 1.5 小时的面试。面试官非常友好和礼貌。在相互进行了基本介绍后,她从我在简历中提到的 4 个项目列表中询问了一个特定项目。我所有的项目都是用Java或Python编码的。我只将 C++ 用于竞争性编码并告诉她。然后我被要求对我的 C/C++ 知识进行评分。然后她继续问以下问题:

  1. 什么是指针? “*”符号表示什么(与指针有关)?
  2. 如果打印指针变量,输出是什么?
  3. 变量的“声明”和“定义”有什么区别?
  4. C++中的引用变量是什么?
  5. 按值调用和按引用调用的区别。
  6. C 中的动态内存分配以及它是如何完成的。
  7. “malloc()”和“calloc()”函数什么区别?
  8. 详细解释C程序的内存布局。对各级角色的交叉质疑
  9. “stdio.h”和有什么区别?
  10. 什么是静态变量?静态变量和全局变量的区别。
  11. 打印时将显示未初始化的静态变量的什么值?
  12. 什么是班级? OOPS 的基础知识。
  13. 什么是构造函数?调用时返回什么?
  14. 什么是复制构造函数?
  15. 举个C++继承的例子(不得不写代码)
  16. C++ 中的钻石问题是什么?
  17. 什么是静态函数?我们如何在不创建对象的情况下调用函数?
  18. 什么是访问说明符?当未提及特定说明符时,C++ 中的默认访问说明符是什么?每个说明符的范围。
  19. 我得到了一个基本的 C++ 编程问题来编码。如果提供了链表(例如:10 -> 20 -> 30 -> 40 -> 50 -> 60)。从第一个索引为 0 开始,如果输入索引值为 n,则从给定列表的第 n 个索引开始创建新的链表,并以前一个索引结束。 (在上面的例子中,如果 n=4,那么新列表将是 50 -> 60 -> 10 -> 20 -> 30 -> 40)
  20. 你将如何读/写对象的私有变量? (使用 Getter 和 Setter 函数)

她问我是否愿意从Java切换到 C/C++,对此我说“是”。

第三轮:由团队的高级成员进行的管理轮。

这次采访大约持续了一个小时。他也非常友好。经过一轮基本的介绍之后,他问了我大学期间的竞争性编程之旅(在简历中提到),并问了我解决过的最具挑战性的问题。他从几个方面向我提出了问题,比如我考虑过的角落/独特的测试用例是什么等等。经过简短的讨论后,他问了我以下问题

  • 指针基础(再次)
  • 假设有执行动态存储器分配(DMA)中的函数和解除分配所分配的存储器的函数。有多个线程执行 DMA,并且有相应的线程会释放内存。在线程的并行实现是可能的非同步系统的情况下,甚至在它们对应的DMA线程被完全实现之前,内存释放线程就已经运行了。如何避免这一问题?
  • 编写一个伪代码,只在一次迭代中找到给定链表的中间元素。

第二个问题最多花费了大约 30 分钟,因为讨论了几个方面/概念。问我以下问题:

  1. 为什么是软件工程师?
  2. 10年后的自己在哪里?
  3. 在您看来,您职业生涯中遇到的困难情况是什么,您将如何处理?
  4. 假设给出了一个具有挑战性的项目,其中需要对该领域进行大量学习才能构建产品。你将如何处理这种情况?
  5. 有读硕士的计划吗?

然后他问我有没有什么问题。我询问了有关我的角色的更多详细信息,并进行了交叉提问。

第四轮(HR 轮):高级 HR 人员参加了这一轮。简单介绍了一下对方大概一分钟后,他问了我以下问题:

  1. 假设客户要求您制作一个工具来计算给定输入集(工资、利率、时间段等)的 EMI,我会问客户什么?
  2. 每次你试图在会议上发言时,你的同龄人/前辈总是打断你。你将如何处理这种情况?

然后他讨论了这个角色的挑战等。我被选中担任这个角色。

Tips : 尽量多刷C/C++基础知识。具有良好/愉快的沟通技巧,逐步解释,并对答案(尤其是技术问题)诚实。有些问题我不知道答案,面试官自己给了提示,我可以得到答案。

总的来说,这是一次流畅的体验。

祝你好运!