一篇基于 StackOverflow.com 上的用户数据分析做出的论文《Is Programming Knowledge Related To Age?》,给出了一些答案。
论文地址:https://people.engr.ncsu.edu/ermurph3/papers/msr13.pdf
数据采样和清洗条件:1694981 位用户,平均年龄 30.3 岁。
我们来具体看下 :
年龄分布图
我们可以看到程序员年龄的正态分布:高点在 25 岁左右,但是中点在 29 岁左右。
能力和年龄分布图
计算每个人每个月的 Reputation,这样可以找到这个用户的真正活跃时间,便于计算这个程序员的真实能力。总声望/活跃时间,可以得到他平均每个月得来的 Reputation。
我们可以看到:程序员的能力从 25 岁左右开始上升,一直到 50 岁后才会开始下降。所以说, 程序员吃的不是青春饭 。
年纪大的人是否跟不上新技术?
论文作者用了最近 5 年内比较流行的技术 Tag,然后用了一套比较严谨的算法来查看那些所谓的 “老程序员” 是否在新技术上跟上不了。所谓跟不上,就是这些老的程序员在回答这些新技术上并不活跃。所谓老,就是 37 岁以上的程序员。
从下表可以看到:老程序员和年轻程序员对于一些新技术的学习来说也是差不多的,甚至有些项还超过了年轻的程序员。
最后,论文得出结论:
程序员技术能力上升是可以到 50 岁或 60 岁的;
老程序员在获取新技术上的能力并不比年轻的程序员差。