当前位置: 首页 > news >正文

编程能力与编程年龄



程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到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岁左右)

StackOverflow-Analysis-01

能力和年龄分布图

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

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

StackOverflow-Analysis-02

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

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

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

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

StackOverflow-Analysis-03

结论

论文的结论是:

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

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

我的一些感受

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

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

作者:陈皓  转自:http://coolshell.cn/articles/10688.html

This entry was posted in 杂七杂八. Bookmark the permalink.

7 thoughts on “编程能力与编程年龄

  1. 不担心 says:

    同意,我的年龄跟你一样,也还在为自己的项目coding

  2. 边江 says:

    看到你这片文章,给我很大信心,因为我是从30岁才开始从事编程工作的,现在已经37了,但我觉得这个工作我至少可以做45岁。

  3. kevin says:

    一直做的事情都很杂,编程路上坑坑洼洼走过来,现在32了,交个朋友。QQ:1739829248

  4. kevin says:

    我是从事unity3d的开发工作,希望多交流!

  5. wangyel1 says:

    以前就因为这样的论调而放弃过,当然最主要的原因还是自己不坚定,但N多人都这么说的时候,就难免犯浑了。 然后多年之后才猛然惊醒,已经是30多岁了。过了最佳时间了么?或许是吧,但既然用了30多年的时间才知道应该怎么活,那剩下的就很明了了。 感谢分享

  6. 12121 says:

    说的好,国内太浮躁了,说直白点,可以山寨出手机,但没有能力设计不出手机,可能觉得只差这么一点点,就因为太浮躁,这一点点成为难以逾越的瓶颈。

  7. 李京波 says:

    我今年35岁了 之前有过编程基础 现在才刚刚开始学习unity 我一直有年龄这方面的顾虑 看了您的文章 说实话 对我信心大增 我把您的文章收藏并保存起来 每当心里再次出现小”波澜”的时候 就会拿出来看一看 真的是这样
    但是 我还是有点小小疑问 因为毕竟国内和国外形势不一样 换句话说 是否国内行情下 我们这些”大龄”it男 相对来说还是空间比较小呢 尤其是”大龄”+”刚刚开始起步”的”苦逼”们?
    期盼您的答复

from: http://blog.1vr.cn/?p=1394&cpage=1

相关文章:

  • Cocos2d-JS 快速入门_01 环境搭建(Mac Windows集合版)
  • MUI-几种页面打开方式
  • MUI-基础01
  • CSS 元素垂直居中的 6种方法
  • MUI多端发布开发指南
  • mui 浏览器跨域实现
  • ios网络请求报错:The resource could not be loaded because the App Transport Security policy requires the us
  • iOS 应用将适应新的的IPv6-only网络 -解决方案
  • iOS 开发怎么入门?
  • 如何在Mac OS X上安装 Ruby运行环境
  • iOS CocoaPods安装和使用图解
  • Github上600多个iOS开源项目分类及介绍
  • 使用CocoaPods找不到头文件解决方法
  • 用xib设置圆角,边框和UITextField的私有属性placeholderColor
  • 定制全局的导航栏样式
  • 【前端学习】-粗谈选择器
  • codis proxy处理流程
  • es6(二):字符串的扩展
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • js中的正则表达式入门
  • MYSQL 的 IF 函数
  • PermissionScope Swift4 兼容问题
  • 初识 webpack
  • 给新手的新浪微博 SDK 集成教程【一】
  • 强力优化Rancher k8s中国区的使用体验
  • 如何胜任知名企业的商业数据分析师?
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 小程序开发中的那些坑
  • 一道面试题引发的“血案”
  • 字符串匹配基础上
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 整理一些计算机基础知识!
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #1015 : KMP算法
  • (2)STM32单片机上位机
  • (7)STL算法之交换赋值
  • (libusb) usb口自动刷新
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (剑指Offer)面试题34:丑数
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .cn根服务器被攻击之后
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • // an array of int
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [bzoj1324]Exca王者之剑_最小割
  • [C]整形提升(转载)
  • [C++] sqlite3_get_table 的使用
  • [dfs] 图案计数
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle