今天是2023年的最后一天,大概半个月前就萌生了写一篇年度总结的想法,不过一直因为一些其他的事情拖到了最后一天,现在看大概是写不完了。鉴于我的本科也进入了最后的倒计时,因此一并回顾一下这忙忙碌碌的三年。希望在完成对2023的总结后,能对即将到来的2024有一点头绪。

迷茫,以及自救之路

高考结束之时,带着一种考败来矿的心态,开启了我的大学生活,自踏入校门的那一刻开始,就想着通过保研来洗刷高考的失败。抱着这样的想法,大学最初自然是过得浑浑噩噩且失败的。

严格来说,我是没有大一这个说法的,充其量就是高四罢了,在这一年中,我继续享受着做优等生的快感,活在他人的目光里。一方面是满绩拿到手软,另一方面则是完全没有思考过这个专业该学什么,自己感兴趣的又是什么。同学们晚上出去玩我嗤之以鼻,发觉机器人实验室可能影响保研就立刻退出。在大一结束时,带着“差不多”,“学的都一样”,以及本专业保研率更高的想法,我也是放弃了本科唯一一次的转专业机会。

这样偏激的,彻底唯结果论的做法很快就带来了不可逆的后果,在大二上学期时,我才意识到自己对于AI,对于算法完全不感冒,和我所想的计算机完全不同。才意识到,整个大一只是享受那种在成绩上高人一等的快感,随即而来的则是彻夜难眠,在失眠的那些晚上,我几乎翻看完了知乎上所有跨保计算机的帖子,那些为数不多的成功案例也算是给我带来了一些宽慰,让我不至于彻底失去学习的动力。自那一刻起,便开始了我的自救之路,如何逃离AI,做自己真正感兴趣的方向。

为了逃离AI,最初加入了学校的工作室并开始学习后端,在学习数据库的相关知识时,机缘巧合的接触到了csdiy和CMU15-445,也是在这个时候开始了解到计算机并非算法与开发二元对立,Andy讲课的幽默风趣和数据库本身的系统复杂性深深的吸引了我。如果说后端是因为我不想做AI的选择,那么数据库才是我真正发自内心的对其产生了浓厚的兴趣,经过一段时间废寝忘食的学习,也是决定了将数据库或者sys作为我今后的方向。后面的一切就比较的水到渠成了,刷课,做lab,读paper看开源项目都按部就班的进行。

我的意思只是,我并不认为幸福可以指代一种令人满意的普适性的生活方式。你不能通过直接把它设定为目标来得到它。在我和彼得森的辩论中,我提出幸福是一个必要的副产品。假如你为其它某些东西而奋斗,它就会随之到来。它只以副产品的形式出现。如果你只把幸福当做目标,那总是会导向自我毁灭的。 ——齐泽克

作者:Kagarino Kirie
链接:https://www.zhihu.com/question/392634078/answer/2323699160
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

就像这段话一样,我想说的是,如果只把保研当作目标,那总是会导向自我毁灭的。盯着保研,然后为了保研去费劲手段的想出成果,这样大概率会像无头苍蝇一样到处做无用功,或者是直接当“绩点哥”,绩点大杀四方,技术上连排序都写不出。今年认识一位同学,也没有什么出色的科研经历,硬是靠自己扎实的基础和内功,连续拿下ruc信院和sjtu ipads的优营。所以这其实上就是一个因果关系,是为了更好的学习而去保研,还是说为了保研而去“出成果”。

它更像是一个学习途径,如果我想学db/system,而保研可以给我提供一个很好平台,那么我就去保研。最终让我收获颇丰的不是接收到梦校offer的邮件,不是929当天在系统中点下确认接受的那一刻,而是你自己一步一步向保研走去,一路上的修炼的内功成就了自己。点下确认的那一刻,并不会像游戏中的装备那样,给我带来强力的属性加成,它最多就是给我提供了一个加速度,让我今后可以走得更快,走的更远。

当然完全避免功利是很难做到的,人总是需要利己的,无论是名还是利,只要不搞反因果顺序就好。

保研,终点亦是起点

如果说2023有什么足以改变人生轨迹的大事的话,那么大概就是最终如愿以偿的获得了推免资格,也收获了心仪的offer。

带着非科班 + 非rk1的debuff,夏令营解决基本上被中九全拒德,好在人大、厦大收留了心碎鼠鼠,以及海王天大把我海进去了,让我不至于面对夏0营的惨剧。得益于疫情结束,今年的夏令营终于是转向了线下,参与感大大提升,面试体验拉满,也收到了人大的T恤和厦大的帆布包,和一些老朋友见面了,也认识了很多新朋友。虽然有点曲折,不过最后所有参加的夏令营/预推免都收获了offer。

在浩浩荡荡的AI大军中,出于sys人抱团取暖的目的,建了一个sys保研的小群,这一路走来也少不了群友们的支持与鼓励,每次夏令营都有机会和和群友们线下面基聚一聚和群友们逛了北京、南京、厦门和武汉,可惜的是最终还是没能和所有群友都见上一面。群友们最后也都去了很好的学校,也祝他们都能够在硕士阶段继续发光发热,追求自己所热爱的。

929当天,虽然跟着绿裙春晚乐呵了一下,也在自己的小群里面庆祝了一下,但是感觉其实并没有什么特别的,等待offer和点下确认都是水到渠成的事情。后续自然也没有什么所谓的gap year了。后面就按部就班的打了ob,看了leveldb,启动了一下rust,补了一些基础。要说最大的区别的话,大概就是再也不需要去学那些没意义的课程,刷那些没有用的绩点了。可能比较遗憾的是决定ob决赛弃赛时已经十二月初了,这时候几乎已经没有实习了,投了一圈几乎没人理我,并且刚投了一份就甲流中招了,在床上又躺了好几天。唯一的一家初创也因为我没背八股在二面挂掉了,其实也不能算背八股,问的都比较基础,在OSTEP,程序员的自我修养里面都看到过,长时间没复习遗忘了。算是一个遗憾了。

技术,路在何方

今年技术的最大成长,或许是知道了自己应该努力的方向。如果说从系统性学习开始计算的话,今年大概是我的system元年。接下来我要作一些枯燥无味的机械列举了——希望读者能够包容这点。

Lab && 项目

  • 要说第一次接触system,还是大二暑假了解到的MIT-6.824,不过当时的代码水平实在是不堪入目,MapReduce也没写出来就被劝退了。年初终于有机会重新再次挑战一下6.824了,即便是有了一些system基础之后,整个过程还是非常酸爽的,被各种tricky的bug虐的死去活来,对着几万行的日志欲哭无泪。算上看课 + 看paper,最后耗时两个多月的终于是实现了自己一个比较满意的版本。相比于Raft,6.824更多的是意志上的一个磨练。
  • 之前看445时cpp并不太熟练,lab选择了Java实现的MIT 6.830,今年终于是有机会补上了,有了6.824的基础,445写起来就很得心应手了,虽然噩梦B+树耗费了我不少时间,不过其他三个很快就A掉了,这也算是我真正意义上的第一个modern cpp项目,总的来说收获很多,学到了很多工程性的东西
  • Miniob/Oceanbase:参加 ob 比赛时已经是保研结束了,这时候就是纯兴趣了,加上由于准备夏令营/预推免很久没写代码了有点手痒 (瑟提手痒难耐,渴望写代码)。Miniob 和 Bustub 的侧重点不同,更注重功能上的实现和问题的解决,初赛中也写了几个比较好玩的东西,像是 null 字段,支持 text 和 mvcc,最后非常有幸发现了系统中的一些 bug,提的 pr 也被来哥合到了主分支,也算是为开源做贡献了。决赛就比较坐牢了,在相继搞出几个优化点之后终于是遇上了瓶颈,感受到了自己能力不足带来的无力感,最后无奈弃赛,成绩从 15 最后掉到了 30 多。

