前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全球程序猿大数据:中国大牛数量完爆印度,北上深杭人数最多

全球程序猿大数据:中国大牛数量完爆印度,北上深杭人数最多

作者头像
IT阅读排行榜
发布2018-08-16 14:42:09
1.6K0
发布2018-08-16 14:42:09
举报
文章被收录于专栏:华章科技华章科技

导读:我最近一直在挖掘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)原创编译,转载请注明作者、译者及出处

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据DT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档