作者: invalid s
链接:
https://www.zhihu.com/question/28432389/answer/40952657来源:知乎
著作权归作者所有,转载请联系作者获得授权。
这类谣传很难追根溯源的。
最早大概来自 8x ~ 9x 年代的第一代程序员。
这时候多半是一种自嘲。
那时改革开放没多久,国内 IT 业刚刚起步,教材、经典书籍什么的……还是别想太多了。
当时很多基础性的东西甚至是靠类似反编译之类手段逆向出来的。从现象反推原因,自然错漏极多(比如谭浩强著名的 i=i+i++错误,就属于这类问题),而且琐碎、不成体系。
比如,国内的编译原理教材,忘了是清华出的还是同济的,甚至连为什么需要终结符、终结符是什么、提出这个概念是为了解决什么问题等等都一字不提,直接就对着文法 high 起来了。
缺了这么关键的一环,这本书根本就不可能被人理解;老师懂还有可能给你补上;否则……你就当佛经背吧。而且是梵文音译版。
所以,当时搞技术,必须有一股钻劲,没有路也要硬琢磨条路出来——邪路都行,能达到目标就是正道。
这样学,这样研究,这样做,自然需要投入极大的精力;而且既然知识不成体系(当然了,反推嘛),后续任何新技术出来,学起来都非常非常吃力。
另外,当时管理手段落后,动辄“封闭式开发”——把整个项目组囚禁起来,吃住都在一起,一干就是几个月,项目不搞定就别想出来。别笑,真的,就这么简单粗暴。
学起来难,做起来难,工作方式……更难。于是他们自然就会抱怨,自嘲“年纪大就玩不动了”。
这大概就是最早的起因。
但这时,大家都知道这只是自嘲,根本没当回事——多新鲜,梁肇新、王江民这些超过 30 岁的“老家伙”,你找十来个小年轻捆一起,能赶上人家一个人的效率?缺乏基础,看两年你也插不上手,还是慢慢跟着学吧。
尤其是当时的学法……想达到那些三四十岁的老油条的水平,难啊。
————————————————————————————————
然后,随着和国外的交流越来越多、越来越深,国内 IT 业终于慢慢走近正轨了;软件开发也慢慢从“手工小作坊”开始,逐渐专业化、制度化了;国外教材、经典图书也开始被大量翻译、引入中国,我们终于可以从正确、成体系的理论开始起步了——理所当然的,基础越扎实,经验越丰富,接受新技术的能力就越强:废话,新技术就这种人创造的,没基础的还敢和经验丰富的比谁更内行?你以为还是过去眉毛胡子一把抓,追着变化疲于奔命的“黑暗时代”啊。
基础打牢了,玩再多花样,也是万变不离其宗;这个“宗”被了解的越深、掌握的越好,那些“变”就越不过是些“瞄一眼就知道个八九不离十”的东西——诸位不妨去看看业界知名的程序员们的博客,看看有几个新技术 /新概念,是能让他们不吐槽“不过是 XX 换了个名字”的。
但是,这样一来,业界主流不是该无可争议的“切换”成“程序员越老越吃香”了吗?
你看,理论成体系了,基础打牢了——真学懂了理工科的都知道,所谓“基础”,就是“只会更优化、更精确,但绝不可能被推翻”的东西;
新知识不过是旧理论的延伸甚至不过是变形;
即便有革命性的理论出来,那也不过是一个小小角落的升级,稍微注意下就过去了;
即使你年轻、精力旺盛、学习效率高、少走弯路;但你三年所学,怎么可能比得上我十年钻研的全面、深入?再快你也得 6 年吧;而这时我已经是十六年的积累……
科研领域,年轻人赶超前辈,那几乎是必然;
但工程领域,年轻工程师极少极少能做到老工程师的程度。
那么,为什么“程序员做不过三十岁”这个谬论,在这个背景下,反而成燎原之势了呢?