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