年终总结这个玩意确实有点难写,有点写周报的感觉,站在年底往回看,基本回忆不出太多自己干了什么事,可能这也和干的事大多意义不大以及比较琐碎有关了。
这里从几个纬度回忆一下自己22年的经历,捋一捋脉络,看看22年自己在这些方面有什么变化,对比一下之前的做法,看看那里需要改进,也希望给23年找出一点启发了。
这过程有点类似梯度下降?设定好损失函数,就朝着这个目标不断优化自己,过程中也要加上点随机性,不然掉到了一些局部最优点自己也不知道,就呆在自己的舒适圈里自嗨了。所以抓住大体的方向,感觉到梯度不够的时候,可以适当的莽撞一些,多尝试尝试自己没有接触过的地方,可能可以带来更大的收获。
我之前看到我leader说过的一段话,意思大概是说阅读,实践,和思考是一轮的迭代,迭代的速度决定了我们对于世界的认知。我比较赞同这个观点,学思结合嘛。从我自己身上看的话,21年我的主题就是阅读和学习了,21年下半年就是各种学公开课然后读书。到了22年,自己也大三要开始实习了,所以主题就变成了实践,实践自己学到的知识,和其他人交流来巩固知识,触发思考,并且调整自己的认知。这样看感觉我也算是快完成这一轮的迭代了,并且最近明显感觉到自己希望在找时间沉淀一下,重新开始新一轮的阅读和学习。
话有点扯远了。。还是先回顾一下22年吧。
年初终于接触了分布式系统,学完了经典的6.824,不过paper还差几篇没有读完。。极客时间上的一个专栏叫大数据经典论文解读在那段时间帮助了我很多。最经典的那篇GFS我可能读了要有两周才明白他具体是什么意思。好在在一个月的高强度折腾下,算是勉勉强强入了个门,也把raft的实验搞完了。
在这之前学了一下cmu15418,是并行计算的课,有点忘了自己去年写没写了,就简单提一嘴。
上半年的时候在看cmu的15721,讲的是内存数据库上的各种技术,不过查询引擎这块相关的一些内容我还没看,可能要留在之后再回来挖了。
嗯,22年就学了这一点公开课,后续其实也有看过一些其他公开课的视频,只不过没有很系统的去学习,以及做对应的实验。
读书的话,22年相较于21年更是少的可怜,系统性的读下来的书,基本上就只有DDIA了。DDIA也是读了一遍又一遍,每次重新读的时候,都可以从里面找到一些自己之前没有理解到位的地方。
然后就是一些事务处理相关的书籍,比如Transactional Information System,读起来的时候还是有些费劲的,还需要补充一些数理逻辑的知识。
书的方面也算是开了很多新坑吧,希望自己在23年可以把这些坑填完。很多都是正在读但是还没读完(感觉也暗示了我需要聚焦一下,并发度太高不太好),比如C++Templates,perfbook,MySQL是怎样运行的,redbook,深处浅出SSD等等。
书籍对我来说是系统性的学习,而论文则更像是定点打击,针对某些方向去学习的好材料。22年也读了一些论文,当然也不算多,细读的论文大概有70到80篇左右吧,加上有些时候只是想简单了解一下思路,或者是相关领域比较熟悉,简单读一下就大概知道说什么的这种粗读的论文,可能有100多篇吧。感觉读论文的话,自己还是可以提升速度的,英文阅读的速度还是有待提高,可能到达和读中文一样的水平的时候,知识储备就是另一个level了。
嗯,刚才说了22年的主题是实践,所以学习和阅读这块越是相对来说少一些。
实践的话,主要有两块吧,一个是在22年初的时候我加入了学校导师的实验室,在这里和大家一起交流探讨问题。导师人也是非常不错,思维也很敏捷。在这里和大家相互补足,相互学习的氛围感觉非常不错,在这里也修正了很多我自己之前理解有偏差的地方。实验室里的大家,尤其是导师吧,感觉学习热情都比较足,即便是今天大年三十大家也在一块在讨论问题😂。这里打个广告给导师的实验室宣传一下,我个人十分推荐,所以有同学想考研到东北大学或者是已经在东北大学的同学可以来尝试一下。
第二点也算是我的一个转折点了,迎来了人生中的第一份实习,是在字节跳动的ByteGraph部门,到今天还是十分感谢面试官以及leader的认可。在字节跳动做的是图数据库,头一次接触了这种工业界的代码,以及公司的工作流程。个人感觉整体还是非常不错的,而且部门中的老哥们都属于是那种有趣的灵魂,并且思维敏捷的大佬。半年的实习过程中我确实收获的太多太多,感觉一一列举有点数不清了,也怕自己说着说着说漏了嘴,所以这块就跳过了。总体的感觉就是非常充实吧,和大家一起工作的过程反而给我充了很多的电,让我感觉自己的思维也变的更加活跃了。我的两个面试官(其中一个是我的mentor),都是非常厉害的人,来实习的这段时间我从他们身上学习到了不少东西,并且也在跟着他们一块学习的过程中拓宽了视野,尤其是mentor吧,带我入了工业界的门,并且无论是在技术上还是非技术的方面都给予我很大的帮助。
突然感觉写的有点词穷了,不过实习的半年时间确实感觉到非常充实,这就不多夸了。
最后一块则是开始读一些开源项目的代码了,也是受到mentor的影响,感觉这些成熟的代码真的很nb,读过这些代码的大佬也很nb,所以我也就来读了😂。主要就是数据库领域了。
实习来之前读了brpc,由于之前有一定的经验,所以读bthread这块不算太费力。不过现在回想起来一些细节也都快忘光了,之后也得在读几遍细品一下。简单读了读rpc的部分,以及一些butil。
然后读了读leveldb,平常也在复习中,感觉还是有很多细节值得考虑的。
后来在实习的时候,去调研了一下内存数据库的并发控制手段,所以读了一些学术界的内存数据库代码。感受就是感觉写的有点乱。。
后面受到一位很强的老哥的影响,开始学习innodb,目前还在进度中,希望23年能够有一个大体的脉络,做到可以漫游codebase的程度吧。
然后读了读一些rust的代码,比如sled和photondb,都是基于bwtree写的。代码量不多,读起来相对来说也舒服一些吧。
然后尝试读了读wiredtiger,但是没读懂,就先放着了。
今年也写了一些玩具项目,并且对GNN,图计算这块有了一定的了解。最开始用rust重写了一版xv6,然后用C++重写了一下bustub,中途参与了一个学长的项目,是GNN训练框架,学到了一些omp,mpi的知识,以及分布式训练的一些思路。年末在做毕业设计,还是WIP,可能明年会拉出来总结一下吧。
嗯差不多就这样了,后面这块有点流水账,原因是自己写到一半感觉脑子不够用了,就不想动脑子写了,有点僵尸文章的感觉了😂。
22年就先这样吧,23年的话,先把这些坑填平,然后尽量不开新坑,让自己在数据库这个领域做到深而专吧。
文章评论
Hi, Can I contact you via email? I want to know me how you study Database system implementation.
牛逼
🐮🍺
O.O