经常听到有人说:“不要学软件开发,那行业更新太快,今年学的明年就没用了”。我不以为然。
另外也有一些人说:“软件行业像砌砖,就是用api和组件,学会拼凑即可,没有真正的含金量”,我也不以为然。
首先第一点:
所谓电脑软件行业技术更新快,是骗小孩的。电脑方面底层的东西才是需要长期学习的,学一辈子都学不完,特别是数据结构类。 新的技术都仅仅是底层的衍生和变化。看不到这一点,越学思路越乱。越学越难。
对真正的老专家来说, 不同的计算机语言没有太大差别,不同的框架间也没有太大差别。
我虽然不是专家,但是也感觉到通层的Android框架,ios框架和 spring,rails,grails,symfony,django,mean乃至于和unity,unreal都是一回事。
我也没法说,能达到这种“统一” 认识的的比例有多少,但是一般来说,开发时间达到10年的,重新整合数据结构的基础知识的话,应该可以达到这个档次。
近年来唯一比较新的东西是react和angular 2.0. 但是新仅仅新在网站开发上,在桌面软体上,这些方法都用了20多年了。
唯一真正需要关注的是3d和虚拟现实设计方式的普及。
至于数据分析和人工智能,更是没有新东西。
R语言在20年前的框架就是现在这个样子。SAS更是40年内没有大的变动。
所有一切本质都是图灵机,一切能做和不能做的事情,早在50年前就被搞清楚了。
所以读一本 “
The Art of Computer Programming”的第一卷(写于53年前),胜过读1000本流行的技术书籍。
其次第二点:
有英文出生的老一辈编程大师,在阅读中国的道德经,孙子兵法。孙子曰:“聲不過五,五聲之變,不可勝聽也。色不過五,五色之變,不可勝觀也。味不過五,五味之變,不可勝嘗也。戰勢不過奇正,奇正之變,不可勝窮也。”
这句话用在软件行业太合适不过了,软件行业真不是随便用用API而已,随便用用API,才是第一步。
软件行业的境界真的是天外有天。
笔者曾经遇到不用开发环境,不用任何IDE,只用文档编辑器就能做大项目的大侠,感觉是最高级别了。
等遇到根本连文档编辑器都不行用的,已经把UNIX,LINUX等东西装入大脑的更高级大侠,才知道自己的无知。
而这位大侠,和
Donald Knuth 等人相比,也仅仅能
Donald Knuth 50年前的水平。
而Donald Knuth本人,
The Art of Computer Programming一本书写了四卷,其中第四卷到现在为止都没有研究完。Donald Knuth今年78岁了。
所以,说软件行业发展太快,是没看到本质。
说软件行业太低级,是好高骛远。
(就本人接触到的层面,主要是有很多搞自动编程的PHD(流程图直接翻译为C++和JAVA),号称软件开发太简单,以后有时间我会专门写个贴)