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

有位名叫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%) 。

永动机又如何呢?

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

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

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

质疑之声

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

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

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

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

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

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

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

<meta charset="utf-8">

One More Thing

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

所以现在你可以亲自解密一下国内大佬coding time了。

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

普通程序员和神级程序员的区别?相关推荐

  1. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  2. 《千字文细谈》2021神级程序员都在用什么工具?-09-02

    答者:如下图  普通码农一枚,分享一下自己最常使用的几个效率生产工具. 目前还没看到神级程序员的回答,问题先码一下,坐等神级程序员. 下面本人抛砖引玉的回答: 1.关于架构设计和系统设计:会推荐几个自 ...

  3. 世界神级程序员之一,成了被人唾骂的神棍?

    本文转载自 差评 前几天, Richard M.Stallman(查理德 · 斯特曼)在视频中宣布,自己将要回到 35 年前一手创立的 FSF(自由软件基金会),并且希望再次领导 FSF . 在技术圈 ...

  4. 神级程序员都用什么工具?2020 年度开发工具 Top 100

    [CSDN 编者按]在过去的 2020 年,诞生了哪些新的开发工具?最优秀的开发工具和开发服务是什么?神级程序员们是怎么使用它们来开发顶尖的软件和服务? 作者 | StackShare Team    ...

  5. 神级程序员8000行css代码画出一个蒙娜丽莎,堪比达芬奇!

    代码画出的蒙娜丽莎 今天逛CODEPEN找HTML5动画案例的时候,偶尔看到一位神级大师的作品,用纯CSS代码画出一副蒙娜丽莎,虽然分辨率不高,但是仍然让我很是震撼,一看代码,整整8000行,基本一行 ...

  6. python连接池框架_Python中的连接池是非常重要的!神级程序员详解!

    概述 连接池的作用就是为了提高性能,将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对Server端进行访问.这样 省略了创建连接和销毁连接的过程(TCP连接建立时的三次握手和销毁 ...

  7. 知道经纬度用python画路线图_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  8. 程序员python代码打招呼方式_某编程少年说他是Python大神,神级程序员不用一行代码教他做人!...

    听君一席话,胜读十年书. 1.扎实的python基础 个人的技术基础知识是否扎实,决定了个人是否能够做的工作层次. 比如某些Python半吊子,只能够纸上谈兵,和Python小白谈谈人生理想,而只要涉 ...

  9. 12本大神级程序员必读书籍,从菜鸟走向牛逼!

    很多人问我这个问题,尤其是那些刚开启软件工程生涯的同事和朋友.要成为一个更好的开发人员,我应该读哪些书?我真的需要读书吗?这是一个很值得探讨的问题,而且也是我在成为软件工程师之时问了很多导师的一个问题 ...

最新文章

  1. BLAST引物或靶点特异性
  2. 《Linux下sed命令的使用》
  3. Android studio | From Zero To One ——安装教程及前期学习总结
  4. linux 内核修改rss,linux 内核参数 rss
  5. Android使用GestureDetector实现手势滑动效果
  6. python题库选择填空_python练习题4.18猴子选大王
  7. 今晚课题:2019-3-20
  8. rmlv出错处理一例
  9. Cris 的 Scala 笔记整理(八):面向对象中级-封装
  10. 2021 年高教社杯全国大学生数学建模竞赛题目(A 题 “FAST”主动反射面的形状调节)
  11. wordpress中如何正确书写robots.txt
  12. OpenCV-图像处理(06、调整图像亮度与对比度)
  13. freeswitch+kamailio+unimrcp
  14. 计算机1946考试试题,统考计算机考试试题及答案
  15. php启动flashpaper,图解FlashPaper的使用方法
  16. 认识Power BI
  17. win10在电脑中添加新用户
  18. Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
  19. 【Java基本数据类型】Long和long的区别
  20. Java 火车票订票系统

热门文章

  1. event trigger php,微信小程序 this.triggerEvent()的具体使用
  2. 通过 HUMANS 项目,传达出空间适合所有人的信息
  3. 网站图标如何设置详细过程
  4. Codeforces 1634 A. Reverse and Concatenate —— 简单思维
  5. linux环境下blastn命令怎么用,Linux环境下通配符及特殊符号使用详解
  6. capabilities: ambient capabilities说明
  7. 【详细】小程序仿支付宝APP实现
  8. 树莓派内核编译(5)
  9. 微信小程序全局变量(globalData)和缓存(StorageSync)的区别和用法
  10. IDEA开发流程Activiti需要注意的一些坑