专栏名称: 51CTO
51CTO官方公众号——聚焦最新最前沿最有料的IT技术资讯、IT行业精华内容、产品交流心得。本订阅号为大家提供各种技术干货,还会不定期的举办有奖活动,敬请关注。
目录
51好读  ›  专栏  ›  51CTO

程序员周末都在研究什么,Stack Overflow来告诉你

51CTO  · 公众号  · 科技媒体  · 2017-02-12 11:43

正文



如若转载本文请在文章顶部标注“本文转载自51CTO(ID:weixin51cto),作者:熊小妹


对我来说,周末主要是花时间与家人在一起,读书,休闲,有空参与一些业余开源项目。因为我就在Stack Overflow工作,所以这些周末项目与我的日常工作是有些重叠的,当然并不完全相同。据我们所知,许多开发者喜欢在周末的时间做些副项目,纯粹当做兴趣或者学习目的,这时候他们会上Stack Overflow来问一些相关的问题。Stack Overflow是支持所有类型技术问题的,无论是专业高手还是入门爱好者,只要提问就会获得回答。那么,相对于工作日,周末这两天是不是会不同呢,有哪些技术会被问起呢?


我们对此也很好奇,所以我们用我们的公共数据集Stacklite进行了标签搜索,用于找出工作日和周末的问题之间的差异。Stacklite数据集是公开的,任何人都可以分析,你可以使用Kaggle Kernel来查询Stack Overflow中的问题和标签。

标签比较

为了完成这次分析,我们使用了超过1万个问题标签。需要说明的是我们使用的是UTC时间来定义周末,因此考虑到世界各地的时差问题,这份调查是无法完全正确的体现出全世界开发者的实际情况的。最终,我们收集了工作日的10451274个问题和周末的2132073个问题。数量上的差异主要是由于开发者们还是在工作日使用Stack Overflow更多些,这和我们网站的流量体现相一致。


实际上,在正常的工作日里,基本上所有的技术问题标签都挺忙的,所以在这个工作日/周末模式的调查中,我们最感兴趣的是哪些标签所占的份额在周末相对于工作日来说变化最大,因此我们首先收获了这张对比图:


周末和工作日对比,哪些问题标签的份额差别最大呢?



为了解释更清楚点,让我们看一些图表中没有体现的数字。在2万多个带标签的问题中,函数编程语言Haskell在周末占到了0.365%,但在普通工作日只占0.21%,这表明它在周末异常的活跃。与之对比,SharePoint在周末所提出的问题中只占0.0683%,而在工作日则高至0.188%,这说明它几乎只在工作日使用。


这个结论让我们很高兴,因为Haskell确实是一个在学者和数学家群体里很受欢迎的语言,但是还没有在企业环境中流行起来,看来开发者们在周末还是很喜欢做数学等学科研究的。


让我们再做一些观察:

  • 我们发现一些底层技术在周末依然是非常流行的,比如C、C++、指针和汇编以及相关的数学标签比如算法、递归等等。

  • Heroku和Meteor常用于快速搭建应用平台的原型,这应该意味着开发者们喜欢在周末用它们来创建业余兴趣项目。

  • 而很多和微软相关的技术在周末显然没有工作日活跃,包括Excel、SQL Server、VBA和T-SQL,其他包括Oracle等企业技术也是这样。


我们还可以通过比较问题的总数和出现的相对频率将这些关系可视化:


工作日/周末对比散点图


解释一下这个散点图,标签越靠右,代表提出的问题数量越多,比如javascript、java、C #和PHP等,这些主流语言无论在平日还是周末都会有大量的问题提出,反之标签靠左表示问题总量少。红色虚线则是工作日与周末的分隔线,标签越靠上,表示周末相比普通工作日的活跃程度越高。


我们可以再次看到,大多数和微软相关的技术,即使是C #、ASP.NET、SQL Server和Excel这些热门技术,在周末的活跃度都明显低于工作日,而C和C++在周末提出的问题比率却比平日的问题要高很多,这让我们有些没想到,各种新语言比如Swift和Node.js的周末活跃度也明显高于平日,这很容易理解,因为许多人需要利用周末进行学习。


趋势分析

我们还可以利用这个数据集来进行趋势分析,看看开发者们在周末所关注的技术随着时间的推移发生了怎样的变化。为此我们建立了模型,用来找到各种技术标签在周末被问到的比率变化情况,这2万多个带着标签的问题带给了我们下面这样的答案:


降低趋势



我们发现像Ruby on Rails和Scala这些几年前在周末出现频率极高的问题标签,现在的情况已经发生了改变。原因应该是这些几年前的新兴技术现在已经被企业广泛采用,因而进入了开发者的日常工作范围。这几年来在周末使用版本控制系统SVN的人也大量减少了,最可能的原因是2008年GitHub的推出,导致了越来越少的人使用SVN管理个人项目代码。


增长趋势



而如果观察那些与几年前相比在周末增长最多的技术标签,我们会看到游戏引擎Unity3D和许多用于构建移动应用的技术与框架。看起来,相比前几年,开发者们现在更喜欢在周末设计游戏和移动应用,这确实是度过周末的好方法!


作者介绍

Julia Silge

Stack Overflow数据科学家

原文标题:What Programming Languages Are Used Most on Weekends?

文章翻译:陈小美

编辑:熊小妹

文章链接:http://stackoverflow.blog/2017/02/What-Programming-Languages-Weekends/