前言

已经实习了有一段时间,并且在这半年的时间里也在不断调整的自己的技术栈,最近想要梳理下整个技术学习,进行总结和未来的方向规划。

正文

临时性总结

最近半年的学习目标主要是打牢基础,提升代码coding能力,在查漏补缺的同时寻找自己最适合的方向,主要的学习成果和方向:

  • raft分布式协议

    完成到lab2的部分,用go实现了整个raft协议的论文部分,在这个过程中写了简单的go实现的内网穿透工具,用来熟悉go语法和一些高级特性,阅读完了google分布式的几篇经典论文,了解了分布式的基本知识,但是在完成lab2的时候还是有时候跑不过test,需要后面改进时间效率,等继续学习完成lab3,4。

  • Ucore操作系统

    清华的操作系统课程,用c实现整个操作系统中的主要重要的逻辑,比较仔细地理解了的操作系统,然后把之前学os时候没弄懂的部分想清楚了,从bios启动一直到文件系统,感觉做的还是很酥爽的,前面两个lab做完之后就能步入正途了,等做完整个部分后,需要完整的总结一下流程,来一个架构分析。

  • CMU数据库

    这个大概完成了2/5,是接下来主要花时间研究的东西,主要是用C++实现一个简单的关系型数据库,已经实现了一个基于Extendable hash table算法,LRU来完成一个缓冲池管理器,然后是需要实现一个B+树,已经实现了查询和插入部分,接着需要完成接下来的东西,感觉做完之后可以更好的理解数据库,毕竟不能只会crud么2333

  • Web安全相关编程学习

    学习了怎么编写常见漏洞的自动化工具写法,了解了扫描器的基本架构和一些设计思路,之后需要补全基本的漏洞编写,然后读了比较多的源码,很爽,感觉自己的代码阅读能力有了点提升。

大概学了这么多东西吧,感觉还是有很大的改善和进步空间,主要是效率和方法方面,虽然花了比较多的时间,但是明显感觉到效率方面可以继续提升,这部分之后再做分析思考吧。

暂时性方向

未来的主要学习目标一个是完成cmu的db和raft的剩余部分,感觉可能raft的部分有重新思考重构一下,然后是关于C++的学习,这里感觉有点头疼,C++学习比较困难,一些高级新特性如果没有亲自写过,很多坑和设计理念根本没法真正的理解,然后还有的是leetcode的刷题部分需要为秋招做好准备,已经刷了一点,但是这次主要是需要精的刷一下第二轮。之后可能想要做的学习研究方向大致挑了下,可能主要是这几个,比较感兴趣:

  • Nginx的源码分析,可能会去简单实现下其核心部分,想要好好地去学习了解下Web中间件,然后加强对网络的理解,会更有利于以后的学习工作吧,个人感觉应该在大四毕业之前希望能够完成。
  • Redis的架构源码分析,Redis的实现感觉比较有意思,而且很重要,这个希望能够完整的理解其思想和架构。
  • Fuchsia的了解学习,google的新操作系统,展望是跨平台从移动端到桌面以及智能家居,主要是面向物联网的操作系统,感觉比较有意思,不过这个优先级不是很高,可能就只会简单地关注下,如果有空的话会稍微分析和看下他的源码和架构(好像还需要学习下Dart,先看情况吧)
  • etcd的源码分析,这个看情况优先级也不是那么高,如果raft完成的比较好的情况下,可以继续研究下etcd,etcd就是基于raft实现的,想看看具体的工程化代码是怎么做的。

总结

精力和时间都是有限的,必须要提升下自己的学习方法来提高效率,然后注意同样保持体力,感觉需要加强锻炼了,最近身体有点疲惫orz。