写给技术人员:停止学习框架,要专注基础知识
作为一名开发人员,需要不停地学习新技术。那么,我们应该学习什么样的技术?关于这个话题,有着 15 年工作经验的软件工程师 Eduards Sizovs 写了一篇文章,让我们来看看他是怎么说的吧~
我们是开发者,我们需要掌握最新的技术。我们每天学习编程语言、框架和库。我们知道的工具越新越好。
但这一切都是在浪费时间!
时间是我们拥有的最宝贵的资源。时间是有限的,不可更新的,并且是你不能买到的。
科技就像时尚一样,它也在以光速变化。为了赶上时间的变化,我们需要跑得很快。这场比赛没有赢家,因为它没有终点。
有一次,我的导师给我上了一堂课。
导师:「Ed,你在做什么?」
我(骄傲地说):「我在阅读一本关于如何用 GWT 构建现代 Java 应用程序的书。」
导师:「为什么?」
我:「作为一名 Java 开发人员,我需要紧跟时代趋势。GWT 是我必须跟进的技术。」
导师:「在学习 GWT 之前,你读了什么技术书籍?」
我:「一本 500 页的关于 Apache Tapestry 的书,Apache Tapestry 也是需要学习的知识。」
导师:「那现在你还学习 Apache Tapestry 吗?」
我:「不了,现在我学习 GWT。」
导师:「那你能用 Apache Tapestry 相关的技术,解决现在遇到的问题吗?」
我:「不能,它已经不会被用到了。」
导师:「Apache Tapestry 技术能帮助你更好地理解 GWT 吗?」
我:「不,并没有,但我看到了一些重复的模式。」
导师:「这就是设计模式。它能帮助你解决目前的问题吗?」
我:「是的,很多都能。」
导师:「技术变了又变,但它们都有共通性。正确地设置优先级:你需要把 80% 的时间花在基础学习上,然后剩下 20% 的时间留给框架,库和工具的学习。」
我:「只有 20% 的时间留给框架、库和工具?」
导师:「是的,在以后解决工作相关问题的过程中,你随时都会学习到这些。」
我:「谢谢。」
导师:「你以后会更加感谢我。」
这一建议改变了我的人生。我把书架上所有和框架相关的书都移走了:从 50 本变为 0 本。多么大的改变!
我买了一套基础书籍。这些书占据了我 80% 的学习时间:
-
The Pragmatic Programmer
-
Clean Code
-
The Clean Coder
-
Domain-Driven Design
-
Growing Object-Oriented Software, Guided by Tests
-
Continuous Delivery
我还买了一本关于当前技术的书,学习 Spring 框架是一项良好的投资:
技术的未来预期寿命与其当前存在时间成正比,每一段额外的生存期意味着更长的剩余预期寿命。
技术存在的时间越长,学习它就越安全。
不要急于学习新技术——它有很高的消亡概率。
时间是最好的导师,它会证明哪些技术值得学习,所以请学会等待。
十年过去了,我经历了 50 个不同的软件项目。感谢这些建议,我学到的所有东西都可以跨公司、团队、跨领域使用。今天,我所学的知识仍然有用。我没有浪费时间。
只有深入研究项目的本质,你才会发现它们都是相似的:
-
编程语言是不同的,但设计是相似的。
-
框架是不同的,但设计模式是可以通用的。
-
开发者是不同的,但与人打交道的规则是统一的。
记住——框架、库和工具是会变化的。时间是宝贵的。
请将宝贵的时间花在可移植的技能上:
-
微服务框架进化体系结构
-
新的编程语言,干净的代码,设计模式,DDD
-
量少安全精简编码原则
-
高端、容错的模式
-
容器持续交付