写点什么

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

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

    阅读完需:约 8 分钟

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

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

作为一名程序员,你的效率什么时候最高?是一到公司就开启“狂飙模式”(小声 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


公众号推荐:

AIGC 技术正以惊人的速度重塑着创新的边界,InfoQ 首期《大模型领航者AIGC实践案例集锦》电子书,深度对话 30 位国内顶尖大模型专家,洞悉大模型技术前沿与未来趋势,精选 10 余个行业一线实践案例,全面展示大模型在多个垂直行业的应用成果,同时,揭秘全球热门大模型效果,为创业者、开发者提供决策支持和选型参考。关注「AI前线」,回复「领航者」免费获取电子书。

2019-07-20 14:5417760

评论 5 条评论

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

迭代器的一些简单理解

不在线第一只蜗牛

迭代 迭代器

虚幻引擎5与Perforce Helix Core集成使用案例:打造AAA级科幻游戏《Project Vesperi》

龙智—DevSecOps解决方案

版本控制 游戏开发 Perforce Helix Core

穿越周期!天翼云laaS+PaaS全年市场份额跃居中国公有云市场第三!

天翼云开发者社区

云计算 云服务 IDC

谈谈天翼云VPCE

天翼云开发者社区

云计算 VPC终端节点

总是被低估,从未被超越,揭秘QQ极致丝滑背后的硬核IM技术优化

JackJiang

即时通讯;IM;网络编程

自动抢单模式系统开发(APP,H5,源码开发)

西安链酷科技

绿色积分消费增值模式:引领新经济的消费革新与市场活力

西安链酷科技

.NET快速实现网页数据抓取

EquatorCoco

.net 网页

自动化UI测试工具TestComlete现已集成AI功能,可自动执行可视化回归测试,减少误报,简化工作流程

龙智—DevSecOps解决方案

UI自动化测试 SmartBear

国内唯一!阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”

阿里云瑶池数据库

mongodb 阿里云 阿里云瑶池数据库

使用 Django 中的 filter 方法进行数据查询

我再BUG界嘎嘎乱杀

Python django 后端 开发

分红系统功能定制开发,团队分红返利商城模式开发

西安链酷科技

前端常见的页面自适应布局方案

秃头小帅oi

智算引领 AI启航,中国电信天翼云助推辽宁数智发展!

天翼云开发者社区

人工智能 云计算

数字先锋| 塞上江南新面貌:惠企便民政务兴!

天翼云开发者社区

云计算 云服务 政务云

一条数据包从收到发--交换芯片篇(一)

天翼云开发者社区

云计算 架构 交换芯片

在 Django 中设计爬虫系统的数据模型与多对多关系

我再BUG界嘎嘎乱杀

Python django 爬虫

抢单系统开发抢单系统APP开发【现成源码,快速搭建】

西安链酷科技

1688商品API接口:电商数据自动化的新引擎

Noah

抢单互助系统开发,拆分盘软件开发,互助盘平台搭建

西安链酷科技

独立系统-抢单溢价拆分交割寄售系统

西安链酷科技

Python打包成exe的方法介绍

我再BUG界嘎嘎乱杀

Python 后端 开发 打包exe

英伟达一季净利暴增 6 倍;消息称 TikTok 计划本周大幅裁员丨 RTE 开发者日报 Vol.210

声网

API面临哪些风险,如何做好API安全

德迅云安全杨德俊

Klocwork 2024.1新功能详解:验证平台功能提升、分析Bazel构建项目、MISRA C++:2023®编码标准

龙智—DevSecOps解决方案

klocwork perforce 静态代码分析工具

职场火焰杯测试开发大赛报名倒计时:最后一天!

测试人

软件测试

云内GSLB技术及应用场景

天翼云开发者社区

云计算 容灾备份

职场火焰杯测试开发大赛报名倒计时:最后一天!

测吧(北京)科技有限公司

测试

公排业绩分红模式系统开发

西安链酷科技

typora破解教程,2024永久激活(亲测有效!!!)

大师兄

Typora破解 typora免费使用 Markdown 编辑器 typora激活 程序员编辑器

自动化运维实战:Docker与TASKCTL在ETL调度中的深度应用

敏捷调度TASKCTL

运维 自动化运维 TASKCTL #docker

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