编程能力与编程年龄

编程能力与编程年龄

程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到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 ,请勿用于任何商业用途)

好烂啊有点差凑合看看还不错很精彩 (215 人打了分,平均分: 4.78 )
Loading...

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

  1. 感觉我就是其中的搬砖的,技术提高不上去,没有架构能力,只能填写业务代码,可又不想现在就离开这个行业(26岁,女)

    1. 在公司生产,是为了让你有足够多的金钱,去获取技术进步。比如买书,买台灯,买书桌,咖啡厅,以及一台适合学习的轻便电脑。

  2. 其实技术的沉淀就是这样,国内的大多数公司都太浮躁,人也太浮躁,太追求当前利益,也许是现实所迫吧,国内在技术道路上的发展真的是任重道远。

  3. 一直执着于技术,在软件业摸爬滚打14年了,越来越感觉到孤独,周边专注于技术的同事朋友越来越少。看到大牛的这篇文章,找到很多安慰,多谢多谢!
    “只有技术才是硬通货!” 喜欢这句话。。

    1. 没有志同道合的人,很寂寞吧。我还是个大学生,认识的同学里,只有我一个跳舞的,想跳舞的时候,拿音响,找个没人的地方,自娱自乐。

  4. 仅仅用一篇论文就想证明这个论点会不会太草率?作者是否也成为了只想呆在井底思维封闭而且想走捷径速成的人?

    1. 至少这篇文章提供的信息和背后的工作比你这条评论可靠得多,抖机灵没什么实际价值。

  5. 非常认可最后的总结,今年我30岁了,作为程序员,实话讲在我29岁的时候,才感觉入门。之前工作的6年都白过了。当过leader,后来发现并不适合我,以前对技术也不感兴趣,技术一直没啥长进,觉得就是为了工作挣钱。直到最近一年,我才发现,技术可以做很多事情,给我带来快乐。我也想把程序员进行到底。

      1. 个人理解:
        1. 使用的语言能比较熟练,各种语法能看懂
        2. 基本上你用的库和框架至少看过2个以上的源码,对基础原理有一定了解,能够从那种牛逼的开源库中吸取到大佬们的结构化编程思维,跟深入的理解数据结构和算法。
        3. 能理解各种协议,比如http,dhcp,h264等,如果看完协议能勉强用代码实现出来,比如,http 304时候服务端怎么处理的,dhcp的不同的包怎么策略解析,h264的数据怎么生成图像。

  6. 31岁的程序员,入行7个年头,.net开发一直都浑浑噩噩的的状态。目前正在转大前端,希望一步一个脚印从基础抓起。到退休还有30个年头,就一个方向,技术… 现在挺享受前端动了手就能看到效果的感觉

  7. 35 岁开始转行做程序员,之前只是某国企抄表员,会玩游戏,会安装 Windows 操作系统而已,五年前接触 Linux、Emacs、Ruby,才走向程序员的道路,你没看错,我不懂 C,不懂 C++,不懂 Java,真没时间这样从头学了,但一样可以做程序员,而且,无论从收入,或者职业经历来看,自诩是一个相当靠谱的程序员!

    希望给所有和我一样,半路出家,有志于做程序员的网友们一份信心,试过才知道,你可以的!

    1. 我85年的,31岁才转行做程序员,之前是做硬件维修的,只会装装wiondows系统而已,自学c语言后入行,又接触了通信协议,linux,make,cmake,gtk,qt等等,现在在学c++,不从收入,只从职业经历来看,自诩是一个相当靠谱的程序员!遇到过从业十年,但是不会用make,不会装linux系统,不爱思考,脑子愚笨的渣程序员,我觉得自己相当靠谱!

  8. 应该像你学习,程序媛,前辈很赞,不过在手机上浏览这个网站发现翻页这里有个bug,这是职业病吗?哈哈?

  9. 虽然我只是个工作两年的小菜鸟,但我一直坚持认为写coding是一辈子的工作,经验,知识的积累只会越来越丰富。看到前辈的文章,感觉心里10000个赞同。?

  10. 本人编程已十五年,有些不同意见与作者探讨:
    两个数据,一个显示编程人员平均年龄29岁,一个显示编程人员能力平均高值在50岁。
    从正态分布的规律来说,50岁的程序员数量应该远少于29岁的程序员,从我了解的数据来看,预计在1:10左右,国外最多1:5。
    所以从另外一种可能来看,应该是随着时间的推移,大部分程序员被淘汰或转行了,能留下来的继续干到50岁的程序员,一定是适合这个行业的精英,能力强也很正常,因为他们29岁的时候也是那十分之一。这个跟年龄大小无关,并不是说他们到了50岁就比30岁强了太多。
    我的个人结论:
    编程能力和编程年龄不呈正相关,程序员这个职业跟所有其它职业一样,没有特殊性。适合的可以干到老,不适合的迟早要淘汰

    1. 说的有道理,我也是看到了这点。不好的已经被淘汰了,剩下的当然说精英了。

    2. 我觉得作者的观点主要还是所处这个环境的初级程序员太浮躁了 有的还没继续向上求进 就已经在考虑35岁退休了….

  11. 大一新生,刚刚接触编程,向站长表示感谢。
    我相信你的文章能帮助很多新人进入程序世界,并坚持下去。

  12. 也要考虑幸存者偏差。不行的人离去,剩下的要么有才华,要么知道生存之道了。

  13. 耗子叔,我虽然不是你那个年纪,仅仅是25岁,但我很赞同你的想法,我觉得咱们编程是一项技术活(类似木工,类似医生),时间越久,技术越精道,对我来说,编程并不仅仅是一种赚钱的手段,而是一种自我价值的实现
    !!!

  14. 耗子叔,我想跟您说件事,我很喜欢你的这个博客的简约风格(没有广告充斥),我想要借鉴您的这个博客风格自己搭建一个(我不会去看你代码的,我只借鉴您的博客风格),希望能征得您的同意!

  15. 我也笃定了要将技术岗作为一生的职业。中国的这个观点人云亦云的太严重,而且我遇到的好多人他们本身那个脑子就不适合干编程这个工作。会语法就是程序员么?简直是笑话。那些干到30要转行的,不是脑子不灵光的就是一两年经验用了8-9年的。给自己找个台阶下而已。原来干程序干的乱七八糟的,干管理一样做事不得方法,只不过管理的东西不好量化衡量,好混罢了。我支持你,我觉得只有当我们这些真正热爱技术的人坚持用自己的例子去证明,才能逐渐把国内it圈的这种不正之风纠正过来。

  16. 74年的程序员,因为热爱,一直在坚持,在不断的学习中笨拙的前行,各位加油!

  17. 毕业11年,编程9年,中间做过2年家庭主妇,我认为自己31岁才算刚入门,有点顿悟的感觉,我想写代码写到70岁甚至更久,做些纯粹和实在的事情。国内的风气对技术人员不太友好,还是想努力学习扎实基本功、跟进新技术回到外企工作。

  18. 哥,我是一个工作刚刚一年的菜鸟程序员,但是我看这篇文章很激动。 看到你的回复我也特别想认识你,不知道可以么?我想知道如果要长期坚持做个好的软件工程师需要什么,能和你学习经验是我的荣幸。

  19. 钻研技术多年的迷茫30岁软工仔,正被短视近利的企业文化洗脑中,感谢你的这篇文章让我找回了初衷。

发表回复

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