大神程序员,夜夜 coding 到天明?

公众号关注 “GitHubDaily” 设为 “星标”,带你了解圈内新鲜事! 转自量子位,作者栗子,鱼羊 普通的程序员和大神级的程序员有什么区别? 从大神们

公众号关注 “GitHubDaily”

设为 “星标”,带你了解圈内新鲜事!

转自量子位,作者栗子,鱼羊

普通的程序员和大神级的程序员有什么区别?

从大神们的工作状态中,能找到一些蛛丝马迹。

有位名叫 Ivan Bessarabov (简称 “伊万”) 的好事者,刚刚统计了各路大佬的代码提交 (git commit) 时间分布。

包括 Linux 之父,Python 之父,Go 语言的作者……

伊万考虑了时区,并把多人合作提交的代码踢出去没算。

结果很有意思,发现了几个不同的物种:正常人类,夜行兽,还有…… 永动机。

这引起了网友的热烈讨论,Hacker News 热度已经超过 600 点:

正常人类

正常人类通常在白天工作。

然而在程序员大佬中,这个物种并不常见。

Go 语言的作者 Rob Pike 看上去算是个非常正常的人类:

(第一列是时间,第二列是代码行数。)

Go 项目的 repo 显示,Rob 的工作时间集中在上午 9 点到下午 5 点之间,朝九晚五,非常健康。

虽然一天就睡 5 个小时,似乎业余时间也都在 coding 吧,但总之,组织鉴定他是个正常人类!

下面这位 “正常人类”,画风就开始有点不一样了:

这来自 Linux 之父 Linus Torvalds:

白天工作,没问题。但是这位大神的代码从早上 7 点就开始有喷发之势,这个劲头几乎能持续到晚上八九点钟。

睡眠时间比上面那一位又缩短了一个小时,不算上发呆时间的话。

这简直是正常人类里的战斗机。

而根据网友爆料,Linus 可能是被迫成为正常人类的,在他有孩子之前,他也是昼伏夜出的夜行生物。

还有的人的画风是这样的:

这是 FFmpeg 的作者 Fabrice Bellard 在这个项目上的工作时间,真是越夜越开心啊。

令人好奇的是,这位大佬是会睡着睡着觉灵感突发蹦起来提交代码的吗……

夜行兽

说不上什么科学道理,但程序员大佬的身体构造可能发生了什么诡秘变异。

他们中间夜行生物的比例似乎要高于正常人类。

比如像这样:

这是 LiveJournal 的作者 Brad Fitzpatrick 在 memcached 项目上的提交。

大佬疯狂熬了一宿,灵感喷涌而出,太阳当空照的时候,他就满意地去睡觉了。

Brad 对 Go 语言也有代码贡献,在这个项目上他的画风更加狂野了:

LLVM 编译器的作者 Chris Lattner 也是当之无愧的夜行兽,他曾在苹果和特斯拉工作,现在则加入了谷歌。

他的代码提交时间长这样:

别人都是朝九晚五,这位大概是晚九朝五吧……

研究了那么多大佬,伊万小哥自然不会放过那位仁慈的独裁者 Python 之父 Guido van Rossum 同样被戳上了夜行兽认证。

这样的代码提交时间似乎在说:美好的一天从下午开始,夜晚才是真正的 coding time!

至于夜行兽们为什么 24 小时都在提交代码,大概他们像猫一样白天也想醒就醒吧……

永动机

除了日行和夜行,还有一个物种叫白夜行,他们不止 24 小时提交代码,且产能没有重大波动。

“世界上最好的语言” PHP 的创始人 Rasmus Lerdorf,便是一个优秀的代表。

由于 GitHub 上找不到初版 PHP,伊万便统计了这位创始人在 php-src 项目上的提交时间:

看得出,越到晚上越是兴奋,但白天体能也并没有太多损耗。

不过这个物种里,还有产能更加强盛的个体。

下图是两个 Web 框架,和它们的作者,名叫 Sebastian Riedel


 都是基于 Perl 语言的框架

这是他在 Mojolicious 框架项目里的提交时间表,数字快要爆炸了:

高产的时段,依然集中在夜晚。

但即便是产能最低的早上 8 点和 9 点区间,也都超过了 100 行。

伊万统计到这里,都不由地惊叹:

这时间表是疯了。好嫉妒他的生产力。

这样看来,每个物种都有各自的战斗机。

强大的战斗力难分高下。

谁喜欢周末写代码?

伊万的观察结果,被著名夜行者之一、LLVM 编译器的作者 Lattner 翻了牌。

他提了个建议,说如果把工作日和周末分成两个数据集来分析的话,可能会很有趣。

于是,伊万就真的续了一篇

因为有五个工作日,两个休息日。如果每日产能平均分配,应该是周中 71.4%,周末 28.6%。

那么,周末提交的比例超过 28.6% 的话,就表示更喜欢在周末写代码。反之,就是更倾向在工作日写代码。

结果,日行族的 Linux 之父 Linus (19.3%) 和 Go 语言之父 Pike (9.7%) ,都是 工作日产能的更加丰厚。

可以理解,毕竟日出而作,日落而息,周中忙碌,周末休息,都是普通人眼里的自然规律。

夜行族便不同了,既有喜欢工作日的 Python 之父 van Rossum ( 10.2%) ,也有略喜周末提交代码的 LLVM 编译器作者 Lattner (27.3%) ,稍低于 28.6%。

永动机又如何呢?

PHP 创始人 Lerdorf,是所有被测的著名程序员里,周末提交比例最高的,达到了 30.3%

而永动机中的战斗机、两个 Web 框架的作者 Riedel,周末提交比例是 26.2%。只是略低于 28.6%。

总体来看,永动机可能是最喜欢周末上班的一个物种。

质疑之声

那么问题来了。Hacker News 讨论版上,不到一天便涌来了 187 条评论,提出质疑的也不少。

比如,顶楼是名叫 Dahart 的网友,他说不能轻易把提交时间等同与工作时间

我都让团队尽量避免在夜里、周末、或者快周末的时候提交代码,因为后面还有其他工作人员,需要这些代码。至少有 15 年都是这样过来的。

除此之外,推特网友 @JDevlieghere 还说,提交时间和 git 的机制有关系

我自己跑了一下 LLVM,然后发现代码提交时间,延迟了几个小时。

LLVM 作者 Lattner 也附议了这个问题。

不过依然不可否认,代码提交时间是个非常好的观察角度。

One More Thing

独乐乐不如众乐乐,伊万小哥开源了代码,热情邀请大家一起探秘大佬都是什么物种。

胖友们还等什么?快来解密一下国内大佬 coding time 吧。

比如,听说广州程序员张小龙就喜欢深夜抽烟写代码,伴着音乐享受夜的温柔,不知道现在是否还这样……

代码传送门:
https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f53b7f094

伊万博客 (观察结果) :
https://ivan.bessarabov.com/blog/famous-programmers-work-time

推荐阅读:
漫画:小学生都能看懂的 HTTPS网络常见的 9 大命令,非常实用!2019 最烂密码排行榜大曝光!网友:已中招!手把手教你写出几十种让同事无法维护的代码!
2020 互联网应届硕士的薪资情况