编程能力与编程年龄

编程能力与编程年龄

程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希望能像《21天速成C++》那样速成,好多时候超级有想和他们争论的冲动,但后来想想算了,因为你无法帮助那些只想呆在井底思维封闭而且想走捷径速成的人

今天,我们又来谈这个老话题,因为我看到一篇论文,但是也一定会有很多人都会找出各种理由来论证这篇论文的是错的,无所谓了,我把这篇文章送给那些和我一样准备为技术和编程执着和坚持的人。

论文

首先,我们先来看一篇论文《Is Programming Knowledge Related to Age?》(PDF链接),这篇论文是两个北卡罗莱纳州立大学计算机科学系的两个人Patrick Morrison 和 Emerson Murphy-Hill 对StackOverflow.com上的用户做了相关的数据挖掘得出来的一些数据。(我们知道StackOverflow.com上的数据是公开的,任何人都可以用来分析和统计,所以这篇论文的真实性是有的)

数据采样和清洗条件如下:(数据全量是1694981用户,平均年龄30.3岁)

  • 15-70岁之间的用户(这年龄段的用户被称做“Working age”),当然,有很多用户没有输入年龄,这些用户都被过滤了。
  • 用户在2012年内都回答过问题。因为StackOverflow在2012年对问题和答案的质量要求得比以前高了一倍,所以更能反映程序员的真实水平。
  • Reputation声望在2-100K之间。(注:StackOverflow的用户Reputation是得到社会认可的,在面试和招聘中是硬通货币。比大学的学分更有价值)

上述的条件一共过滤出84,248名程序员,平均年龄:29.02岁,平均Reputaion在1073.9分。

年龄分布图

下面我们来看一下他们的年龄分布图:我们可以看到程序员年纪的正态分布(高点在25岁左右,但是中点在29岁左右)

能力和年龄分布图

然后,计算每个人每个月的Reputation,这样可以找到这个用户的真正的活跃时间,这样便于计算这个程序员的真实能力。(总声望 / 活跃时间),可以得到他平均每个月得来的Reputation。

我们来看看程序员的能力和年龄段的分布图:(你可能会大吃一惊)

上图中我们可以看到,程序员的能力在从25岁左右开始上升,一直到50岁后才会开始下降。所以说,程序员吃的不是青春饭。只有码农,靠蛮力,用体力而不是用脑力的程序员才是吃青春饭的人。

年纪大的人是否跟不上新技术

论文的作者分析了Tag,用了最近5年内比较流行的技术Tag,然后用了一套比较严谨的算法来查看那些所谓的“老程序员”是否在新技术上跟上不了,所谓跟不上,也就是这些老的程序员在回答这些新技术上并不活跃。所谓老,就是37岁以上的程序员(就是我现在的年纪)。

得到了下表:可以看到,老程序员和年轻的程序员对于一些新技术的学习来说也是差不多的,甚至有些项还超过了年轻的程序员。

结论

论文的结论是:

1)程序员技术能力上升是可以到50岁或60岁的。

2)老程序员在获取新技术上的能力并不比年轻的程序员差。

我的一些感受

最后,我说一说我的一些感受:

  • 这些年来的对于外企和国内感受—— 国外牛B的IT公司的工程能力并不见得比国内的要强多少,但是国外那些NB的IT公司的架构和设计能力远远超过国内的公司,最可怕的是,那些有超强架构和设计能力的“老程序员们”还战斗在一线,这些战斗在一线的老鸟的能力绝对超过100个普能的新手。
  • 对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说,对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员所以,并不是编程编到30岁就玩完了,而是编程编到30岁才刚刚入门。这些不合格的程序,整天BS这个不好,那个不好的,而且喜欢速成,好大喜功。
  • 我是一个奔四的人了,编程就像登山一样,越往上爬人越少,所以,在我这个年纪还有想法,对编程还有热情的人不多了,基本上都是转Manager了。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量,如果还有其它这个年纪和我一样的人,求交往

(全文完)


关注CoolShell微信公众账号可以在手机端搜索文章

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
好烂啊有点差凑合看看还不错很精彩 (158 人打了分,平均分: 4.91 )
Loading...

