大家好,我是yes。
经常会有同学问我:“我感觉我的知识非常凌乱,该如何让自己的知识成体系?”
今天我们就来好好盘一盘这个问题。
话不多说,发车!

深度 VS 广度

每个人在想要开始认真学习的时候,一般都会在网上搜索,需要看哪些书,学习哪方面的知识,然后会找很多视频教程,或者买很多书,信心满满,打算大干一场。
其实有关计算机体系的基础知识面掰掰手指也就几种:计算组成原理、操作系统、计算机网络、数据结构。
基本上非科班出身的小伙伴都会缺少对基础知识面的学习,这个是基石,需要补上。当然科班出身的没学好的也很多,也需要补。
然后还需要学习:关系型数据库、非关系型数据库、常见框架、常见中间件。
这一点我相信大部分人都会学。比如MySQL、Redis、Spring、SpringCloud、RabbitMQ等等,因为这是日常工作上经常会使用的东西,所以都会主动去学。
还有一些语言我就不提了,这属于工具,工具用的溜编码效率才会高,但是也不能仅仅浮在语言表面,像 Java 你好歹也得了解下 JVM,比如看看周志明老师的《深入理解Java虚拟机》。
以上提到的这么些点都需要我们去学习。
然后问题就出现了:每个点都浅尝辄止还是死磕到底?
我建议的选择:雨露均沾,也就是先广度再深度。
其实不仅仅是计算机领域,在很多其他领域也都一样,你需要把你的知识面铺广,你才能有机会走的更远。
当你不知道一样东西的时候,你打破脑袋都想不到它。无中生有?不存在的!
同理,只有当你了解方方面面的知识,在遇到一个问题,或看一段奇怪的代码,你才能联想到那个知识点,才会有豁然开朗的感觉。
比如我之前写的 Dubbo 源码里面的一段奇怪代码,把一个 state 从 switch 里面抽出来单独成一个 if 判断:
没有相关的知识你想不到这会涉及到字节码的实现:if 和 switch 字节码层面实现的不同。然后再深入到 CPU 的分支预测。
没错,就这一段代码穿过了 JVM 到达了 CPU 执行层面的优化思想。你要是不知道这些,你压根就不会想到这种写法。
所以我们优先广度
前几天看周志明老师直播的时候,周老师提到了金字塔理论。
也就说我们的底部要广,顶部才会尖,先广才能尖。
有了广度知识的支撑,我们才有能力且更加高效、快速地深入。
究其原因是因为计算机体系的知识点是连通而不是分散的,你写的程序必定运行在硬件之上,必定受操作系统管理,必定要运用到各种数据结构与算法,绝大部分会涉及到网络通信。
所以我们不是无脑广,我们是选择性的广。当你广到一定程度会有一种感觉,一种从上到下通透的感觉。
然后你才有能力去选择一个方向深入研究,最终成为上面金字塔般的大神。

更高效的学习

明白了先广度学习之后,我们再来聊聊如果高效的学习。
系统的学习我推荐看书
但经常有同学说,为啥每次我看完一本书,然后就没有然后了,啥都没记住!
我抛砖引玉,介绍下我的看书方式。
我看书会看多遍。
第一遍快速浏览
虽说看目录可以得知书籍的大概知识点,但是几个字不可能涵盖一章的所有知识,所以我会快速的过一遍,知晓这本书讲述了哪些重要的知识,到哪个深度,一些重要的点我会先把书页折起来,电子版我会记录书页。
看完第一遍后,如果对我而言是毕竟陌生的知识点,我肯定会读第二遍。但一些毕竟熟悉的知识点我会判断是否值得继续看第二遍。
第二遍开始做笔记
如果选择看第二遍,我就会开始仔细的读,同时会记录笔记。
我不喜欢把笔记记录在书上,因为这样之后复习还得翻一遍书,效率很低。
我喜欢在在线文档上划分出各个知识点,然后会将不同书籍对同一个知识点的不一样的理解记录在一起,这很有意思,因为每个作者理解的角度都会有所不同,可以让你从更多的角度去理解这个知识点。
并且在复习的时候,我可以针对某个知识点快速找到所有相关的知识,这不香吗?
好了,没有第三遍,我一般读两遍这本书就不看了,因为精华都被我记录在笔记上了,复习的时候我只要针对笔记看就行了,舒服舒服。
所以记录笔记很关键。

输出

紧接着还需要输出,因为向别人说出来是不一样的
你在说出来的时候会发现自己的理解漏洞,会去查资料补上它。
你在说出来的时候会注意到细节,你会纠结用词,是用“一定”还是“大部分”?这有很大的差别,所以你会扣细节。
你输出的知识点会被别人看到,别人可能会质疑你,要与你击剑,这又会迫使你加深对这个知识点的理解。
在哪些好呢?我建议你在知乎上写。
知乎上程序员多,大神多,喷子多,人多就容易碰撞,让你成长更快。我个人觉得知乎上对知识细节理解类文章质量还是很高的,基本上很多都通俗易懂。
为什么不推荐一些对口博客呢?.....自行体会吧。

最后

当你有了广度并且有了输出,渐渐地你的知识体系就建立起来了,然后就可以往深度发展了。
不过要切记,塔尖不是一日而起的,唯有坚持
不要拈花惹草,当你学并发的时候就把并发学完,不要并发学学,Spring学学。
不要做朝三暮四的渣男
过段时间,我会推荐一波书籍,到时候可以参考看看。
对了,文中提到的CPU分支预测的文章:

我是yes,从一点点到亿点点,我们下篇见。
继续阅读
阅读原文