创造了不得丨TiKV Committer 的最快养成方法

一月末,一位大三的少年登上了知乎热榜,有数百万人浏览了迟先生的“凡尔赛”语录:“即便一周实习 3 天,我依然拿到了上海交通大学计算机学院第一的绩点。”迟先生是上海交通大学的计算机系学生,同时,他也有着另一个身份:CNCF TiKV 项目有史以来最快晋升为 Committer 的开发者。在一个风和日丽的下午,他接受了咱们的专访。
—— TiKV 优秀 Committer 迟先生(Alex Chi)专访

编程学习之路

“若是你不爱一件事,你不可能把它作得真正优秀。”前端

——Paul Graham《黑客与画家》git

从小学三年级开始写代码,迟先生在初三的时候拿了全国青少年信息学奥林匹克联赛提升组的一等奖。升上高中后的迟先生开始了工程上的实践,学习了前端、后端的大量知识,用 Python、JavaScript 等写了不少好玩的小程序。当被问到,为何高中不继续打计算机竞赛的时候,他笑着说:“由于我以为算法比赛没有什么意思,我想作一些更有意思的事情”,就这样他在高中边写代码边升入了上海交通大学的计算机系。到了大学之后,迟先生就开始学习系统编程。在一年半内学完了 MIT 6.828, 6.824, CMU 15-445 等硬核课程,而且数据结构、操做系统、计算机系统结构、计算机组成、计算机网络等核心专业课上拿到 A+ 的成绩。随后,他在大二下学期加入 CNCF 的 TiKV 社区进行开源贡献,在大三加入 PingCAP 实习。github

结缘开源世界

“冲在开源软件最前沿的人,正是凭借本身的眼光和才华发起项目,而后经过有效的社区合做,将其发扬光大。”面试

——Eric Raymond《集市与大教堂》算法

