程序员所积累的编程知识在十年后将有多少变得没用?

一级烧烤品鉴师 2024-07-13 08:00:00 浏览数 (860)
反馈

在瞬息万变的编程世界里,知识更迭速度之快令人咋舌,程序员所积累的编程知识在十年后将有多少变得没用?

如何才能不被时代抛弃,是每个程序员都需要思考的问题。

我认为,编程知识可以分为经验型知识和原理型知识,而经验型知识的贬值速度要快于原理型知识。

要验证这一观点,我们不必预测未来十年哪些知识将变得过时,而是可以回顾过去,观察哪些知识已经贬值或变得不那么重要。

以当今热门的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(测试驱动开发),积累协同开发和开源代码维护的经验。


------


当然,原理型知识也并非一劳永逸,它也可能会被颠覆性的技术革命所淘汰,就像图灵机出现后,很多计算理论都需要重新构建。

但相比于经验型知识,原理型知识的保质期无疑更长。

除了上述这些,算法/数学能力等硬知识的重要性更是不言而喻,它们是构建强大编程能力的基石,也是最不可能过时的知识。

0 人点赞