程序员越老越博学吗?
最近一个基于Stack Overflow数据的研究尝试去解答以下问题:编程知识是否与年龄有关, 程序员是否越老就越博学以及他们是否能够掌握新的知识技能等。
美国北卡罗来纳州立大学计算机科学系的博士生Patrick Morrison和助理教授Emerson Murphy-Hill最近发布了《 编程知识是否和年龄有关?Stack Overflow探秘》(PDF),研究了编程知识和年龄之间的关系。
这项研究的对象是Stack Overflow的用户数据库(2013年2月),包含1 694 981名程序员,平均年龄为30.3岁。在这些用户中,超过300 000名用户明确提供了具体年龄,这些数据均用于本项研究。在该用户群中,作者筛选出曾在2012年回答过问题并且其威望值在1到1 000 000之间的用户,总样本数为84 284个,平均年龄为29.02岁。作者认为,在该调查中回答问题比提问更具代表性,因为“很可能问一个好问题却无法回答,但不大可能有难以理解或错误的答案获得高分”,并且“回答编程问题的能力在程序员面试中更重要。”
作者在其调查中着重提出了三个问题,主要是关于编程知识方面,而不是编程能力方面:
年龄对编程知识起到积极作用吗?
在该调查中,编程知识是用Stack Overflow(SO)的威望值来衡量的,结果显示年龄在10到50岁之间,威望值大致呈线性增长,意味着“年龄和SO威望值间正相关”,如下图所示:
程序员越老其技术和技能就越多样化?
作者通过选用Stack Overflow标签的方式,来衡量调查对象的知识领域,比如Java、C#、Javascript、C等。结果数据(如下图)显示“平均每个程序员所拥有的标签数量随着年龄增长都会有所下降,在30岁左右触底,然后在40到50岁之间反弹,而在60岁左右呈分散状。”这么来看,程序员越老似乎就拥有越多的技能集。
大龄程序员学习新的技术能达到什么程度?
为了衡量大龄程序员是否依然能掌握新的知识,作者将调查对象的标签限定在一些新的技术——clojure、 Django、 git、 ios、 jquery、 linq、 mongodb、ruby-on-rails、 silverlight 和windows-phone-7-,并结合答案的分数:
我们推测,他们在新技术领域获取的知识,可以通过答案的分数来衡量。每个答案的分数基于支持和反对的数量。如果越老程序员学习越新的技术,我们期望跟他们在回答这些技术的问题时,能够获得和年轻程序员一样甚至更高的分数。
结果数据在下表中列出:
作者总结道:
“iOS”和“windows-phone-7”这两个标签,显著偏离了统计学中的零假设。这可能表明即使技术的年代久远,但其知识依然有用武之地,比如“iOS”以20年历史的Objective-C为基础,就给大龄程序员带来了优势。年龄和所选新技术之间的关联性相对较弱,我们还没有强有力的证据证明大龄程序员无法掌握新技术。这样看来,大龄程序员的确能掌握新的技术。
作者承认,Stack Overflow可能不是最好的样本去衡量编程知识和年龄的关系,因为“美国对程序员就业的调查数据显示,与SO的用户分布相比,专业程序员的年龄分布倾向大龄化”,并且“也许是年轻的程序员把加入【SO】看作理所当然的事,而大龄程序员如果知道自己在某方面特别在行也会加入SO。”他们也“不确信RQ3【第三个研究问题】所采取的调查手段是公平的,但是我们到目前为止也没有找到更好的方法。”
相关文章
- 如何招聘一个能干活的程序员
- 为程序员准备的7个社交网站
- 前端工程师必备:细数那些好用的网站开发工具
- 从测试300万个超链接接学到的
- 基于用户投票的排名算法:Stack Overflow
- 我是如何在Stack Overflow找到工作的
- 让C程序更高效的10种方法
- 趣文:程序员是诗人
- 程序员编程生产力相差10倍意味着什么?
- 我的最糟糕代码列表
程序员越老越博学吗?,首发于 博客 - 伯乐在线。