導讀:我最近一直在挖掘GitHub資料,我認為,使用這些資料準確找出全球軟體開發人員都在哪裡,然後使用D3進行視覺化,互動式地顯示結果,會是一件很有趣的事情。
結果真的非常有趣。雖然頂級開發人員遍佈世界各地,但貌似其中很多人都生活在舊金山灣區。同時,開發開源軟體似乎是富人的奢侈品,在印度,頂級開發者非常稀缺,而東歐擁有大量的優秀人才,是其他地區遠端僱傭程式猿的最佳選擇。
01 獲取資料
我使用GitHub Archive獲取了過去7年中所有活躍的GitHub使用者的串列。活躍指的是fork或關註一個repository,開啟或評論一個問題,以及提交程式碼等。最終,有超過1500萬個GitHub賬戶符合這個標準。幾個月以來,我使用GitHub / users / API獲取這些活躍使用者的資訊。其中,約有230萬使用者的位置資訊可以採集到。儘管超過1300萬個使用者的位置資訊無法獲得,但從這230萬個使用者資訊中,仍然足以看出一些趨勢。
我使用Google Maps Geocoding API將凌亂的自由形式的坐標串轉換為正確的真實位置。我手動排除了這個過程中的幾個地理編碼錯誤。例如,“未來”地理編碼為帕洛阿爾託,“全球資訊網”被編碼為波士頓,而/ dev / random被放置在印度。儘管出現了這些小錯誤,但在將混亂的位置字串轉化為正確的標準化資料方面,Google Maps真的非常給力。
這篇文章的所有程式碼都在GitHub上(連結:https://github.com/benfred/github-analysis/),我計劃將這些資料釋出到Big Query之類的地方,以便人們可以儘快使用它。
02 大牛程式猿
我們先只檢視粉絲多的頂級程式猿,我們將他們的地理坐標畫在地圖上。
使用強制定向佈局顯示最頂級的1024名程式猿,以便它們不會完全重疊,然後你可以看到他們所有人的居住地點:
你還可以透過點選一個國家來放大以獲得更好的檢視,並且可以透過將滑鼠懸停在其上來檢視單個開發人員的詳細資訊。
儘管這些遍佈全球的每個大陸,但很顯然他們傾向於聚集在幾個關鍵位置。最大的叢集在舊金山灣區並不以外,而北京、紐約、倫敦、上海和西雅圖等地也擁有大型叢集。
03 程式猿最多的國家
只看粉絲多的大牛會忽略數百萬個其他活躍使用者。彙總其餘賬戶的一個簡單方法是檢視每個國家有多少個GitHub賬戶:
用地區分佈圖顯示會更加直觀:(顏色越深,GitHub賬戶數量越多)
它不僅顯示了整體地理趨勢,還可以透過點選它來獲取每個國家的一系列資料和排名情況的報告:
從賬戶總數量上來看,美國在排名上佔統治地位:其擁有的GitHub賬戶數量比排在其後面的5個國家加在一起還多。但是,這不是國家排名唯一方式。我列出了幾種不同的國家排名方式,接下來我談談為什麼。
1. 與人口和GDP的相關性
如果只討論GitHub帳戶的總數量,那麼一個問題就是,頂級國家往往是那些人口眾多的國家。
XKCD很好地總結了這個問題:
▲圖片來自於XKCD
雖然美國無疑是技術超級大國,但它也是地球上人口最多的國家之一。舉個例子,美國的GitHub賬戶數量比冰島多,因此在按GitHub賬戶總數量排名時,你無法看出冰島的競爭力。但是,如果按每百萬人口中擁有的GitHub賬戶數量來排名,那麼冰島就會排名第一。
散點圖顯示了GitHub帳戶和人口數量的相關性:
橙色為雙對數回歸趨勢線,R2為0.5,意味著每個國家GitHub賬戶數量的一半因素可以用人口來解釋。我將帕累託邊界上下離群值較高國家標記了出來,也可以將滑鼠懸停在任何點上以檢視國家名稱和準確數值。
高於趨勢線的國家主要是西方國家,如冰島、瑞典、挪威和丹麥。低於趨勢線的國家往往是比較貧窮的非洲國家,如衣索比亞、剛果和查德。如果切換到“帳戶數量 / 百萬人口”檢視,會發現其趨勢接近於每個國家的富有程度。
這似乎表明,雖然人口數量與GitHub賬戶相關,但更好的方法是將GitHub賬戶與GDP進行比較:
這裡的相關性要強得多,R2為0.84。然後我們再看看,哪些國家偏離的趨勢線,並表現不佳。
這裡表現最差的主要是石油生產國,如沙烏地阿拉伯、伊拉克、卡達和科威特。這似乎是“荷蘭病”的另一個例子,豐富的自然資源導致這些國家對軟體工程師等人力資本的投資不足。
同時,前蘇聯和東歐國家的排名似乎在這個衡量標準中排名很高。烏克蘭、白俄羅斯、塞爾維亞和摩爾多瓦的GitHub賬戶數量都比按它們各自GDP去預測的要多。特別是,烏克蘭可能是聘請遠端開發人員的最佳選擇:可以想象的是,在合理利率的情況下,烏克蘭擁有大量的可用人才。
2. 粉絲分佈
印度和中國的GitHub賬戶數量相似,因此你會預期這兩個國家的程式猿在GitHub上有類似的影響力。然而,看一下1024位頂級大牛的坐標和世界地圖,會發現在北京、上海和深圳周邊有大量的程式猿,而印度的主要城市只有少量的程式猿。
雖然中國和印度的人口總量接近,但前1024位頂級大牛中有22%生活在中國,而印度只有不到1%。同時,中國大牛們擁有約39000名追隨者,在全球排名第3;而印度大牛們僅擁有約3100名追隨者,排名約第200位。
為了捕捉這種關係,我添加了一個簡單的“總粉絲數量”排名。在這項排名中,印度從第3位下降到第8位,中國程式猿的總粉絲數是印度的5.5倍。
我不清楚為什麼印度在這方面表現不佳,我也懷疑一個GitHub賬戶的粉絲數是否特別有意義。然而,一個GitHub賬戶的粉絲數似乎至少與該使用者的開源軟體開發影響力大致相關,所以我將其作為每個地點影響力的排名。
04 頂級城市
大多數發達國家的城鄉差異肯定比這些國家的主要城市之間的差異更為明顯。
以類似的方式對每個城市進行排名,如圖所示:
要檢視你的城市排名,你可以檢視自己的國家:
舊金山在這裡真正脫穎而出——僅擁有約86萬人,排名仍然高於擁有2500萬人口的上海等城市。然而,灣區只有很少一部分人居住在舊金山——南海灣已經歷了快速的發展。為了瞭解這一點,我將聖克拉拉縣,聖馬特奧縣,舊金山縣和阿拉米達縣都歸在“舊金山灣區”標簽中。
05 加利福尼亞PK全世界
當看到這些資料的時候,加利福尼亞州的統治地位怎樣描述都不算誇張:
如果按粉絲數量排名,舊金山的排名將高於美國和中國以外的其他所有國家。一個擁有86萬人口的城市比英國、德國、加拿大、巴西和印度等國家的影響力更大。同樣,如果加州是一個國家,那麼它的GitHub賬戶數量超過了除美國、中國和印度之外的所有國家。
舊金山每百萬人擁有超過40,000個賬戶。這意味著舊金山的“人均”程式猿數量是此項排名最高的國家冰島的10倍以上。至少有4%的居民擁有GitHub帳戶,並且該資料實際上可能會更高,因為只有約15%的帳戶在其個人資料中有位置資訊。
雖然灣區顯然是全球程式員最集中的地方,但程式猿的絕對數量放在全球範圍內來看也並不算多。在美國境內,只有約11%的GitHub賬戶來自灣區,而全球只有不到3%程式猿居住在灣區。
作者:Ben Frederickson
原文:https://www.benfrederickson.com/github-developer-locations/
大資料(ID:hzdashuju)原創編譯,轉載請註明作者、譯者及出處
推薦閱讀
Q: 你是居住在哪裡的程式猿?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視