当前位置:首页 > 公众号精选 > 架构师社区
[导读]经常会有同学问我:“我感觉我的知识非常凌乱,该如何让自己的知识成体系?”今天我们就来好好盘一盘这个问题。话不多说,发车!深度VS广度每个人在想要开始认真学习的时候,一般都会在网上搜索,需要看哪些书,学习哪方面的知识,然后会找很多视频教程,或者买很多书,信心满满,打算大干一场。其实...


经常会有同学问我:“我感觉我的知识非常凌乱,该如何让自己的知识成体系?”

今天我们就来好好盘一盘这个问题。

话不多说,发车!

深度 VS 广度

每个人在想要开始认真学习的时候,一般都会在网上搜索,需要看哪些书,学习哪方面的知识,然后会找很多视频教程,或者买很多书,信心满满,打算大干一场。

其实有关计算机体系的基础知识面掰掰手指也就几种:计算组成原理、操作系统、计算机网络、数据结构。

基本上非科班出身的小伙伴都会缺少对基础知识面的学习,这个是基石,需要补上。当然科班出身的没学好的也很多,也需要补。

然后还需要学习:关系型数据库、非关系型数据库、常见框架、常见中间件。

这一点我相信大部分人都会学。比如MySQL、Redis、Spring、SpringCloud、RabbitMQ等等,因为这是日常工作上经常会使用的东西,所以都会主动去学。

还有一些语言我就不提了,这属于工具,工具用的溜编码效率才会高,但是也不能仅仅浮在语言表面,像 Java 你好歹也得了解下 JVM,比如看看周志明老师的《深入理解Java虚拟机》。

以上提到的这么些点都需要我们去学习。

然后问题就出现了:每个点都浅尝辄止还是死磕到底?

我建议的选择:雨露均沾,也就是先广度再深度。

其实不仅仅是计算机领域,在很多其他领域也都一样,你需要把你的知识面铺广,你才能有机会走的更远。

当你不知道一样东西的时候,你打破脑袋都想不到它。无中生有?不存在的!

同理,只有当你了解方方面面的知识,在遇到一个问题,或看一段奇怪的代码,你才能联想到那个知识点,才会有豁然开朗的感觉。

比如我之前写的 Dubbo 源码里面的一段奇怪代码,把一个 state 从 switch 里面抽出来单独成一个 if 判断:认真谈谈如何建立知识体系没有相关的知识你想不到这会涉及到字节码的实现:if 和 switch 字节码层面实现的不同。然后再深入到 CPU 的分支预测。

没错,就这一段代码穿过了 JVM 到达了 CPU 执行层面的优化思想。你要是不知道这些,你压根就不会想到这种写法。

所以我们优先广度

前几天看周志明老师直播的时候,周老师提到了金字塔理论。

认真谈谈如何建立知识体系
也就说我们的底部要广,顶部才会尖,先广才能尖。

有了广度知识的支撑,我们才有能力且更加高效、快速地深入。

究其原因是因为计算机体系的知识点是连通而不是分散的,你写的程序必定运行在硬件之上,必定受操作系统管理,必定要运用到各种数据结构与算法,绝大部分会涉及到网络通信。

所以我们不是无脑广,我们是选择性的广。当你广到一定程度会有一种感觉,一种从上到下通透的感觉。

然后你才有能力去选择一个方向深入研究,最终成为上面金字塔般的大神。

更高效的学习

明白了先广度学习之后,我们再来聊聊如果高效的学习。

系统的学习我推荐看书

但经常有同学说,为啥每次我看完一本书,然后就没有然后了,啥都没记住!

我抛砖引玉,介绍下我的看书方式。

我看书会看多遍。

第一遍快速浏览

虽说看目录可以得知书籍的大概知识点,但是几个字不可能涵盖一章的所有知识,所以我会快速的过一遍,知晓这本书讲述了哪些重要的知识,到哪个深度,一些重要的点我会先把书页折起来,电子版我会记录书页。

看完第一遍后,如果对我而言是毕竟陌生的知识点,我肯定会读第二遍。但一些毕竟熟悉的知识点我会判断是否值得继续看第二遍。

第二遍开始做笔记

如果选择看第二遍,我就会开始仔细的读,同时会记录笔记。

我不喜欢把笔记记录在书上,因为这样之后复习还得翻一遍书,效率很低。

我喜欢在在线文档上划分出各个知识点,然后会将不同书籍对同一个知识点的不一样的理解记录在一起,这很有意思,因为每个作者理解的角度都会有所不同,可以让你从更多的角度去理解这个知识点。

并且在复习的时候,我可以针对某个知识点快速找到所有相关的知识,这不香吗?

好了,没有第三遍,我一般读两遍这本书就不看了,因为精华都被我记录在笔记上了,复习的时候我只要针对笔记看就行了,舒服舒服。

所以记录笔记很关键。

输出

紧接着还需要输出,因为向别人说出来是不一样的

你在说出来的时候会发现自己的理解漏洞,会去查资料补上它。

你在说出来的时候会注意到细节,你会纠结用词,是用“一定”还是“大部分”?这有很大的差别,所以你会扣细节。

你输出的知识点会被别人看到,别人可能会质疑你,要与你击剑,这又会迫使你加深对这个知识点的理解。

在哪些好呢?我建议你在知乎上写。

知乎上程序员多,大神多,喷子多,人多就容易碰撞,让你成长更快。我个人觉得知乎上对知识细节理解类文章质量还是很高的,基本上很多都通俗易懂。

为什么不推荐一些对口博客呢?.....自行体会吧。

最后

当你有了广度并且有了输出,渐渐地你的知识体系就建立起来了,然后就可以往深度发展了。

不过要切记,塔尖不是一日而起的,唯有坚持

不要拈花惹草,当你学并发的时候就把并发学完,不要并发学学,Spring学学。

不要做朝三暮四的渣男


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