经常会有同学问我:“我感觉我的知识非常凌乱,该如何让自己的知识成体系?”
今天我们就来好好盘一盘这个问题。
话不多说,发车!
深度 VS 广度
每个人在想要开始认真学习的时候,一般都会在网上搜索,需要看哪些书,学习哪方面的知识,然后会找很多视频教程,或者买很多书,信心满满,打算大干一场。
其实有关计算机体系的基础知识面掰掰手指也就几种:计算组成原理、操作系统、计算机网络、数据结构。
基本上非科班出身的小伙伴都会缺少对基础知识面的学习,这个是基石,需要补上。当然科班出身的没学好的也很多,也需要补。
然后还需要学习:关系型数据库、非关系型数据库、常见框架、常见中间件。
这一点我相信大部分人都会学。比如MySQL、Redis等等,因为这是日常工作上经常会使用的东西,所以都会主动去学。
然后问题就出现了:每个点都浅尝辄止还是死磕到底?
我建议的选择:雨露均沾,也就是先广度再深度。
其实不仅仅是计算机领域,在很多其他领域也都一样,你需要把你的知识面铺广,你才能有机会走的更远。
当你不知道一样东西的时候,你打破脑袋都想不到它。无中生有?不存在的!
同理,只有当你了解方方面面的知识,在遇到一个问题,或看一段奇怪的代码,你才能联想到那个知识点,才会有豁然开朗的感觉。
所以我们优先广度。
前几天看直播的时候,看到了金字塔理论,觉得非常有道理。
就是说我们的底部要广,顶部才会尖,先广才能尖。
有了广度知识的支撑,我们才有能力且更加高效、快速地深入。
究其原因是因为计算机体系的知识点是连通而不是分散的,你写的程序必定运行在硬件之上,必定受操作系统管理,必定要运用到各种数据结构与算法,绝大部分会涉及到网络通信。
所以我们不是无脑广,我们是选择性的广。当你广到一定程度会有一种感觉,一种从上到下通透的感觉。
然后你才有能力去选择一个方向深入研究,最终成为上面金字塔般的大神。
如何更高效的学习
明白了先广度学习之后,我们再来聊聊如何高效的学习。
很多人都会推荐看书。
但经常有同学说,为啥每次我看完一本书,然后就没有然后了,啥都没记住!
我抛砖引玉,介绍下我的看书方式。
我看书会看多遍。
第一遍快速浏览
虽说看目录可以得知书籍的大概知识点,但是几个字不可能涵盖一章的所有知识,所以我会快速的过一遍,知晓这本书讲述了哪些重要的知识,到哪个深度,一些重要的点我会先把书页折起来,电子版我会记录书页。
看完第一遍后,如果对我而言是毕竟陌生的知识点,我肯定会读第二遍。但一些毕竟熟悉的知识点我会判断是否值得继续看第二遍。
第二遍开始做笔记
如果选择看第二遍,我就会开始仔细的读,同时会记录笔记。
我不喜欢把笔记记录在书上,因为这样之后复习还得翻一遍书,效率很低。
我喜欢在在线文档上划分出各个知识点,然后会将不同书籍对同一个知识点的不一样的理解记录在一起,这很有意思,因为每个作者理解的角度都会有所不同,可以让你从更多的角度去理解这个知识点。
并且在复习的时候,我可以针对某个知识点快速找到所有相关的知识,这不香吗?
好了,没有第三遍,因为精华都被记录在笔记上了,复习的时候只要针对笔记看就行了,舒服舒服。
所以记录笔记很关键。
第二种高效学习方法是报一个培训班,它能帮助你过滤掉许多你不需要的知识,另外老师的经验能让你更快更好的理解掌握那些知识,让你少走很多弯路。这里我推荐零声教育,课程体系直接对标腾讯T9职级,个人目前觉得是对c/c++后台开发体系总结完善程度最为详细的学习路线
总结下来核心技术点为八个点:
- 编程语言
- 数据结构与算法
- 数据库
- 网络编程
- 操作系统
- 网络编程
- 分布式架构
- 云原生
由于内容太多,只是简单的标题介绍,更详细的技术路线可以点击下面链接
零声教育 第11代 Linux C/C++后端服务器架构开发 成长体系课程
学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂
一、编程语言
二、数据结构与算法
视频:5种红黑树的场景,从Linux内核谈到Nginx源码,听完醍醐灌顶
三、数据库
视频:redis 数据如何组织,如何存储,redis为什么这高效
四、网络原理
视频:《tcpip详解卷一》:150行代码拉开协议栈实现的篇章
五、操作系统
视频:内存泄漏的3个解决方案与原理实现,知道一个可以轻松应对开发
六、网络编程
视频:linux下的epoll实战揭秘——支撑亿级IO的底层基石
七、分布式架构
八、云原生
如果是想在c/c++后台开发方向得到有效的快速提升,他们的课程体系是大家绕不过的具有参考意义的提升路线。从学习路线中可以对c/c++后台开发方向的技术栈体系有一个清晰的认识。不管学习与否,对于这样一个完善详细的提升技术路线,是值得大家去获取参考的。
需要更多C/C++ Linux服务器架构师学习资料加qun812855908获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享
输出(非常重要)
无论是看书还是报班学习,紧接着都需要输出,因为向别人说出来是不一样的。
你在说出来的时候会发现自己的理解漏洞,会去查资料补上它。
你在说出来的时候会注意到细节,你会纠结用词,是用“一定”还是“大部分”?这有很大的差别,所以你会扣细节。
你输出的知识点会被别人看到,别人可能会质疑你,要与你击剑,这又会迫使你加深对这个知识点的理解。
最后
当你有了广度并且有了输出,渐渐地你的知识体系就建立起来了,然后就可以往深度发展了。
不过要切记,塔尖不是一日而起的,唯有坚持。
上一篇:学习linux系统到底有没捷径?
下一篇:linux搜索命令