在廣大的程序員羣體中,處在頂尖的大神們總是受到了大家的崇拜核追捧,而這些大神都是如何練成的呢,我們從他們的工作時間中,或許能夠窺探到一些蛛絲馬跡。今天,我們通過分析六位頂級的程序員大神,看看他們的代碼提交時間,來分析一下大神們的工作狀態,一起來看看吧。
01.程序獲取
對於程序的獲取,我們通過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文件保存到本地的文件。這樣,我們就可以抓取到龜叔的代碼提交時間,而針對於其他大神的代碼提交時間,同樣可以利用這樣的方式來獲取。
02.數據可視化
對於數據的處理可視化展示,可以通過下述的程序進行處理:
通過讀取大神們提交代碼的數據,並提取代碼提交的小時數據,並統計小時數據的數量,通過柱狀圖進行可視化展示。接下來我們就看一下大神們的程序提交時間吧。
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習慣,大家的編程習慣是什麼呢?歡迎在下方留言區吱一聲。其實熬夜傷身,大家還是悠着點!
【菜鳥學Python】累計原創近400篇趣味乾貨(爬蟲,數據分析,算法,面試指南,原創趣味實戰,Python遊戲,機器學習),歡迎一起學Python,交流指正。