程序员的编程能力与编程年龄

发表于2017-06-21
评论17 7.6k浏览

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

 

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

 

有关年龄和编程能力的论文

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

 

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

o    15-70岁之间的用户(这年龄段的用户被称做“Working age”),当然,有很多用户没有输入年龄,这些用户都被过滤了。

o    用户在2012年内都回答过问题。因为StackOverflow2012年对问题和答案的质量要求得比以前高了一倍,所以更能反映程序员的真实水平。

o    Reputation声望在2-100K之间。(注:StackOverflow的用户Reputation是得到社会认可的,在面试和招聘中是硬通货币。比大学的学分更有价值)

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

 

程序员年龄分布图

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

说明: QQ截图20170311141437

 

编程能力和年龄分布图

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

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

说明: 511

 

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

 

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

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

 

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

说明: 1554

 

论问结论摘要

论文的结论是:

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

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


我的一些个人感受

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

o    这些年来的对于外企和国内感受—— 国外牛BIT公司的工程能力并不见得比国内的要强多少,但是国外那些NBIT公司的架构和设计能力远远超过国内的公司,最可怕的是,那些有超强架构和设计能力的“老程序员们”还战斗在一线,这些战斗在一线的老鸟的能力绝对超过100个普能的新手。

 

o    对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说,对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员所以,并不是编程编到30岁就玩完了,而是编程编到30岁才刚刚入门。这些不合格的程序,整天BS这个不好,那个不好的,而且喜欢速成,好大喜功。

 

o    我是一个奔四的人了,编程就像登山一样,越往上爬人越少,所以,在我这个年纪还有想法,对编程还有热情的人不多了,基本上都是转Manager了。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量,如果还有其它这个年纪和我一样的人,求交往

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

18个评论

  • 铁十字 2017-06-21 1楼
    30岁出头,在B,但是感同身受完全同意。B之所以近年越来越不行,和这些方面有很大关系。
  • □ ⑧⑩哖笩 2017-06-21 2楼
    静静滴听着菜狗吼
  • Jeff4 2017-06-21 3楼
    说的好,但是这毫无意义不是编程能力不行了,而是国内的超强加班环境对大龄一点的人来说太残酷了,除了身心容易累之外,还有家人需要陪伴
  • οоОО○ 2017-06-21 4楼
    看看华为的清洗。。。
  • 月夜の蓝堤斯 2017-06-21 5楼
    说是青春饭是因为国内加班太严重了。给出几个选项:A.我几乎不用加班  B.一个月也许会有几天要加班 C.每周会加一两次 D.难得可以不用加班。你觉得选哪个的多?到30岁后基本已经成家,有的也有小孩了。这时候不可能为了工作不顾家庭吧。所以不能成为能和老板理直气壮的说我的要求就是不加班的那种牛人的话,转管理或者转换也就成为了必要的选择。
  • 形印声传 2017-06-21 6楼
    握手
  • 浪子小四 2017-06-21 7楼
    30才是编程刚刚开始,天才很容易转行,吃苦耐劳,修炼内功才是王道
  • 地狱の狂想曲 2017-06-21 8楼
    我能说一句不怎么好听的嘛,程序员只要自己能力过硬,年龄只是加分项,华为清洗的原因也不过就是,年龄大的程序员的工作,年轻的程序员一样可以做,那为什么不替换年轻的,如果只是一味的做流水线的程序员,你在20岁的时候有竞争力,到了40岁那就是淘汰的,在哪里都会这样的。
  • samson 2017-06-21 9楼
    总拿鬼佬那一套,在国内是行不通的。不排除又老又牛逼的人继续的吃香,但大部分中等中年素质的都被下岗了。难道只有牛逼的人越来越好的赢家通吃?关注一个职业,应该关注中间的大众部分,大部分30+40+并不能带来比20+更大的财富
  • 电气羚羊 2017-06-21 10楼
    思考力
  • 学会C++并不能代表是全部, 理论性知识固然重要.但编程比的不是会多少种语言,而是思想高度.是视野的开阔.才能摆脱频频遇瓶颈的事情. 由始至终都没感觉这是一口青春饭. 只是不专业的人太多,才传出这句话罢了. 只要努力,所以问题都不是问题,只要不死人,都是小事儿.
  • 知哥 2017-06-21 12楼
    点赞
  • 咹ご静` 2017-06-21 13楼
    你说的很有道理我也很赞成,但国内行情不得不考虑,无休止的陪加班,对技术也不是很追求的公司。这都是事实存在的,只发表意见,欢迎批评~
  • 无心大师 2017-06-21 14楼
    我属于半路出家,28岁才入行,现在已经36了。码海无涯,每天都要学点新东西,不为别的,只是喜欢!
  • 叶辉 2017-06-21 15楼
    问题的关键在于:国内的程序员好比是工地的民工,干的是脏活累活钱还少,根本不受尊重,谁有机会都会转管理,钱多活少地位高。