我们是开发者,我们需要和技术与时俱进,我们每天学习编程语言,框架,库,我们知道越现代的工具,我们就越好 和 Angular, React, Vue, Riot, Ember, Knockout 保持与时俱进很有趣。但是我们是在浪费时间。 时间是我们拥有最珍贵的资源,时间是有限的,一去不复返。
科技和时尚一样,变化非常快,为了赶上他,我们需要飞速奔跑,这场比赛没有赢家因为没有终点。 然而我的导师曾经给我上了一课:

**导师:**Ed,你在干什么? 我(骄傲的):我在读一本关于如何用GWT构建现代Java应用的书。 **导师:**为了什么? 我: 身为java开发者,我需要跟上趋势,GWT算一个。 **导师:**在GWT之前你读了什么技术书? **我:**一本500页的Apache Tapestry,Tapestry算一个。 **导师:**现在Tapestry算一个么? **我:**不在是趋势了,GWT才算。 **导师:**你能再用Tapestry的技术来解决当前的问题吗? **我:**不,没人用了。 **导师:**Tapestry的知识有助于你更好的理解GWT了呢? **我:**没有,不过我在找一些共同的模式。 **导师:**这是设计模式,他帮你解决现在问题了么? **我:**是的,很多有用。 **导师:**技术来来去去,但是有很多共性,要合理得安排优先级,投资80%的时间学习基本原理(fundamentals),留20%时间学习框架,库和工具。 **我:**恩....仅仅20%的时间留给框架,库和工具? **导师:**是的,你在工作中解决问题的时候都会学到这些。 ** 我:**谢谢 **导师:**以后你会更加感谢我的

这条建议改变了我的生活,我把我书架上50%框架的书下架了,罪恶感从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个不同的项目,感谢这些建议,我学到的每一件东西都可以跨公司,团队,领域。我的知识依然相关,我没有浪费时间。 从表面看所有项目都不同:

编程语言不同。但是设计smell相似。 框架不同。但是设计模式相似。 开发者不同,但和人相处规则是统一的。

框架、库和工具来来去去。时间才是最宝贵的。 把你的黄金时间投资在可转移的技能。这样技能总是相关的。

记住:

微服务框架 -演进式架构 新的编程语言 -代码整洁之道, 设计模式,领域驱动开发 LeSS, SAFe - 精益制造原则 Hystrix  容错模式 Docker 持续交付 Angular Web, HTTP and REST

我的杂想: 候选人简历写的热爱新技术是不是一件好事?面试者平时时间分配到底怎么样?热爱旧技术也许是好事。 学习技术不一定学习原理?学习本质和解决方案。 编程语言本质?是不是要学习Programming Language Pragmatics和编译原理?是的 Redis是不是要学数据结构(效率),内存管理(存储),复制(可用性)?是的,就是一个持久化,高可用的内存数据存储。 数据库是不是必须要理解ACID的实现?存储引擎的实现?是的,更重要的是学习通用Database Architecture Great Ideas有虚拟内存,缓存,正则表达式,工作集 。 Great Priciples 通信,计算,记忆,协作,评估,设计。 知道为什么要用一个技术只是对技术理解的一种视角,但不是唯一,从工程角度知道为什么有助于理解问题域以及换种场景的灵活使用。消息队列是Bounded Buffer,排队论在计算机里面无处不在。两个系统间速度不一样时候,就会用到缓冲区。例如cpu与内存间的高速缓冲区。 Zookeeper? 协作 Mybaits?Data Access Patterns,JFinal? Active Record Spring? Bussiness Container SpringMVC?Web Controller
SpringCloud Gateway? Gateway + Locator Patterns J2EE Patterns.... ......


原文地址:https://sizovs.net/2018/12/17/stop-learning-frameworks/