📌  相关文章
📜  Infinera 面试体验 |Set 2 (适用于 Layer 3 Routing/Singnaling 开发者)

📅  最后修改于: 2022-05-13 01:58:12.392000             🧑  作者: Mango

Infinera 面试体验 |Set 2 (适用于 Layer 3 Routing/Singnaling 开发者)

我在 Infinera 面试了第 3 层路由/信令开发人员的职位。

整个过程:

首先是书面回合。然后我们进行了三轮技术、一轮管理和一轮人力资源。面试问题很好,面试官很友好,很容易相处。

背景:我曾使用过计时器和 IPv6。因此,大多数技术问题都与我的简历有关。几乎所有的问题都非常基本且易于回答。除了简历,他们只期望多线程、套接字编程和 C++ 知识。

第一轮:书面:

笔试环节有30道题。这些问题分为简单和困难的部分。简单部分每题一分。困难的第 3 部分标记为一个问题。没有负面标记。

我们有一些谜题

1. 03.15 时分针和时针的夹角是多少?

2. 1000 瓶中的毒药,在一小时内找到来自 http://geeksquiz.com/puzzle-19-poison-and-rat/ 的问题

3.你必须测量从1公斤到40公斤。您应该使用的最少重量是多少?

4. 一个人在 12 小时内从早上 6 点到下午 6 点爬上山,变速和在不同的点休息。他休息了一夜,然后再次开始以不同的速度下降并在不同的点休息。他花了 12 个小时,从第二天早上 6 点到下午 6 点才下山。他在上坡和下坡旅行期间在同一时间同一地点的概率是多少?

然后我们遇到了与向量、复制构造函数、异常处理和 C++ 中的重载相关的问题。大多数技术问题是

“查找以下代码片段的输出”格式。我记得很少有:

5. (0x0A0A0A0A >> 1) 的输出是什么

6.死子进程ID由哪个socket函数返回?

7.

int i,j,k,c;
   for(i = 1; i < 31; i++)
      for(j = 1; j < 31; j++)
          for(k = 1; k < 31; k++)
                if((i+j+k) % 3 ==0)
                     c++;
    printf("%d",c);

8.

int i = 7;
   int *p = &i;
   if (fork())
   {  *p = *p + 10; printf("%d", i); }
   else {wait(); printf("%d" , i); }

然后是一些与网络相关的问题。他们都很容易回答。所以,我只记得这两个。

9. IPv4 中组播地址的类别是什么?

10.ARP是做什么的?

然后第一轮技术从告诉我关于你的自我开始。这是一次白板讨论。然后是以下问题:

1. 什么是安全邻居发现?这个怎么运作?

2. 详细解释来自外部的数据包如何进行 ARP 并到达相关主机。

3. DHCP 是如何工作的?

4.什么是原始套接字?

5. IPv6 中的各种作用域是什么,并说明它们在哪里使用。

6、编写TCP socket客户端服务器架构并讲解。 (我画的)

7.什么是小端和大端。给出小端和大端机器的例子。为什么所有人都同意将大端作为网络字节顺序?

然后我被要求编写一个程序来查找机器的字节序。我讲了逻辑。但是面试官给了我一张纸和一支笔,让我写一个完整的程序,如果输入系统就可以工作。

然后他要求程序在不使用 sizeof()运算符的情况下查找结构的大小。再次不得不为它编写完整的程序。我把它写成一个函数,面试官说他本来希望它写成一个宏,但接受了我的回答。

然后另一个程序使用 void 指针实现我自己的版本 memcopy。我通过直接访问 void 指针犯了错误。面试官很友善地指出我的错误来指导我。

然后是第二轮技术回合。再次从我的项目经验开始。面试官说话很温和,每当我试图提出一些东西时都会提示。而且,他给了足够的时间思考和回答。

8. C 代码中如何实现定时器?

9. 谁管理计时器?内核还是用户?

10. 一个进程最多可以拥有多少个定时器?

11.什么是PIM稀疏模式?详细解释。

12. 集合点有什么用?它的函数是什么?

13. 什么是互斥量和信号量?它们之间有什么区别?

14.什么是多线程?

15. 你写过脚本工具吗?

16. 什么是树?为什么要使用这种数据结构?应用程序。

17. 比较树和链表。

然后第三轮技术很短,就像是快速射击轮来判断你的技术实力。

18.什么是路由?举一些路由协议的例子。

19. 什么是 STL?给我一些它的应用。

20.什么是定时器?你如何实施它?

21. 如何在内核中测量一个时钟滴答?

22. IPv4和IPv6有什么区别?

23. 给我一些原始套接字的应用。

24. DHCP6 中的新内容是 DHCP 中没有的。

25. TCP 和 UDP 的区别。

26.什么是动态铸造?

27. 什么时候从栈和堆中分配内存?

28. Valgrind 如何查找内存泄漏?说说 Valgrind 的内部工作。

最后他问:“你是一个勤奋的人吗?”我对这个问题感到非常震惊,因为我以前没有听说过。

然后终于管理轮。这也像是技术回合的延伸。

29. IPv6如何解析地址?它是在内核空间还是用户空间解决的?

30.什么是路由表?你将使用什么数据结构?

31. 告诉我你与 TL 的关系。您如何与您的技术主管互动?

32. 你的志向是什么?您在 5、10、15 年后如何看待自己?

33. 你刚开始接触软件。你的期望与现实是什么?你对任何事情感到失望吗?

34. 到目前为止,您在职业生涯中编写了多少行代码?

35. 你上学时的志向是什么?

36. 你为什么做工程学?

37. 您提供的任何代码/修复是否因错误/有问题而返回给您?

最后,我进行了 HR 轮次。它很短。

38. 你为什么要换工作?

39. 你找工作多久了?

40. 你有升学的计划吗?

41. 您预期的 CTC 是多少?

42. 你在我们公司有推荐人吗?

和我一起参加的人还说,他们的问题仅来自简历,并且与他们的个人资料有关。他们的一些问题是:

1.如何发现和消除链表中的循环?

2. 给定 n,n 是孪生素数的概率是多少?

3.什么是函数指针?函数指针的应用。

4. Linux 中的调度机制。它是怎么发生的?

5. RTOS 是如何工作的?以及相关问题。

6. 编写一个程序来反转输入句子中的单词。

7. 另一个程序在删除空格后以相反的顺序打印句子,单词完整。

结论:
面试过程终于结束了。它从上午 10 点开始,一直持续到下午 4 点。所有的面试官都非常容易相处和友好。他们全天提供茶/饼干/水瓶,还给了我们所有的午餐。他们还为考试提供了纸和笔,但面试对我来说主要是白板。办公室在MG路,通过谷歌地图很容易找到。

在所有回合中,我都继续向面试官询问反馈和他们的期望。他们平易近人,和蔼可亲。我问他们问题,在采访结束时与他们互动。我问他们我在面试中是否犯了任何错误,并试图向他们学习。作为我第一次面试,这对我来说并不是一个非常可怕的过程。