---
title: 码农之 GitHub 简史
date: '2018-05-03'
slug: github-contributions
---

有好事者做了一个 GitHub 瓷砖在线生成器：<https://github-contributions.now.sh>，可以用一幅瓷砖图表达一个码农的 GitHub 简史。下面是我自己这些年的瓷砖：

![@yihui 在 GitHub 上的活动汇总](https://db.yihui.org/images/github-yihui-contributions.png)

我其实是 2009 年注册的 GitHub 账号，但图中有 2008 年的活动，那是因为我当年把我的 [animation 包](https://github.com/yihui/animation)从 SVN 迁移到 GitHub 上，而 SVN 里的提交历史早于 2009 年。迁移过来之后腰不疼了，腿不酸了，写代码也有劲儿了。

2010 年没写什么代码，刚来美帝，上课为主。到了年底[猛更新了一下](/cn/2010/12/animation-v1-2-0-milestone/) animation 包。

2011 年开始[捣鼓 cranvas 包](/cn/2011/09/cranvas-package/)，上半年仍然要上课；暑假里[准备博士生资格考试](/cn/2011/06/study-furiously/)，所以暑假有一段空白。考完后的那个学期开始集中开发 cranvas 包，年底的连续空白是因为寒假回国，而之前的一点小高潮是因为我开始开发 knitr 包了。

2012 和 2013 年的精力基本上放在了 knitr 上，代码提交量也大增。2013 年 5 月左右那个大段空白[又是因为回国了](/cn/2013/05/wifi/)。2013 年下半年入职 RStudio，[年底毕业](/cn/2014/01/five-years/)。

2014 年上半年代码提交比较稀疏，整体颜色偏淡；由于在家工作的原因，我入职之后有近两年的时间都在摸鱼。这个稀疏的上半年是一个初始征兆。到了 9 月，在纽约开会时被厂里的领导约谈，有预警之意；回来后我假装卖力工作了一阵子，然后又松懈了。

2015 年年初有大段空白，那是我[回国过年了](/cn/2015/09/memory/)。尽管我已经五年没回国过年，但这次过年简直不能更糟糕。我许诺回国了要用平时减半的时间工作（即每周工作二十小时），但这两个月里我根本没摸过几次键盘，光顾着走亲访友吃吃吃了。3 月回美帝之后，愧疚无比，开始疯狂工作。到夏天犬子出生，休了一周假。到了秋天开始开发 bookdown，然而还没过两个月，我就[因为强烈的背痛倒下了](/cn/2017/01/blog/)。痛了两周之后基本恢复了，所以又工作了两周，然后上了手术台，又休了两周。

2016 年是 bookdown 之年，上半年代码提交比较密集。暑假回一趟国，于是又有大段空白，这次我尽力想在国内的时间里工作，但真的是太难，每天不知道怎么总是满满的安排，吃喝玩乐的干扰实在太多。隔三差五心里又惴惴不安。回美帝之后花了几个月把 bookdown 的书写完出版，然后开始 blogdown 的开发。

2017 年是 blogdown 之年，其实年初的时候雏形就已经写好，但写这本书的难度远大于写代码，主要是话题太大，技术细节太多，如果要说太细，这本书也许两年都写不完。写着写着又有点灰心丧气（下半年的开头有大片浅色区域），感觉快撑不住的时候列了一个写作计划，才顺着这根救命稻草从泥潭里爬出来。

2018 年的上半年留给了一本 [rmarkdown 官方书籍](https://github.com/rstudio/rmarkdown-book)的写作。本来计划了 12 章，我琢磨着一个星期一章，从 [RStudio 大会](/cn/2018/02/ninety-posts/)回来之后用三个月时间写完。后来变成 18 章，只是把原来的一些节升级为章了，所以有些章很短。就在昨天中午，我写完了第 18 章，跟头儿开会的时候觉得可以弹冠相庆了，但下午厂长说最好是再加一章，介绍他这周开始折腾的一种新格式。晚上我再一想，[learnr 这个包](https://github.com/rstudio/learnr)我在书中也没有介绍，最好也加上。于是乎，还得再埋头写两章。

以上便是一幅瓷砖图表达的一个码农的七年简史。需要注意的是，从去年 3 月开始，我启用了 Travis CI 上的一些定期编译任务（cron job），所以有每日自动提交，图中虽然没有灰色块，但实际上并不是我自己的提交导致的 GitHub 活动，最浅的绿色块基本可以视作灰色块，即无活动记录。

上面是一个初出茅庐的职场人士的记录，作为对比，下面我们可以看看本厂厂长的活动记录。他是一个高度自律的人，他的活动在这些年也相对比较均匀，不像我，到处都是大缺口。唯有 2013 年上半年活动量相对少一些，我不知道发生了什么，但我记得那之后他曾跟我说他已经落后他的计划好几个月，所以他不想分心做别的事，而是要集中精力写代码了。2013 年下半年 RStudio 招来一个做管理的主席，解放了厂长，于是他心无旁骛、乐此不疲地写代码去了。

![@jjallaire 在 GitHub 上的活动汇总](https://db.yihui.org/images/github-jjallaire-contributions.png)
