在广大的程序员群体中,处在顶尖的大神们总是受到了大家的崇拜核追捧,而这些大神都是如何练成的呢,我们从他们的工作时间中,或许能够窥探到一些蛛丝马迹。
今天,我们通过分析六位顶级的程序员大神,看看他们的代码提交时间,来分析一下大神们的工作状态,一起来看看吧。
一、程序获取
对于程序的获取,我们通过git操作来获取大神们的程序提交时间,我们以python之父龟叔的代码提交时间为例,首先我们打开cpython的GitHub仓库
(https://github.com/python/cpython) 。
可以看到,龟叔经常在cpython仓库中提交程序,我们可以通过git clone https://github.com/python/cpython.git命令将cpython仓库下载到本地,然后通过git log来进行代码提交的查询。为了筛选出来指定的数据,我们需要设置git的参数。
- `git log --author="Linus Torvalds" ----pretty=format:"%cd" >linux_LinusTorvalds.txt`
其中,author参数指的是提交代码的作者,pretty用来指定格式来提取代码提交的时间,>指的是将log文件保存到本地的文件。这样,我们就可以抓取到龟叔的代码提交时间,而针对于其他大神的代码提交时间,同样可以利用这样的方式来获取。
二、数据可视化
对于数据的处理可视化展示,可以通过下述的程序进行处理:
通过读取大神们提交代码的数据,并提取代码提交的小时数据,并统计小时数据的数量,通过柱状图进行可视化展示。接下来我们就看一下大神们的程序提交时间吧。
1. Python
作为Python之父的龟叔,代码提交的时间结果如下图:
( https://github.com/python/cpython)
龟叔的代码提交时间从下午开始直到深夜达到高峰,这样的代码提交时间非常符合程序员的作风,再看看龟叔浓密的头发,看来发量和熬夜在龟叔身上并没有太大的关系。
2. Go
作为Go语言的设计者,Rob.Pike的代码提交时间相比龟叔来说就养生很多。
(https://github.com/golang/go )
这位来自加拿大的程序大神,代码提交时间大都在九点到17点之间,过着朝九晚五的规律生活,可谓是养生程序员的代表任务
3. Julia
Julia作为一门发展迅捷的编程语言,越来越多的受到数据科学界人士的的追捧,它的创始人之一是来自美国的Stefan.Karpinski。在julia仓库的代码提交记录中,Stefan深谙程序员的自我修养,从上午十点到半夜都持续的代码提交的工作。
(https://github.com/JuliaLang/julia)
4. PHP
作为PHP语言之父的Rasmus Lerdorf,却在当前的PHP仓库中找不到代码提交记录,所以这里我们用PHP团队的Dmitry Stogov代码提交记录作为展示。(https://github.com/php/php-src)
Dmitry代码的提交时间,同Stefan非常的类似,符合一个程序员的作息规律。
5. Linux
如果说Stefan和Dmitry大神还符合一个程序员的正常作息规律,那么Linux之父Linus Torvalds的提交时间则有那么一点奇怪。
Linux之父从早晨七点开始,代码提交便开始井喷式的增长,而且一直能够持续到晚上八点之后,这样旺盛的精力,堪称程序员中的战斗机。Linus在晚上十点到第二天早晨六点之间代码提交数量迅速回落,看来Linus夜间的休息还是挺规律的。
6. swift
如果上述的几位大神代码提交的时间还有规律可循,而作为苹果swift语言之父的Chris Lattner代码的提交时间,则是毫无规律。
Chris的代码提交从14点后到后半夜进入高潮,而在黎明前又是进入了最高峰。从七点到下午的一段时间内,代码提交则是进入了回落阶段。从时间的提交时间来看,Chris大神真的是夜间工作的王者。
总结
大家可以按照一样的方式来分析国内大神的coding time了,同样作为程序员群体,不知道会不会有着类似的作息习惯,还是有着自己独特的coding习惯,大家的编程习惯是什么呢?