写点什么

揭秘大牛程序员十二时辰:有人作息规律,有人全年无休

  • 2019-07-20
  • 本文字数:2466 字

    阅读完需:约 8 分钟

揭秘大牛程序员十二时辰:有人作息规律,有人全年无休

作为一名程序员,你的效率什么时候最高?是一到公司就开启“狂飙模式”(小声 BB:也可能是“摸鱼模式”),还是披着夜色成为蝙蝠侠一样的“黑暗骑士”?在你奋力 coding 的过程中是否偶尔也会闪过这种想法:某个业内大佬此时此刻是不是也跟自己一样,正在为自己的项目倾尽全力?


一位名叫 Ivan Bessarabov 的小哥正是抱着这样的好奇心,对程序员大佬们进行了一番统计:他们的作息是什么样的?他们什么时段效率最高?他们也都是夜猫子吗?他们周末是不是也在疯狂 coding?今天,就让 Ivan 小哥来为你揭秘,欢迎和他一起走进程序员大佬们的“十二时辰”。


对于 Ivan Bessarabov 来说,有个问题一直困扰着他:那帮大牛程序员们都是几点工作的?很明显,程序员的成果就是代码,而代码存储在版本控制系统(VCS)当中。将代码存入 VCS 时的记录时间,就是破解这个谜题的线索。


目前最受欢迎的版本控制系统之一正是 git。在向其中存放代码时,首先得创建“commit”。下面来看 git commit 中包含的部分原始信息:



在这里可以看到提交信息(「Initial commit」)、存放文件结构(「tree 496d…」)的 ID 信息、commit 作者名称与邮件以及更有趣的内容——时间戳(1563188141)以及时区信息(+0300)(每一条 git commit 都拥有「author」与「commiter」,二者一般完全一致)。


时间戳是指自 1970 年 1 月 1 日之后经过的秒数。如果将 1563188141 转换为日常使用的日期结构,则将得到"2019-07-15 10:55:41"(UTC 时区)。接下来,将“03”小时与“00”分钟添加进去即得到"2019-07-15 13:55:41"——也就是 commit 作者在进行提交操作时所看到的本地时间。


VCS 当中的一些重要代码往往来自多项 commit 与多位作者。因此,可以编写一个简单的程序来检查所有 commit,过滤其中单独某个人的提交操作、获取本地提交时间,并将结果显示为常用的时间格式。


于是,Ivan 对几个程序员大佬的 git 库进行了解析,对其中的个人 commit 进行过滤并创建出统计图表——包括此人每天工作多少个小时,以及在此期间完成了多少次提交(结果非常有趣),并将它发布在了自己的博客中


而他统计表中的一位大佬:Chris Lattner(LLVM 编译器与 Swift 编程语言的作者)非常友好地提出了一个改进的好主意:


如果你把同一人在周末与工作日的信息视为两个不同的数据集,并把结果加以比对,可能会得出非常有趣的结论。


说得对,Ivan 立刻开始了改造。这一次他把统计分成两份图表:左侧图表为工作日期间的提交记录,右侧图表则为周末期间的提交记录。(有时候周末也属于工作日,有时候工作日期间也有公共假期,但这里就不搞那么复杂啦:周一到周五在左侧,周六到周日在右侧。)左侧与右侧采用相同的显示比例。


在图表下方,列出了提交总数与百分比。由于工作日与周末分别为 5 天和 2 天,因此如果每天的提交数量相等,那么工作日的提交百分比应该是 71.4%,而周末则为 28.6%。所以,如果周末的百分比超过 28.6%,则证明此人在周末的工作量更多。而如果周末百分比低于 28.6%,则代表此人更倾向于在工作日干活。


这一次,Ivan 还在图表当中列出了截至目前 repo 中的 git commit hash,并着手编写图表生成命令。这样一来,相信大家能够更轻松地重现他进行的操作。


好了,下面就来看看程序员大佬们都是怎样的作息吧!

Linus Torvalds

Linus 是 Linux 操作系统的作者,同时也一手打造出 git VCS 以及相对知名度较低的 Subsurface(初级潜水员跟踪系统)等程序。


这里是他在 repo:https://github.com/torvalds/linux 当中各 commit 的发送时间。


Linus 的工作习惯还是比较正常的,大多数提交操作在 10 点时间,而且从来不会在深夜进行提交。


工作时好好工作,休息时好好休息,是个好同志!



这里是他对 git 项目的提交记录 https://github.com/git/git


Sebastian Riedel

Sebastian 是两大高人气 Perl 框架——Catalyst 与 Mojolicious——的作者。他的工作安排相当疯狂,我对他的工作效率由衷钦佩。


下面来看他为 https://github.com/mojolicious/mojo repo 进行提交时的具体时间:


“工作狂”实锤了,基本上不休息的狂人大佬,佩服!


Chris Lattner

Chris 是 LLVM 编译器与 Swift 编程语言的作者。他在苹果公司工作了很长时间,其后加入特斯拉,目前效力于谷歌公司。


看看https://github.com/apple/swift  repo 中的提交记录,可以想见他也是个名符其实的夜猫子:


凌晨工作效率出奇的高,你是不是也这样?


Rob Pike

Rob 最新的知名成就是 Go 编程语言。下面来看他在 repo https://github.com/golang/go中的提交记录:


也是一个该工作工作,该休息休息的规律生活人士。


Brad Fitzpatrick

Brad 是 LiveJournal 的作者,曾创造出 memcached,目前则正在研究 Go 编程语言。


