我们作为开发者,需要时刻跟上技术的步伐。我们每天都在学习各种编程语言、框架、库,似乎我们知道的工具越多,我们的生活就会更美好。
我们乐于在Angular、React、Vue、Riot、Ember、Knockout之间辗转腾挪,学习一个又一个新的框架。
但我们其实在浪费时间。
我的导师曾经给我上了一课:
导师:"艾德,你在做什么? "
我(很骄傲地)说:"我在看一本关于构建现代Java应用的GWT书。"
导师:"为什么?"
我:"作为一个Java工程师,我需要跟上时代的步伐,GWT现在最流行啊"
导师:"你之前看的什么书?"
我:"一门长达500页的Apache Tapestry书,当年Tapestry最流行"
导师:"现在还流行吗?"
我:"不流行了,被GWT替代了"
导师:"你还能用Tapestry的技术去构建应用吗?"
我:"不,现在已经没人用了"
导师:"Tapestry相关知识帮助你更好的理解GWT了吗?"
我:"没有,但我看到了一些相同的设计模式"
导师:"这些设计模式,能帮你解决现在遇到的问题吗?"
我:"当然,很多啊"
导师:"技术来了又去,仿佛潮起潮落,但是他们有很多相同之处。你应该调整自己的时间优先级,花80%的时间在基础和原理上,20%的时间留给框架、库和工具,而不是80%的时间都用在研究框架的使用上。"
我:"额...,只花20%的时间在框架、库和工具上?"
导师:"是的,当在工作中遇到具体的问题,你再学习他们。"
我:"谢谢"
导师:"你以后会更感谢我的。"
这个建议改变了我的一生。我书架上关于框架的书逐渐从50本减到0本,真正的解放了自我!
我买了一些真正的长青书(不随技术的更迭而消失的书),这些书占据了我80%的学习时间:
我只学当前最流行的一门技术,按照Lindy效应的建议,我选择了Spring框架:
对易损的东西来说,每多活一天,都会缩短其寿命;相反的,对于不易损的东西来说,每多活一天,都将更拉长其存在寿命
一门技术在市场上存活的时间越久,越值得投资。
不要盲目的学习最新的技术,他被淘汰的风险极高。
学习等待,时间是最好的顾问,时间会告诉你哪一个技术值得学习。
时光荏苒,转眼10年。在此期间,我已经做过大大小小50多个项目,多亏这个建议,使我学到的每一个知识都能应用在不同的公司、团队和领域。而且现如今依然适用,我没有浪费时间!
当你看透编程的本质,你就会发现不同项目有很多相同之处:
· 编程语言不同,但编程思想相同
· 使用框架不同,但设计模式相似
· 开发者不同,但是处理问题的逻辑相通
请记住——框架、库和工具如每天东升西落的太阳,来了又去,但是我们的时间却一去不复返。
请将你的时间花在那些不随语言、框架、工具变化而失去魅力的编程能力和思想上吧,这会让你终身受益。