作者:阿莱克西斯
链接:https://www.zhihu.com/question/321199799/answer/779270361
来源:知乎
很遗憾, 就答主在中国和美国的工作经历和观察来看, 程序员无论在哪里都是“青春饭”(注意引号, 友军先别开枪!). 但是,在你站在40岁50岁时候的自己这个角度来思考问题,从而害怕程序员是青春饭,自己被年轻人"干掉"的同时,你也要从另外一个角度(年轻时的自己的出路是什么?)来思考问题; 一个行业如果完全以年龄为衡量,以年轻为最高优先级,新入行的年轻血液立刻或者简单熟悉行业规则之后很快就可以替代上年纪的中年人,那么此行业一定是吃青春饭的,你可能觉得不好不稳定;那么考虑另外一个极端,以年老和资历为最高优先级,一个行业如果非常稳定,不混个10年20年完全混不出来,即使你天赋异禀入门也只能做小弟,被只是早来10年站住坑的混吃等死的平庸之辈压制10年20年才能出头;作为一个朝气蓬勃的年轻人,你不觉得绝望么? 当然世界是复杂的,没有行业是绝对看年纪的,即使是演艺圈这种世俗目光中的标准“青春饭”行业,也会有年轻人无法轻易战胜的“老戏骨”; 总会有特例的情况下我们用统计这个工具来下定义,那么在计算机行业,百分之多少的年轻人在刚入行3-5年内就可以替换掉百分之多少的老年“掉队者”呢? 很遗憾的是,就我观察到的现象来看,这个比率在计算机/程序员这个行业很高, 这也是我说程序员无论在哪里都是青春饭的原因;因为这是一个不断变革的行业,就我从业10年的经验来看,可以说几乎2-3年就有一次"工业***", 发生在这个行业的各个不同的角落: 从waterfall开发方式到敏捷的开发思想,再到Agile is Dead, DevOps的兴起… 从过程式的编程思想到OO的兴起,再到FP慢慢渗透到现代语言的各个角落…从RMI的失败,到WSDL和SOAP的兴起,再到RESTful… 从3层layer的单机构架,到SOA/ESB,再到SOA is Dead, 微服务兴起…从实体物理机器,到VM虚拟机,再到docker+Kubernetes这种轻量级容器的兴起… 从SQL和Oracle的霸业,到NoSQL的兴起,再到NoSQL转向NewSQL…从ActiveMq到SQS, Google pubsub这种完全用consistency换scalability的分布式队列,再到Kafka这种可以保证partition的strong ordering的分布式队列…从RDFS到OWL,再到现在利用deep learning的知识图谱建造,和knowledge graph embedding… 从管理大型机5000个cpu的网格计算,到把计算资源当作自来水一样即开即用的云计算从计算最多只能多线程的跑在cpu上,到hyperThread,GPU的大规模并行运算,再到TPU的大杀器…从雇佣专门的部署和运维管理团队,到现在的infrastructure as code,network as code… 从认为流系统无法保证consistency的初始storm和2014年才问世的Lambda Architecture,到4种可以一定程度保证end2end consistency的state of art的流系统(仅仅4年后lambda architecture就被Stream System一书的作者按在地上摩擦),再到提出流和batch/表有本质联系的google Dataflow模型… 即使是在很多人眼里还是新概念的"大数据", 也已经经历了Hadoop+MapReduce 到Pig/Hive这种高层模型,再到Spark, Flink的无数迭代了;甚至从手调openCL手调cpu优化,到现在的autoTVM… 就更不用说machine Learning特别是deep Learning的大发展, 强化学习, 甚至量子计算机这些前沿领域了… 想想6-7年前自己最拿得出手的技术: Design Pattern, OO, Hibernate, Oracle, , SOA+ESB, JMS/ActiveMq… 如果我现在还只是懂这些东西,我绝对会被熟悉云计算和各种分布式数据库的年轻人吊起来打… 然而我们也有自己的优势, 如果你愿意学习,学习的飞轮是会加速的,我刷一本类似ElasticSearch In action, Kubernetes In Action这种500页的简单技术书大概只需要5天的工作之余的时间, 通过对已有认知的的修改,对类似知识的归纳,我学这些东西比完全重建所有知识的人会快非常多;另外一个例子,我们组里的CV大神年纪比我还要大,但是他坐公交的15分钟的时间能刷一篇CV的论文,而我一般需要至少1-2天才能看完一篇;至于学习的飞轮的思考,我有一篇文章把自己想说的话写的很详细了=> 阿莱克西斯:书魔的学习方法-1:读书的飞轮,这里不在赘述; 计算机是奖励精英和努力的人的行业,它是青春饭, 给予年轻人以嘉奖,让你不会被平庸之辈用年纪和所谓"资历"压的不得翻身;然而平均的年轻精英(百年一出的天才到从年轻到年老都是爸爸,不适用于此讨论)却无法轻易战胜也冲在研究和学习第一线的“老学究”, 因为新知识很多时候对他们来说只需要学习一个增量即可,且很容易和他们的已有知识产生化学反应;如果你拥有天赋或努力中的一样, 或者2样皆有,那么你就可以在年轻时用新思想新技术打败90%的“不思进取”的前辈的同时,在老年用自己的丰富和见多识广的学识压制90%的年轻人; 给平庸的年轻人希望也就是给平庸的中老年人予绝望,反之亦然;而一个人,必定要在一生的舞台中中扮演两次这不同的角色…平庸而又毫无自知,毫不努力的自己,才是我们应该害怕的事情;