迟先生在大二下学期参与了 CNCF 基金会主办的 Community Bridge 活动( Community Bridge 是一个为有兴趣参与开源项目的开发者提供带薪实习和指导的活动)。而后在这个活动里他结识了 PingCAP 的导师 breeswish,而且在导师和社区成员的指导下参与到 TiKV 项目的开发中。迟先生进行了 coprocessor 模块的开发,这个模块主要负责的是 TiDB 的下推计算,它经过将 TiDB 的部分算子下推到 TiDB 分布式存储层来作,能够有效提升数据库运行的效率。这个模块涉及到对 TiDB 整个的计算框架进行修改,是一项被打上“ hard ”标签的任务。可是迟先生凭借他扎实的计算机功底和不俗的代码实力,成功地完成了既定目标,同时创下了 TiKV 有史以来最快成为 Committer 的记录。TiKV 的官方网站上至今还保存着他结业时写的总结博客。(https://tikv.org/blog/communitybridge-mentorship/)在项目结束后,迟先生顺利地经过了 PingCAP 的面试,成为 TiKV 项目组的实习生。数据库

(迟先生的GitHub)编程

闪耀的实习经历

“创造,不管是肉体方面的或精神方面的,老是脱离躯壳的樊笼,卷入生命的旋风,与神明同寿。”小程序

——Romain Rolland《约翰·克里斯朵夫》后端

迟先生在实习的时候选择了更加接近计算机底层原理的存储引擎进行研究,他参考了BadgerDB ,使用 Rust 实现了著名论文 WiscKey 的构想 ,开发了一个高性能的存储引擎 AgateDB。如今AgateDB正作为TiKV的实验性引擎处于持续的开发阶段,全面开源(项目地址是https://github.com/tikv/agatedb,欢迎感兴趣的同窗来参与贡献!)。数组

迟先生说:“我对来 PingCAP 整段实习的经历都是比较满意的。首先我接触到了国内为数很少的作开源软件的公司,而且可以参与到工业界产品开发的一些流程,这让我对 TiKV 的认识更加深刻,而且也激发了我以后在存储、数据库这方面的继续深刻研究的兴趣。”

当问到迟先生来 PingCAP 实习时印象最深入当事情是什么的时候,他绝不犹豫的回答:“上海 Office 曾经组织咱们一块儿去迪士尼乐园团建,这让我以为很是的快乐。

这个回答出乎了咱们的意料,咱们都笑了出来。

不平静的大学生活

“若是本身就是潮水的一部分,怎么能看见潮流的方向呢?”

——Paul Graham《黑客与画家》

迟先生在上海交通大学计算机系几乎每一年都拿到了满绩的成绩(GPA 4.3 / 4.3 ),咱们向他询问了他是如何一边实习一边拿到这么好的成绩的。迟先生笑着说:“我对最后考试拿了多少分,其实兴趣并非很大,更重要的是我在这个过程当中学到了什么事情。”迟先生向咱们讲述了他如何对课程进行分类:课程能够分为实践课和理论课。实践课基本上是根据课后项目的完成度来给分数的,而他由于有着丰富的工程经验,因此能够快速的上手,因此这些实践课的分数基本上都比较高(小编补充:满分)。另一些课程是理论课,好比说计算理论、人工智能这样的课。这些课的分数组成大部分都是考试。对于这些课,迟先生说,他以为本身课下研究的效率比上课听讲高不少,因此他每周会稍微抽一点时间看书的,而后期末再作几套卷子,基本上成绩也不会太差(小编补充:也是满分)。当咱们问到他对于时间的安排时,迟先生回答道:“我去年的课是我每周是能够空出两天彻底没有课的,因此我那两天是在 Office 实习。还有一天那门课是听和不听没什么区别的,因此那天我就在学校 Remote。”“因此个人观点一直是分数仍是比较难反映一我的真实的水平,”他说,“就像我虽然在不少课上分数是比较高的,但论我到底学到了多少东西,这个东西都是比较难界定的。”而当谈到周末的安排时,迟先生的回答却是让咱们以为十分的亲切:“我周末会打游戏、看电影,而后还会去商场吃饭。而后还有由于周末大段时间比较多,我可能会用来去作一些课程的项目,由于这种项目通常都须要周期很长,我通常会拿这个比较整段的时间去作,这样效率会比较高。”原来天才少年的休闲生活和正常人也没有什么不一样,这让咱们感到有所放松。

内卷与逃离内卷

“数量,便是正义。”

——Gustave Le Bon《乌合之众》

内卷,本意是指人类社会在一个发展阶段达到某种肯定的形式后,停滞不前或没法转化为另外一种高级模式的现象。当社会资源没法知足全部人的需求时,人们经过竞争来获取更多资源。迟先生也提到了一些他生活中见到的内卷现象,好比有的同窗发邮件给老师,想把别人的分数扣掉,但愿用这种下降别人分数的方法来提升本身的排名。“还有一种,”迟先生接着说,“在咱们专业的人工智能课上最后一个项目须要作 presentation ,然而有些人的模型炼到了 99.9% 的准确率,这就很是的扯淡。这些行为的共同点就是:你虽然达到了很高的分数,或者说获得了老师的承认,可是实际上对于自身的水平是没有任何提升的,它纯粹是一种同窗之间的内耗。”咱们问到:“那你是如何对待这种行为的?”迟先生回答:“我彻底不参与这类事情。”他提到,去年有一门课,有的同窗写了三四十页的实验报告,而他第一次交了两页,第二次交了五页,最后老师仍是给了他满分;包括在 AI 模型训练上,他的小组创建了只须要处理少许数据就能得出很好结果的新模型。他以为更应该注重的是提升工做的质量,而不是作一些很表面的功夫。这让咱们感到很是的有意思:在内卷环境里胜出的那我的,倒是旗帜鲜明反对内卷的人。

挂在嘴边的失败

“被别人揭下面具是一种失败,本身揭下面具倒是一种胜利。”

——Victor Hugo 《海上劳工》

迟先生在 PingCAP 的 导师 Jay 对迟先生的评论是:“他的产出呈现出一种与年龄不符的成熟度,让人很是震惊。和口头“失败”彻底不符的成功表现,有一种反差萌。”是的,迟先生为人所熟知的,还有他日复一日的卖菜。

当被问及为何常常说本身很失败时,迟先生是这样解释的,衡量成功有不少维度,而他在不少维度上都是完全失败的。

他提到,上海交通大学有不少同窗,大一就进实验室,以后顺利的发了不少顶会的 paper,但是本身在学术上并无什么建树。同时,有另一些同窗,他们参加了不少学生活动,成为了学生会的主席;还有些人作了许多的公益,登上了电视台……他也很羡慕这样的同窗。

咱们反问道:“但是你也得到了不少人求之不得的东西,好比奖学金、社区的 reputation 等等。”

而迟先生回答到:“我只是在学习方面自认为学习能力仍是 ok 的,而且在像数据库像存储这些领域,找到了一些本身比较喜欢的点。对我来说,像奖学金、像各类荣誉之类的东西,我本身认为它们并非很重要,最重要的仍是个人能力在什么水平上,而后我能作什么样的事情,或者说我作过什么样的事情,这些是我比较看重的地方。”

咱们又问:“你以为有些事情对你来讲并非很重要,可是偏偏这些事情对他人来讲多是比较重要的,你这样说会不会伤害到他们?”

迟先生是这样回答的:“我以为这个是不可避免的事情。我高中的语文成绩就永远都在及格线边缘,而后我天天都在背文言文实词、作不少题,可是个人语文成绩就一直上不去。可是个人一些同窗,他们不用像我这么努力,就能够拿一个很高的语文分数。那么在这种状况下面,他们确实对我形成了一些影响,让我以为我特别的失败,我无论怎么努力都没有办法达到他们的水平。

可是等我到了大学后,我感受当初想法都比较幼稚,就没有必要在这种这种方面上纠结,由于高考过了这个阶段之后,以前的分数都没有什么用了,对吧?感受其余人有很高的成就或者怎么样,若是你很在乎这些事情,确实会对本身形成必定的打击,可是随着时间的流逝,这些感受就不会特别的深入,由于它们并非生命中最重要的东西。”

成功不是单一的批判标准,咱们每一个人都要找准本身的赛道。

传火开源

“开源软件是计算机工业最宝贵的财富。”

——Tim O'Reilly

迟先生以为,在开源社区作贡献,最重要的是 motivation 。

他举了本身的例子,他最初去作的 TiKV 的 motivation 是由于他以为这个开源项目很好玩,而后在参与建设的过程当中同时学到了不少知识,结交了许多朋友,所以就一直走了下来。

他以为,要参与开源社区,首先要作的是找到本身感兴趣的方向,而后选定一个本身稍微努力一点就能够够得着的那种水平的开源社区。选定了这么一个社区以后,咱们就能够参与进去。

参与进去的时候,和社区里面的人沟通是很是重要的一件事,好比说社区里面有些什么 idea,或者说其余的开发者是怎么想的。这样能够慢慢的找到具体在什么地方能够努力,就能够去作一些比较大的 feature,或者作一些比较大的改进,而后这样一来就能够提高本身的能力。

迟先生认为 TiKV 的 coprocessor 多是整个社区里面最容易参与的一个组,由于这个项目基本上不须要不少的前置的知识,只须要知道 SQL函数是干啥的就能够来实现一些 coprocessor 里面的函数。因此他建议初学者或许能够考虑一下从这个角度来参与TiDB的相关开源活动。

同时,咱们也推荐 TiDB 官方出的十分钟成为 Contributor 系列博客,想和迟先生同样成为知名开源项目的 Contributor 吗?从发出第一个 pr 开始吧!

梦想是什么

“梦想一旦被付诸行动,就会变得神圣。”

——阿·安·普罗克特

当聊到迟先生的人生梦想时,迟先生讲到,他但愿之后能够成为一个出色的工程师,能解决复杂系统里面的一些问题。咱们问到,若是有一天财富自由了,他会想作些什么。他绝不犹豫的回答,他想写一些本身真正想写的一些代码。“对我本身来说,我想解决一些其余人没有解决过的问题,”他说,“有些问题感受就算是学术界也比较难解决,它真的要有经验丰富的工程师才能够去找出那么一种真正能够适用于某一个 workload 的系统的解决方法。我想去写这种优雅、又能够解决痛点的程序,这会让我感到很是的开心。”咱们问迟先生在 PingCAP 的导师 Jay Lee ,有没有什么想告诉他学生的话,他沉默了许久,后打出了这么一句话:

愿他能保持好奇和冲劲,对开源和技术永远热爱。

是的,祝愿咱们都有光明的将来。

最后在关麦以前,咱们请迟先生给咱们的读者们推荐一些东西。

迟先生想了想,说:“我推荐一个游戏——《塞尔达传说》,我以为这个游戏很是的好玩,你能够用它来消磨时间,也能够提神醒脑。但愿你们在感到无聊或者说以为人生遇到瓶颈的时候均可以玩一玩游戏,从游戏中得到一些快乐。”

话筒准备递给下一位嘉宾了!至于下一位嘉宾是谁,熟悉社区的小伙伴确定都知道啦,先卖个关子,敬请期待~

相关文章
相关标签/搜索