共计 1148 个字符,预计需要花费 3 分钟才能阅读完成。
一级烧烤品鉴师
2024-07-13 08:00:00
浏览数 (474)
在瞬息万变的编程世界里,知识更迭速度之快令人咋舌,程序员所积累的编程知识在十年后将有多少变得没用?
如何才能不被时代抛弃,是每个程序员都需要思考的问题。
我认为,编程知识可以分为经验型知识和原理型知识,而经验型知识的贬值速度要快于原理型知识。
要验证这一观点,我们不必预测未来十年哪些知识将变得过时,而是可以回顾过去,观察哪些知识已经贬值或变得不那么重要。
以当今热门的 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(测试驱动开发),积累协同开发和开源代码 维护的经验。
——
当然,原理型知识也并非一劳永逸,它也可能会被颠覆性的技术革命所淘汰,就像图灵机 出现后,很多计算理论都需要重新构建。
但相比于经验型知识,原理型知识的保质期无疑更长。
除了上述这些,算法 / 数学能力等硬知识的重要性更是不言而喻,它们是构建强大编程能力的基石,也是最不可能过时的知识。
原文地址: 程序员所积累的编程知识在十年后将有多少变得没用?