以下是他在 https://github.com/memcached/memcached项目中的提交记录:


白天的时间都用来研究 Go 了,所以夜里再搞 memcached。



再来看 Go 语言项目 https://github.com/golang/go


Rasmus Lerdorf

相信大家都听过,这是 PHP 编程语言的第一位开发者。


https://github.com/php/php-src (此 repo 并不包含第一套 PHP 版本,因此只能算是 PHP 最新版本的工作时间统计):


又是一位全年无休的大佬…


Guido van Rossum

Python 编程语言温和的独裁者 https://github.com/python/cpython


工作日疯狂工作,休息日彻底休息,嗯,靠谱!


Fabrice Bellard

他曾先后创造了 FFmpeg、QEMU、Tiny C 编译器,以及最近的 QuickJS。


以下是他在 https://github.com/FFmpeg/FFmpeg项目中的提交记录:


这是一位在夜里“效率爆发”的夜猫子,话说怎么周末也熬夜?


脚本

如果大家希望了解其他一些大牛程序员每天几点工作(或者想统计自己的信息),Ivan 在这里分享了自己的信息获取脚本。只需要在目标库的工作副本当中执行该单行程序即可:


需要为 git 命令指定–author 选项。在大多数情况下,可以直接指定对方的姓名:


‘–author=“Sebastian Riedel”’


也可以使用电子邮件:


'–author=“torvalds@ppc970.osdl.org”'并同时指定多个"–author"


具体可参考他的 GitHub:


https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f53b7f094


2019-07-20 14:5417969

评论 5 条评论

发布
用户头像
标题赢了
2020-01-06 20:14
回复
用户头像
难以相信
2019-07-30 00:17
回复
用户头像
有趣的视角
2019-07-20 17:49
回复
思路挺好的
2019-08-07 15:29
回复
没有更多了
发现更多内容

优雅地实时检测和更新 Web 应用

领创集团Advance Intelligence Group

Web Web应用

秋招冲刺版!奉上[Java一线大厂高岗面试题解析合集]

冉然学Java

面试 面试题 大厂 java; 秋招

LED显示屏在会议室如何应用

Dylan

LED显示屏 led显示屏厂家

兆骑科创赛事服务平台对接,海内外高层次人才引进

兆骑科创凤阁

赶紧收藏!!!我直接上瘾!百万人都在学的Docker

指剑

签约计划第三季 8月月更

前端培训机构课程怎么样

小谷哥

「Gitee篇」如何用Git平台账号登录建木CI

Jianmu

git 开源 DevOps 低代码 gitee

阿里巴巴最新分享Spring Cloud核心笔记,全程实例讲解,通俗易懂

Java工程师

Java spring spring-cloud

开源一夏 | 自己画一块ESP32-C3 的开发板(PCB到手)

矜辰所致

开源 硬件设计 8月月更 ESP32-C3

大数据培训课程哪个好呢?

小谷哥

【有奖征文 第13期】至简致远,“云”响世界,大胆秀出你的华为云技术主张,高额激励等你拿

科技怪咖

带你玩转“超大杯”ECS特性及实验踩坑【华为云至简致远】

科技怪咖

有了国产 DevOps 工具 ,还怕数字化转型成本高?

飞算JavaAI开发助手

一文读懂字节跳动“埋点验证平台”

字节跳动数据平台

字节跳动 数据治理 埋点治理 数据研发 埋点验证

干货:从零设计高并发架构

C++后台开发

高并发 架构师 C/C++后台开发 C/C++开发 高并发架构

面向云时代的龙蜥操作系统 是 CentOS 替代的最佳选择

OpenAnolis小助手

龙蜥操作系统 开放原子全球开源峰会 OpenAnolis 分论坛 CentOS 停服 CentOS 迁移最佳选择

基于DevCloud进行黑白棋实时对战游戏开发实践【华为云至简致远】

科技怪咖

有了这个开源工具后,我五点就下班了!

IT学习日记

EasyExcel 签约计划第三季 seaweedfs文件系统 java excel导出导入 java csv导出导入

基于微信小程序的幼儿园招生报名系统开发笔记

CC同学

如何选择ui设计机构

小谷哥

JavaScript 里三个点 ...,可不是省略号啊···

华为云开发者联盟

JavaScript 前端 运算符 函数

Java面试项目推荐,15个项目吃透两个offer拿到手软

冉然学Java

offer java; 技术栈 MAll java项目实战分享

开源一夏 | Spring事务传播机制

六月的雨在InfoQ

开源 Spring事务 8月月更

携手数字创新 共筑国产生态 7月份AntDB与5款产品完成互认证

亚信AntDB数据库

AntDB 国产数据库 AISWare AIDB

原来如此!谷歌架构师10年呕心沥血汇成的《23种设计模式》,这才是正解

冉然学Java

架构 23种设计模式 java; 编程、

什么是低代码开发?大家都真的看好低代码开发吗?

优秀

低代码开发

兆骑科创创业赛事活动举办平台,投融资对接,线上直播路演

兆骑科创凤阁

湖北钠斯网络数字藏品交易系统

开源直播系统源码

NFT 数字藏品

国产数据库的红利还能“吃”多久?

墨天轮

数据库 国产数据库

零基础培训学习大数据课程

小谷哥

web前端培训班哪个好选择

小谷哥

揭秘大牛程序员十二时辰:有人作息规律,有人全年无休_文化 & 方法_Ivan Bessarabov_InfoQ精选文章