编程能力与编程年龄
程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到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都是虚的,公司没了什么都没了,只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量,如果还有其它这个年纪和我一样的人,求交往。
(全文完)
(转载本站文章请注明作者和出处 宝酷 – sou-ip ,请勿用于任何商业用途)
《编程能力与编程年龄》的相关评论
内容挺有意思的,结论也很振奋人心。
不过由这个统计得出编程能力随年龄的变化的判断是不是不大严谨?
因为正如你最后一段说的,很多人年纪一大就转管理了,留下的都是真热爱编程的,那么从逻辑上来说,那些因为年纪大而编程能力下降的人没被统计进去了,从结果上来看年纪大的人的编程能力被高估了。
借用一个专业名词来说就是“幸存者偏差”。
没有幸存者偏差,技术好,有老板赏识,才能往上升级。年纪一大转管理的可不是什么编程弱手。年级大还编程的也不是什么编程强手
@信言
刚刚也有同样的想法,回复后,回头看到你这个回复,想到一块儿去了,哈哈
请问楼主问什么不更新了?
非常有共鸣,我39岁,经历了两次创业公司的失败后,积累了足够的经验,正在能创造价值的时候,猎头找了好几家大公司也不给机会了,反馈失败的原因是年龄。
除了年龄,HR对于有创业经历的人也比较忌惮
我29岁想入行,犹豫中
瞬间感觉我25岁还是可以开始学习的,还不算晚 祝我的开发之路早日实现
新人路过,对于我这个现在25岁才刚刚干了1年的iOS工作者看了您这篇文章,感觉自己起步还不算太晚。多谢博主的心得分享。
当初看的一本C入门到精通,现在想想非常想吐槽,用了快两年的Linux,学习各种系统APIs,Glibc等等,到现在我觉得我都还不是特别了解C language,经验这种东西,就像调试,一个老手可能很快就看出问题在哪儿了,而一个新手却要调试很久。写出的代码水平也是同样道理。反正我是打算这被辈子搞编程了,而且是Linux相关的! 即便我60岁了,我也要看一些计算机方面的书籍,不然太无聊了。
83年程序员,偶尔和同学聚会,他们问我现在干啥,我答写代码,都说我苦逼。。。
希望中国技术氛围越来越好,让IT从业人员能从事技术到50、60岁~
@moses_zhang
82年开始编程的人飘过,主要从事CHROMIUM
国内一线公司有管理岗和专业岗两条并行的职业线,在专业线升到比较高的职级,收入不会比管理岗差,反而比管理岗少很多烦心事。
仍然战斗在第一线
30岁才开始编程的人求交往。:)
刚刚开始学js,因为发现我们到了一个不会编程就像不会英语的世界,会了编程,才能探索更大的世界!比如AI,比如MR,它才是新世代真正能够最大程度释放创造力的工具,所有掌握这种工具,并能随心所欲创造的人都是幸运的,这将是进入未来世界的门票,每个人都该学习Coding!永远不会晚!
刚刚毕业的同学都知道的常识,国内it环境与国外it环境天差地别,你拿国外it人员的分布情况,说中国的事,一看就是高人,你这算自我安慰吧,精神吗啡,早晚要面对现实的
LZ我真的不能同意你更多了!我想补一刀的是,在知识越丰富的情况下学习新知识只会更快。当然有些人的能力是不随年龄成正比的,比如你文章里面那群“浮躁”的人。
@成成
同30岁开始编程,期待能结个伴,手机号13961267869
82年编了若干年的人飘过。
“我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。”奇葩的是,我当初去应聘的时候,老板和我说的这个,没好意思当面喷,后面喷了不少。对我这种OCD脆弱的内心又是一个森森地打击。。。
可能很多人觉得coding吃青春饭是因为它比较费脑,年纪大了之后脑力精力下降。
19岁开始入编程这个坑我就觉得慢了,竟然还有比我晚的
很赞同作者的观点。踏踏实实地攀登编程技术的高峰,这不仅仅是工作,也是人生。
@ycnurld
你不上大学的么
奔三的CODING漂过,而且感觉对代码的追求没有止境,希望能向陈老师学习!
24岁才开始做编程的工作。
@mayreach
好吧,我也30开始学,
@Persi
同是24编程
@baybay
同为83的程序猿,刚招聘了两个93年的程序猿,赶脚他们除了经验不足外,技术已经没有多少问题,亚历山大啊,不知各位有什么打算
经验才是关键啊。
淘尽黄沙始见金。
技术懂点,不深,编程玩点,不多。30多了还在IT混。感觉编程能力还是一坨shit,进退两难啊!!
@ycnurld
我22入行都觉得有些晚了
确实,我现在快30多了,编码10多年,发现越编码越会发现自己很多不懂,特别是写库代码,写了个内存池,把C++构造和析构又重新理解了一遍
这种淘汰是真实的,但不能说转管理或转行的程序员能力就比留下继续编程的差.所以这应该不是幸存者偏差.@amberkaka
目前我快30了 等我40了 找您交往,目前还不够格 “Manager了。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬通货”我也一直这么认为 我选择DBA 就是因为即是做技术,又是做管理的(技术层面),不用疲于奔命的去做需求开发,有些闲暇时间写写脚本工具,看看内核代码,可以不断提高,抽象层次比较高可以不用接入业务,去留比较自由,管理服务器也单纯
说的好,
我过了40了,最近似乎工作也不如意似的,Oct 14离职待业了,
最近在学些linux shell,从最先安装Blue point linux时到2002年时用Turbo Linux(看Red Hat书),
后来2005年又装过、看过Red Hat的电子书,几年过去了都忘记了,现在再学习一下shell吧,有则用,没用则当娱乐吧,
我也想将这类兴趣爱好持续到60岁!
@两岸之间
敬佩 !
国内的环境的确不如国外,30多岁还在编程的人面试的时候会面临很多提问。虽然对编程还是很有兴趣,不得不转管理了。
说到底还是看个人。Live and learn.
刚30出头 也觉得编程刚入门 虽然不是菜鸟 但是离高手还很远。
非常反感到30岁多 非要做管理的想法。
今年40了,在项目组里算比较小的,最大的一个已经是70多的老程序员,仙风道骨,激情四射,人家玩的照样是前沿的技术栈,node, angular, blockchain. 这在国内是不可想象的。。
快40了,还在编写共享软件,定制开发。没有觉得年龄大,不好使。