链式的方式
知识的锁链不是胡乱连接的,环环相扣的方式很有讲究。常见的方式有两种:
- 第一种是自顶向下、层层关联,打通一项技术的领域分层。
- 第二种是由表及里、层层深入,打通一项技术的细节分层。
领域分层案例
以 Netty 网络编程为例,相关领域一共可以分为 6 层,
要么上层依赖下层,比如 Netty 依赖 Java 网络编程,Java 网络编程在 Linux 上又依赖 Linux 提供的网络编程接口;
要么下层是上层的应用和实现,比如 TCP/IP 是原理,而 Linux 网络调优和工具是 TCP/IP 的具体应用。
它的领域分层图如下所示:
注:
- 以上图示仅为示例,你需要根据自己的实际工作情况来分析。如果你是在 Windows 平台上做开发,那么上图“操作系统”这一层就要改为“Windows 网络编程”,“工具 & 配置”这一层就要改为“Wireshark”之类的。
- 具体分层关系并没有业界统一的标准,比如“工具 & 配置”这一层,如果你认为应该放在“计算机网络”那一层的上面,其实也是可以的。
细节分层案例
以 Netty 网络编程为例,技术细节可以分为 4 层,它的细节分层图如下所示:
链式学习法的步骤
明确一项技术的深度可以分为哪些层
画出“领域分层图”和“细节分层图”。尝试画图本身就是一个梳理结构、强化认知的过程。
明确你自己要学到哪一层
学得太浅,达不到提升深度的目的;学得太深,又会耗费太多的时间和精力。
明确每一层应该怎么学
- 在领域分层图中,越往上越偏应用,实际工作中用得越多,越往下越偏原理(包括相关的工具和配置),实际工作中用得越少。所以总的原则是,在上层投入更多时间,更关注细节和熟练使用,在下层投入相对少的时间,更加关注原理和简单应用。
- 在细节分层图中,你需要详细地学习每一层。要注意的是,对于“实现源码”这一层,你不需要去掌握每一行源码,只要掌握关键源码就行了,也就是和设计原理以及设计方案相关的源码。
两个优点
1. 促使我们主动提升
采用链式学习法,你就会意识到,使用一项技术完成了工作,并不意味着你就完全掌握了这项技术。你还需要把刚刚自己用到的技术作为切入点,画出完整的领域分层图和细节分层图,然后逐一攻破,这样才能提升深度,达到精通水平。
2. 将知识和技能系统化
明确知识和技能点之间的关联关系,有助于更好的理解和应用这些知识和技能。
只有使用链式学习法,你才能系统地了解到这些关联的知识和技能,以及如何将它们串起来。