前言:
网易的面试发生在阿里的算法工程师面试之后了,发现算法工程师够不着之后,果断的转回了原来的方向,但是毕竟也是已经有半年多没有加深过了,还是吃了一点亏,在网易的最后一面遭遇了滑铁卢,败在终面上了。
我的github:
寒假刷了150题的leetcode,现在也放在了我的github里,不仅仅有每一题的解题代码,还记录了我解题的时候的思路,以及遇上的问题。是一个很好的总结,欢迎大家前去参观。
https://github.com/YinWenAtBIT
网易笔试的选择题,比较难,考的内容很多都是概念题,而且正确的答案还不止一个,答完之后,在百度上搜索发现,大约一半以上的题目都回答错误了。但是最终,还是通过了笔试,进入了网易的面试阶段。
1.什么是RCU锁,什么是自旋锁,什么是读写锁,什么是互斥锁,使用方式以及使用场景
2.虚拟地址与物理地址转换计算
3. 访问网易主页,经过了哪些协议,各自协议包头是什么样的。
4. 快排算法中的快速选择:这一题其实算没做出来,忘记快排的具体实现了,但是直接使用了sort完成了代码,并且ac了,估计网易最后没有仔细检查代码。
4. 输入数字组合排序。简单的leetcode原题。
笔试完差不多一周后,收到了网易的面试邀请,地点在杭州,犹豫了一下,还是决定请假过去了,毕竟是一个难得的机会,可以好好叫检验我现在C+_+的水平到底如何,后续要如何继续准备校招。
第一面,面试官先让我自我介绍,我给他说了我整个的自学过程。面试官觉得还是挺不错的。然后问我哪方便比较好,可以针对性提问,我说,还是让面试官自己决定吧,不然显得我特别准备了问题。如果我没做过,我就说不会。
面试官问了一些项目中会出现的问题。比如编译时找不到定义,我从编译链接的角度回答,也从C,C++混编角度回答,还有文件包含顺序回答,基本回答全了,后面就主要是聊一下做过的东西,以及自学的一些经历还有刷题的过程等等。后面的过程就非常的顺利了,面试完之后,很快就收到了二面的通知。
二面之前,我和我同桌的人交流了一下,说他遇到的面试官给他的问题很难。先是top命令,然后是top命令从哪里读取数据,再就是tcp协议中的拥塞控制以及滑动窗口协议细节,后面的算法题是bit算法。然后,我二面果然遇上了这个面试官(一共就三个面试官)。
这个面试官先看了我的简历,然后对我的简历上的项目看起来没什么兴趣,开始按照他自己准备好的问题开始提问了。第一个题目就是这个top命令,问什么命令能查看linux系统的状态,打完top后,又是从哪里读的。然后又接着问这个文件夹有什么特点。这我就接不下去了,因为确实没有深入了解过。于是换个问题,TCP协议的问题,果断在细节上我答不下去了,因为了解没有这么深入。下一个问题,内核态与用户态,特点,什么时候会从用户态切入内核态,这个问题其实在现代操作系统上读过,只不过太久没看,忘了,不过即使答上了,估计后续的问题也可能接不上。
接下来就是递归stackoverflow的错误,为什么会造成这个错误,优化的方法,从编译器的角度上。这个也不会,后来查了发现有一个尾递归的方式实现。
最后再来了一个mysql 的索引优化问题。这个我没没有学过,不会。最后就直接做那个bit算法题目了。又跪了。果断面试挂了。
总结:
这一次面试,C++大约来了60人左右,最后估计招了20人,所以至少我能进入面试阶段,也代表了我这边的水平已经在平均水平之上了。只不过一些深入的问题,没有足够的掌握,导致第二面的时候挂了。其实这些问题也不算太难,只不过没有接触到罢了。所以接下来的4个月里,我需要好好的接着看书准备。加深C++技术的储备。