程序员所积累的编程知识在十年后将有多少变得没用?
共 2961字,需浏览 6分钟
·
2024-07-10 17:00
在瞬息万变的编程世界里,知识更迭速度之快令人咋舌,程序员所积累的编程知识在十年后将有多少变得没用?
如何才能不被时代抛弃,是每个程序员都需要思考的问题。
我认为,编程知识可以分为经验型知识和原理型知识,而经验型知识的贬值速度要快于原理型知识。
要验证这一观点,我们不必预测未来十年哪些知识将变得过时,而是可以回顾过去,观察哪些知识已经贬值或变得不那么重要。
以当今热门的Web前端工程师为例,我们可以清晰地看到两种知识的区别。
经验型知识侧重于具体的技术和操作,其价值会随着技术迭代而衰减。
1.浏览器兼容性和系统兼容性知识
包括对IE5.x至IE7的兼容性技巧,特别是CSS hack,不同DOM级别的API兼容性,以及异步请求技术(如AJAX/CORS)的兼容性问题。还有iOS 5/6和Android 1.x至3.x浏览器中的各种兼容性问题,这些经验可能随着时间推移而变得不再重要。
2.技术演进导致的淘汰方案
比如曾经流行的table布局方式,HTTP 1.x协议,以及早期的缓存和离线应用技术方案,都可能因为技术进步而被淘汰。
3.平台绑定的开发经验
比如针对特定平台如Windows RT的前端开发解决方案,或者特定平台扩展的开发,以及特定手机品牌浏览器的兼容性问题处理。
4.第三方库/框架的使用
比如对ExtJS或AngularJS 1.x等框架的API使用经验,这些框架可能随着新技术的出现而变得不那么流行。
侧重于对技术本质和原理的理解,其价值更加持久,能够迁移到新的技术领域。
1.业务模式选择
能够根据不同的业务需求选择合适的业务模式,是架构设计的基础,不会随着技术更迭而改变。
2.深入理解核心技术
比如在NodeJS等技术的研发过程中,对HTTP协议、Stream、系统调用、文件系统和进程管理等有深刻理解。
3.编程语言理解
比如在研究ECMAScript及其衍生语言时,对语法、语义和编程方式有深入的理解。
4.框架设计与模式
了解框架设计原理,并在业务开发中掌握各种设计模式的工程意义。
5.工程化思维
比如在前端工程化过程中,培养工程化思维,理解构建、持续集成和DevOps的真正意义。
6.软件开发实践
形成良好的软件开发实践习惯,如TDD(测试驱动开发),积累协同开发和开源代码维护的经验。
当然,原理型知识也并非一劳永逸,它也可能会被颠覆性的技术革命所淘汰,就像图灵机出现后,很多计算理论都需要重新构建。
但相比于经验型知识,原理型知识的保质期无疑更长。
除了上述这些,算法/数学能力等硬知识的重要性更是不言而喻,它们是构建强大编程能力的基石,也是最不可能过时的知识。
点击名片回复『编程』
即可获取1000+编程学习手册