框架如兵器,十八般(远不止十八)兵器我未必样样会,但我们得有一样能力,如张无忌学太极剑一样,临敌学剑还能胜之。 这里面的诀窍不在学习招式,好比你也许觉得你 Hibernate 用法掌握的炉火纯青又如何,一上线数据库却先崩溃了。 这里的本质还在理解关系(SQL)数据库,现在也许还需要加上对特定非关系(NoSQL)数据库的原理与机制的理解,甚至包括对 O/R 映射模型的本质理解。
  所以,基础像内功、框架如兵器、运用为招式,存乎一心、运用之妙,三者融会贯通,则已可在 Java 世界纵横一方。 如上所述,基于此我们有了第二张地图。

  第三张,延伸图
  而第三张图,我已无法再给出一个我认为稍具普适性的建议。 到了这个阶段每个人的成长发展方向会受其环境和实际情况影响,我以自身为例稍加说明。 进入互联网公司后这几年,Java 技术的发展开始从 J2EE 容器化的单一应用向 SOA 和微服务发展变迁。 规模化的分布式系统成为常态,所以我更多的相关工作便集中于此领域。 一方面纵深挖掘继续补全知识盲区,比如分布式程序的基础是 RPC 调用,RPC 的本质是网络加对象序列化。 相应去彻底搞懂 TCP 的原理,Unix/Linux 下网络编程模型,几种不同的网络 IO 模型。 然后再上升到 Java 基于此提供的网络编程模型,BIO(阻塞)、NIO(非阻塞)和 AIO(异步IO),并结合实际工作实践去深入理解。
  在这个过程接触了大量不同的 RPC 技术,从 Java 自带的 RMI 到 WebService 技术规范。 之后一些更简洁、性能更强大的 RPC 框架层出不穷,如 Hessian、Thrift 等等。 不同框架的本质依然如一,随着服务化的发展基于 RPC 框架又进一步衍生出提供额外增值功能的服务框架,如阿里开源的 Dubbo。 随着工作实践的深入,向下有可能又会进入 JVM 层面去分析对象的内存使用,线程的调度运行和延时情况。 这个阶段发挥核心作用的依然是前面说的快速学习并应用于工作实践的能力。
  与纵深的另一面是横向扩展,随着工作性质的变化也可能需要更宽广的技术知识面。 比如成为架构师后,对技术知识面的广度要求某些方面会更高。 有方法的技术学习和涉猎技巧让你能更快扩张技术宽度,站在更高维度来审视不同的技术方向和产品,有效的做出合适的技术决策。
  在这个阶段的每个人都可能面临不同的环境和实践,所以这阶段形成的地图会千差万别。 下面是我的第三张图,仅供走在 Java 征途上的同行者们参考。 而按这千差万别的地图走过的路径,正巧构成的你。

  即使你现在还没地图,但也别茫然而永远的驻足不前。 保持前进总会找到路,其实我是这么过来的,一直以来,不敢止步。