编程能力与编程年龄》的相关评论

  1. 昨天还想着这些事。

    我觉得现在很多年轻的程序员基本都是混日子的,对技术缺乏基本的好奇心,所以真心喜欢编程的就算岁数大了也不会比这些人差,而且这些人基数还很大。

  2. 为这篇文章冒个泡,33了,还在写程序,估计会一直写下去。我觉得“你是一个出色的程序员”要比“你是一个开发总监”要有意义的多。

  3. 可是在国内来说大形势就是这样,程序员没有管理的赚得多。要是有国外那样的待遇可能很多人就不那么想了吧

  4. 适用于整个工程师团体。工程领域是需要经验积累的。
    小弟我是做IC设计的,不是程序员,不过经常写verilog,也算是一种代码。
    家父70有余,是一名机械工程师,退休后抛弃绘图板、自学电脑CAD,目前还奋战在设计和生产一线,成果累累,也算是对此文观点的一种诠释吧。

  5. 编程编到30岁才刚刚入门,很赞同这句话,那些嚷嚷程序员“吃青春饭的人”,总喜欢把自己是程序员挂在嘴边,其实他们应该算做伪程序员。

  6. 皓叔。。 是正态分布 不是正太分布。。。。。

    还有,我记得正太分布 好像 跟简单的点分布的情况 并不是一样的。在数学里面的意义不同哦~

  7. 我觉得其实国内说程序猿是吃青春饭多半指的是国内程序猿工作环境恶劣,无休止的加班,过了30岁,身体上吃不消了。。。
    而国外工作环境应该不是这样吧

  8. 表示支持.
    所谓编程到30岁,也和国内有些公司和人不太重视技术能力有关系.
    觉得编程是件很简单的事,其实就是码农思想..

  9. 年纪大的人是否跟不上新技术
    ——其实是经验多的人,容易看到新技术的不足之处,而自己的原技术明明还能用的很好,为什么放弃?

    青春饭
    ——部分原因是国内进入这个行业晚,最早的人都还没到这个年龄,自然见不到50岁的程序员
    ——另一个原因是国内的认识:干活的总是比不上管理的,无论地位还是待遇
    ——这个认识又源自另一个国情:接到项目,靠的不是技术,而是关系。所以,技术不受重视

  10. 你这个年纪的人是编程在中国成为大众饭碗后第一代的程序员,所以这些问题应该对你们有一些考验,如果你们这个年龄段的人对这个问题作出很多的榜样和亲身的回答,对后辈有理想的程序员们肯定有标杆和引导作用,这些编程是青春饭的言论会慢慢消失的。编程这个行当在咱们国家出现时间不长啊,没有人干到60岁,再加上好像在社会的眼中我们是每天都加班的,所以,大家对前途有一些疑惑是正常的,不争论,行胜于言。我们必须做到,才能给大家信心,光说没有意义。加油!

  11. 恩,任何一份事业都是需要倾全力,甚至一辈子才能做好的。不过,国内因为外部环境的影响,有时会让人身不由己吧。

  12. 非常好!年龄越大经验越丰富,编程能力不会下降,只不过有效时间缩短一些,例如不能熬夜。本人已四十有余,还经常写程序。

  13. 任何新事物出现肯定有它的争议存在的,但是肯定有一些引领潮流的伟大人群,争议会在事实面前慢慢消失,但是我不用去和他们争论什么,这没有意义,让他们看到,他们才会相信。

  14. 大龄的程序员有价值,但不一定在编程能力上。
    能力有很多方面,在stackover flow上体现出来的,一般是经验的老道和表达写作能力。这些必然随着年龄增长。而其他如工程设计的能力,正确编程的能力并没法在这个调查中体现。

  15. 我们公司老总就是40多点,他自己还搭框架,写程序,很多编程的事亲历亲为,,知识涉及面相当广,,特佩服他!

  16. 好的程序员不受年龄的影响,差的则必然。现实中差的程序员占大多数,他们最喜欢讨论的就是这个话题。

  17. 我老婆曾经也质疑过程序员的工作是否会长久,当时我就告诉她,程序员的工作和医生一样,越老越有经验,能力也会越强,不用担心。反而是转了Manger的程序员才是需要担心的,一旦下岗,比程序员找工作的难度大多了,毕竟某专业的工程师是不能被替代且必须的,而管理者却是可代替的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注