书籍

  • 读完了DDIA,个人感觉这本书作为分布式的入门或者初学并不合适,DDIA中描述的都比较的宽泛,如果是刚接触分布式的话难以有什么深刻的体会。最好是对分布式、存储、数据库各个方向都有所涉猎之后,再看会有一种集大成的感觉,能够理解其中的各类设计所解决的问题,正如书名一样,能够体会到构建一个数据密集型的大型分布式系统都需要什么。
  • 补了补cpp,跳着看了看《C++ Primer》,过了一遍《Effective c++》和《Effective modern c++》,意识到了自己原本写了多少屎山出来,不过即便看完,我也并不认为我是一个合格的cpp程序员。
  • 看了一本叫做《深入理解分布式系统》的书,听名字感觉有些噱头,但是相比DDIA更适合初学者,里面对各类一致性模型,CAP,Paxos,Raft都有很详细的说明,以及各类分布式系统,如Spanner,GFS,Aurora的例子。如果夏令营前认真看了这本书,人大大概就直接优营了(悲
  • 系统性的过了一遍《数据库系统概念》的重点章节,之前一直是当字典来用,需要什么看什么,系统性看一遍确实有新的收获,奉为数据库圣经不为过,不过翻译质量实在不对我胃口,将key翻译成“码”等对我来说实在难以接受。如果夏令营前认真看了这本书,人大大概就直接优营了(悲
  • 接触一下 Rust,看了《Rust 圣经》,之后持续性的被编译器拷打,本来想做一下 rcore 的,结果和 ob 撞车了无奈放弃,写完 rustlings 就溜了。年底又捡起来了,之前在知乎上看到一个用 rust 科研的文章,“即然我们按照 rust 的方式去写 c++,那么我们为什么不直接写 rust 呢?”

看过的开源项目

  • 四月那阵联系了ecnu的老师,主要是做rocksdb相关工作的,因此就先看了看leveldb的源码,大致了解了lsm的原理与实现,在今年十一月时又重新分析并调试了一下leveldb。“跟leveldb学LSM-Tree”,“C++98的最佳实践”,个人深以为然。
  • 五月那阵又联系了人大,开始做一些跨域Raft的内容,实验是基于ectd/raft跑的,于是就开始看ectd/raft的相关内容,这也是第一次接触到了工业级的Raft,学到了一些架构设计和工业界的优化。
  • 年底为了补一下 Rust,看了 toydb 的源码,toydb 以很小的代码规模,实现了一个结构完善,代码清爽的分布式关系型数据库,写的也很有 Rust 的味道,看的直呼过瘾。

Paper

准备夏令营和打ob分别在上下半年花费了我一些时间,加上目前处于入门的阶段,paper积累确实不多,列举几个自己印象比较深刻的,大概看了这样几个方向的:

  • 分布式:谷三篇,以及一些6.824中的经典分布式论文,大概了解了分布式是为了解决什么样的问题,和对应的解决方案。Raft大论文部分章节,跟着etcd一起看的,了解了Raft的常规优化;逻辑时钟,HLC,CRDB,在人大组里跟着学了一点,今年后续面试几次莫名就扯到CRDB上面了,感觉能拿下华科全归功于CRDB
  • 存储:主要是一些lsm相关内容,像是Wisckey,pebblesDB,HashKV这些经典优化;还有篇盘古2.0发在今年fast上面的,也挺有意思的。
  • Db:九月那阵看了一些 721 中列存的相关内容,后续被预推免打断了,鉴于后续主方向也不是 db,也没再捡起来。追了一下热点,看了些 vector db 的相关内容,Manu,SPFresh 之类。

算法

从草履虫进化到蚯蚓,夏令营前过了几遍acwing基础课,这里不评价yxc这个人怎么样,单论acwing基础课的话,确实是很适合我这种算法草履虫去入门了。

生活

总的来说是非常无趣的,基本上每天都是烂在宿舍写代码,大概只有觅食的时候才会离开宿舍。人际交往除了水群几乎为0,而且作息是彻底的烂掉了。

不过依然有值得庆祝的,从国庆结束回到学校开始,到十二月底回家,大概瘦了接近20斤,距离脱离肥宅又近了一步,能明显感受到身体负担减轻了。

游戏

  • 荒野大镖客 救赎2:唯一真神,无与伦比的沉浸感,不想学的时候就跑到西部,今年100多个小时玩下来感觉亚瑟更像是我的一个老朋友,雪山复仇回到比彻之愿时,听着《Come Live By My Side》有一种怅然若失的感觉
  • 2077往日之影:个人心目中的年度最佳剧情,加上2.0系统大改,玩起来根本停不下来
  • 潜水员戴夫:前期新鲜感扑面而来,可以给9分,后期只能1分
  • 古墓丽影三部曲:E宝之前送的,一直没时间玩,解密和攀爬体验都很不错,想尝试同类型的盗贼之海了
  • 控制:光敏性癫痫差点给我干出来了,遂退游
  • 战地:偶尔去捞捞薯条
  • 真人快打 11: b 站看到视频入坑,结果上手玩发现根本操作不过来

差生文具多

每次口口声声说这是最后一把键盘,今年大概是真的退烧了,在分别体验过hhkb和niz之后,最后还是感觉niz接近线性轴手感的静电容更适合我,然后将其改成了hhkb佩列的键位。原本的机械键盘彻底打入了冷宫,今年回家也只带了一把niz回来。

赛博罗宾汉

新培养方案中,添加了劳动课作为必修,但是教务开出的课程供不应求,以至于出现了几百,几千一门课的情况,学生叫苦不迭。那时就在想,是不是可以利用一下自己学习的技术呢?于是搞了一个脚本,简单发送几次网络请求就可以了。靠这样操作,帮我室友把劳动课都选上了。后面一看到群里面有人说要卖课就把脚本打开,半路拦截掉课程,再随便找个时间给释放掉,颇有点劫富济贫的感觉。

技术之外

不得不说,这样的生活对我来说也过于沉闷了,游戏固然挺好玩也可以消磨时间,但是可以称为爱好吗,并让我持续性的去投入并付出吗?我想并不是的。

国庆那时就想着自己是不是应该尝试接触一门乐器。之后被朋友问到,“读研以后除了日常工作,有没有特别想干的?”,我下意识的说出了想自己从头写个分布式kv,那一刻才发现生活已经日渐枯燥。后续这个想法无数次萦绕在我的脑海中,可以是吉他,也可以是贝斯,更重要的是应该迈出第一步。前一阵得了甲流,在躺在床上看完孤独摇滚之后,这种想法更加强烈了。但是后面忙起来之后又让我举棋不定,不得不说这成了我2023中的最大遗憾。希望在新的一年能够做出改变,迈出第一步。

新年期望

技术上的话,要学的大概很多,目前感受比较强烈的是该补一补体系结构了,打算看一看软硬接口那一本书。其他的暂时没有想到,按部就班的学就好。

寒假先争取比毕设的基础功能写出来,开学之后再搞一些比较意思的优化加进去。最后毕设是打算用rust自己从头搞,最近也恶补了一下rust,希望自己能坚持下来,不要逃跑到c++。

剩下的就是些生活上的了:

  • 希望自己能再瘦20斤吧,国庆的时候比高中胖了快40斤,目前减肥进度50%,希望下学期能瘦回高中时期
  • 学一门乐器,目前更喜欢贝斯一点,很希望能自己弹一下皇后乐队的《Another one bites the dust》
  • 寒假学一学做饭,目前体重的体重一半得归功于自己嗯造外卖(另一半是嗯造宵夜),希望寒假能自给自足,在家少点点外卖