谈谈知识体系构建

知识体系

笔者是一个码农(程序员),平时主要工作就是开发一些Web项目。近期由于工作需要,上司给我安排了一个大任务:重构公司的一个对外网络服务以满足更多客户的访问,于是我开始学习高并发编程之旅。

于是开始从基础的概念入手,如多线程,非阻塞IO模型。本以为这些概念可以看看文章教程就可以理解,结果花了很久看了不少视频和文章后反而越来越模糊,一度止步不前。停下来仔细思考了一下具体原因,这些概念背后蕴涵了很多底层的知识原理,如计算机硬件,操作系统,计算机网络等,经过简单梳理后发现(如下图)尽然涉及到这么多的知识。形象地说是一颗知识树,层层递归直到一个清晰独立的概念为止。这就是所谓的知识体系,由大量的知识点汇聚而成,各个知识点之间互相链接组成的一个系统。

谈谈知识体系构建_第1张图片
并发编程知识体系

无论是读书还是工作,构建知识体系是始我们终绕不开的,然而构建牢固的知识体系是难度大且相当耗时的一个过程。
我通过不断探索和实践,总结了一些个人经验。

从问题出发

对一个问题的好奇,对答案的渴望,是驱动学习和探索强大的动力。

常常说:问对问题比找对答案更重要。问问题的能力反应一个人解决问题的科学素养,把问题问到点子会让学习更加高效。

比如在学习异步编程时候,有这些的问题:

  1. 什么是非阻塞IO ?
  2. 为什么需要多线程 ?
  3. 多个cpu情况下,如何提升程序的性能 ?
  4. 操作系统是如何协调多个线程之间的交叉执行的?
  5. 多路IO复用解决了什么问题 ?与其他IO模式比有什么显著的提升?
  6. 一个服务器如何做到同时支撑 10万个客户端请求 ?

这个列表会随着学习的推进变得越来越长,在问题驱动下寻根溯源直达更为本质的区域。

提纲挈领

在互联网高速发展的今天,信息内容呈爆炸式增长,同时每个人随时随地轻松地获取信息。但如果不加注意会不知不觉陷入知识的海洋中,不可自拔。 因此一上来不要过于纠缠细节,提纲挈领,掌握全貌。先把大致的轮廓给勾画出来,然后层层往下不断深入细节。

勿囫囵吞枣

可能很多人都有类似的经历,看书的时候不仔细草草了之,以为已经弄懂了,一到实际应用的时候就傻眼了。知识一看就懂,一做就错,学的时候囫囵吞枣,用的时候一脸懵逼。

就如学习编程,最好的学习方法莫过于实践动手写代码运行测试。

重复内化

由于遗忘曲线的存在,学过的知识如果在一定时间内不复习,那么无法把这部分知识转变为长期记忆。所以你理解的知识需要经过不断反复内化,才能真正成为你的的一部分。

通过类比理解概念。
很多复杂的概念,都可以在生活当中找到类似的场景。如果你可以把一个概念讲述给一个五岁的小孩子听,那说明你已经搞明白了。

通过写作输出来帮助内化。
通过写文章分享倒逼把学过的内容汇总起来,巩固之余,还能防止「我以为我懂了实际却没懂」的尴尬场景出现。

利用Anki来学习记忆几乎一切知识。
Anki 是用来记忆的,包括但不限于记单词学语言,还可以用来记忆古诗词,背生物化学地理物理等等。
Anki的原理是间隔重复,算法基于Supermemo的SM2,它背后的算法可以让你科学高效地记忆。绝对比平日自己死记硬背的效果好得多。

最后

要给自己更多的耐心,要对知识有敬畏之心。不要迷恋速成,试想如果读了《7天学会XXX》就可以学会一门技术,那么这个技术还会有价值吗?
莎翁说:人生如舞台,有时候你在前台,有时候在后台。大部分时间我们在后台修炼功夫。

你可能感兴趣的:(谈谈知识体系构建)