我们是程序员, 我们需要紧跟最新的技术,每天都学习新的编程语言,框架,类库,对于最新的工具,我们学得越多越好。
能够紧跟Angular, React, Vue, Riot, Ember, Knockout这些最新的东西是一件有趣的事情。
但是,我们在浪费时间!
时间是我们最宝贵的资源,时间是有限的,不可再生,你也不能购买更多的时间。
技术界就像时尚界,以“光速”在变化,我们必须跑得飞快才能跟上, 这种竞赛没有赢家,因为竞赛没有尽头。
我的导师曾经给我“上过一课”:
导师: “爱德华,你在做什么?”
我(很自豪): 我在读一本书,是关于使用GWT构建现代的Java应用程序的。
导师:“为了啥?”
我:“作为一个Java Developer,我需要紧跟最新的潮流,GWT就是这样的一个东西。”
导师:“GWT之前你还读过什么书?”
我:“一本关于Apache Tapestry的500页的书。TapeStry当时是流行的东西。”
导师:“Tapestry 现在还流行吗?”
我:“现在是GWT更厉害了。”
导师:“你能复用Tapestry的技能来解决当前的问题吗?”
我:“不行,现在没人用它了。”
导师:“Tapestry能让你更好地理解GWT吗?”
我:“不,不行,但是我看到了一些重复的模式。”
导师:“那是设计模式,它们能帮助你解决当前问题吗?”
我:“可以。”
导师:“新技术来了又走了,但是有很多思想是共通的。 你要设置正确的优先级,把80%的时间投资到基础知识学习上,把剩下的20%留给框架,类库和工具。”
我:“嗯...只有20%?”
导师:“是的,你可以在实战中再去学习那些细节。 ”
我:“谢谢。”
导师:“你以后还会感谢我的。”
这个建议改变了我的生活,我把我书架中关于框架的书都拿掉了,罪恶感从50本书降到了0本,真是个极大的解脱。
我买了一系列“永葆青春”的书,这些书占据了我80%的学习时间:
《程序员的修炼之道》
《代码整洁之道》
《程序员的职业素养》
《领域驱动设计》
《测试驱动的面向对象软件开发》
《持续交付》
(注:这里列出的基础的书还不够多啊,比如著名的CSAPP就不在其中)
我也购买了当前热门技术的书, Lindy效应表明Spring Framework应该是很好的投资:
技术的未来预期寿命与其当前年龄成正比。每增加一段生存期就意味着更长的剩余寿命。 技术在市场上的时间越长,投资就越安全。
不要急于学习新技术 - 它很有可能死亡。
时间将显示哪种技术值得投资。时间是你最好的顾问。学会等待。
从那以后十年过去了。我帮助了50个不同的软件项目。
感谢导师的建议,我学到的一切都可以在公司,团队和领域之间移植。我的知识今天仍然有用,我没有浪费我的时间。
所有项目看起来都不同,除非你能看到表面以下:
编程语言是不同的,但设计思想是相似的。
框架是不同的,但相同的设计模式闪耀在其中。
开发人员是不同的,但与人打交道的规则是一致的。
记住,框架,库和工具来了又走了。时间很宝贵。
把你的黄金时间投入到那些基础的、不随时间变化的、可移植的技能中当中,这些技能将会永远有价值。
Microservices frameworks Evolutionary Architecture
New programming language Clean Code, Design Patterns, DDD
LeSS, SAFe Lean manufacturing principles
Hystrix Fault Tolerance Patterns
Docker Continuous Delivery
Angular Web, HTTP and REST