织锦面试经历 |第 2 套(适用于软件工程师 0-2.5 年经验)
我参加了博科软件工程师职位的面试(0-2.5年经验)。大约有200多人走进来,这是一个相当大的聚会。虽然谷歌地图上的位置是正确的,但车辆行驶的路线却是错误的。所以要注意尽早开始。
首先,我们进行了一轮书面 è 15 个能力问题 + 25 个技术问题。一小时的时间,没有负面标记。
能力倾向问题很容易破解,而且非常基础。有基于方向的问题,盈亏,比率和比例,以及围绕圆形轨道的速度。推理题很少,猜测顺序,编码/解码类型的问题。
技术问题主要是“猜测输出”类型的问题。技术方面没有太多基于理论的问题——这是一件好事。有一个基于页面分段、页面错误、RB 树排序、Infix-Postfix 操作、堆转储、聚合和其他一些主题的问题。
然后他们说他们会在1小时内公布结果,但花了3小时。所以建议带点东西吃。虽然他们为 60 人提供了午餐,他们通过了笔试,但等待是一个乏味的过程。
然后那些被选中的人被要求进行面对面的一对一技术。为我进行第一轮技术的人是项目经理。从介绍开始,问题主要基于项目细节以及我迄今为止所做的事情。
1. 说说你自己。
2. 您是否愿意谈论您当前的项目活动?如果是这样,请说明您目前在做什么。 (我目前的项目是在 LLDP 上)
3.什么是LLDP?你为什么需要它?
4. 你如何让对等点知道拥塞?什么是暂停帧?
5. 告诉我更多关于拥塞通知的信息。
6. 如果您要从头开始编写协议栈,请告诉我您的设计方法是什么。协议和硬件之间会有接口吗?
7. 什么是线程?线程是否共享内存空间?
8.如何存储路由表?你会使用什么数据结构?
9. 如果你的路由表有 300 万条路由,你会用什么方法来显示它?
10. 编写一个程序来反转字符串中的单词并打印出来。我使用单链表来解析和存储字符串,并使用循环显示它。他说,方法很复杂,但是
面试官很亲切,给了我足够的时间思考再回答。我花了一些时间来分析和回答路由表显示问题。他说:“你到现在为止都做得很好,慢慢来回答。”这是一个非常舒适的环境。
然后他们让我等下一轮。下一轮面试官看起来很严厉,一个问题一直引到另一个问题。
1. 编写一个函数指针的语法,该函数的返回类型为浮点数,带有两个整数参数。
2. 现在写一个函数指针的语法,返回类型为浮点数,带两个整数参数。
3. 现在在一个函数中使用这两者! (我在这里输了 L )
4. 编写一个函数来显示十进制数的二进制值。 (因为它只是显示,我在 while 循环中使用了 printf)
5. 给我一个你在工作中使用的单链表和双链表的实时例子。解释你的答案以及你为什么喜欢它。
6. 二分查找的最坏情况时间复杂度是多少?
7. 为什么二分查找的时间复杂度是 O(log n) ?
8. 什么是线程?线程和进程有什么区别?
9. 父进程如何知道孩子死了?
10、信号处理的API是什么?
11. 可以处理的最常见的信号有哪些?
12. 什么是分段错误?
13. 给指针赋值0x00会出现segmentation fault吗?或者当我尝试访问它时?
14. 为什么进程比线程快?
15.什么是死锁?
16、死锁是怎么发生的?
17. 什么是互斥量和信号量?
18.互斥量或信号量不会出现死锁吗?你会如何避免它?
19. 编写一个程序来显示一个数字的双精度而不使用算术运算运算符?我只是做了一次左移。
20. 如果它是负数,你的程序会工作吗?修改您的代码以计算负数的双倍。
21.然后这个谜题,他问了:https://www.quora.com/Puzzle-Which-number-survives-at-the-last
22.什么是DHCP?
23.什么是DNS?
24. 详细解释我打开笔记本电脑并键入 www.google.com 时内部发生的每一个步骤。
他又问了我一些问题,我忘记了。我觉得我没有回答太多。希望事情会好起来。