目前关于操作系统的学习也算告一段落了,最后一个 mmap 的 lab ,我 debug 了半天,有一个样例始终过不去,感觉自己也算能够理解其流程,就作罢了,想起来,最近的几个月也是发生了很多心境的变化,特此来写一篇文章,既是总结,也是展望。
迷茫是我这几个月的主旋律,早在二月份,仿照着前辈的路子,我想要学习操作系统,虽然早早下定决心是好事,但是错误的选择直接让我浪费掉了整整一个月的学习时间。
最开始,我选择学习南大的操作系统,具体的不再多说了,由于课堂内容较为浅显而 lab 难度较高,我选择了只看课,不写 lab ,但是从现在来看,那个时候的我是根本没有学懂操作系统的,虽然老师讲得比较生动,让我误以为自己懂了,但是实际上是根本不知道怎么一回事的,实际上,那段时间力扣也没怎么刷,光去看课,几乎没什么效果,甚至浪费了大把的时间,说是玩了一个寒假也不为过。
迷茫着,到了开学,那个时候已经是二月底了,到当时为止,我还去看了一些学长的项目,将一些限流,链路追踪什么的功能也加入到了自己做着玩的 demo 中,但是即便是用了这些,感觉也是空空的,感觉自己还是仅仅是知道这玩意是去干什么的,太过浅薄,看了看蓝山的课件,也不知道应该怎么去进一步学习了。这种感觉真的不好受,既想继续精进,但是感觉还是仅仅给 CRUD 镶了一些花边,自己的实际能力根本没有增长。
接下来一个月,为了给自己找到方向,我总是痴迷于去看看同期的同学,以及学长们,在我这个时候,他们在干些什么事情,虽然并没有实质性的参考,但是让我回想起了 java 和 go 一样都是后端,所以我就去看了一些中间件的底层,包括 redis/kafka ,同时学习的时候写了份笔记,偶尔复习感觉用处还是有的,不过感觉也不够深,之后写了个 docker ,感受到了 Linux 的神秘,遂重启操作系统的学习,这次,我最初的计划是去学习 HIT 的 OS 课,咨询过学长的意见,转而去学习 xv6 ,这也确实是一个正确的选择,在接下来的一个月,我也确实坚持下来了,而现在我也能够理解了 love6 学长的那句“没有看过操作系统源码,没有写过操作系统是没有办法理解操作系统的”,刚开始确实感觉挺疑惑的,现在我也持有一样的观点。
自己总是希望不要落后于他人,包括自己学习底层,学习计算机基础的时候,也会时常去担心,哎,我业务方面会不会落后于他人?我实操能力没有提升怎么办?这些想法总是伴随在我的身边,害怕被别人给抛下。
但是人总需要取舍,我不希望自己仅仅是一个 CRUD 战士,相反,我希望对于计算机来说,我是一个掌控者,而不是一个操作员(说是掌控者还太远了,我只是希望能够理解计算机),而单纯跟着工作室的学习仅仅会让我能够进行一些简单的 CRUD ,我直到最近才醒悟这一点,工作室教的仅仅是起着引领的作用,它可以给你指引一些方向,而包括自己的能力,技术,就业的核心竞争力还得靠自己来打磨。(说实话关于go的后端方向资源还是太少了😭😭)
在这几个月,对我来说意义最大的就是完成了 xv6 的学习了,这也是我来写这篇文章的原因,除此之外,也学会了去逛逛牛客,看着对应岗位的面经,以此来告诉自己还有什么欠缺的,还有什么是要去学的,之后的一个月,就必须得投入到后端的业务学习之中了,毕竟,蓝山考核马上就开始了😱😱😱😱,工位啊啊啊,好想要工位,尤其是 51 期间,这种感觉特别强烈(因为放假了,图书馆闭馆,自己白天没有去处了🥲)
考核结束之后的计划,大概是回归计算机基础的学习吧,还剩下网络的内容得好好学一下,虽然也想过去参与开源,但是还是得看看自己的时间精力是否充沛,关于 go 的八股感觉也挺碎片的,之后也得好好看一看,算法也要继续刷,之前刷了两百多道题,但是都没有按着专题来刷,而都是跟着 hot100 和 codetop 上面来的,总感觉效果并不算太好,最近开始慢慢刷灵茶山艾府的 dp 题单了,目前来看,效果还算不错。
最后,只希望自己能够坚持下去,有一个不算坏的结果。