当你决定学一些东西或者听一门课的时候,首先要记住的一点是:
一定要做笔记,不要相信自己的记忆。
记忆的不可靠不仅在于,「事后我们很多东西会忘记,如果不注意及时复习,这些东西还会忘得很快」,而且还在于「我们总是天真的以为“这些东西我用脑子就能记住,干嘛要记笔记”」
所以先记住 :
凡学东西,就要记笔记。
然而,绝对不是像中学小学的「特别认真的某同学」一样,把老师说的话工整地写在自己的小本本上。我不是针对谁,这种方法真的不是有效的学习方式。
那,记什么呢?
首先,我们记笔记本身根本不是目的,如果没有效果,干脆就不记。凡做事,一定要有效果,记笔记的效果就是「帮助提升学习效果」。
所以必须先说学习的流程,全部的流程套路我会在这个专题的下篇文章里细细展开说。现在我们先提学习的三个最核心的流程:
- 理解
- 组织 ( 整理 )
- 实践 ( 练习/应用 )
所以其实在不同的阶段,我们需要三套不同的笔记体系。
1. 理解阶段
我们学习的最终目的是应用,是能更好地认识宇宙规律从而利用宇宙规律做我们想做的事情。
有的时候,我们不知道「是什么」「为什么」,只要知道「怎么做」,也能搞得很好。比如说我每次肚子疼的时候,给自己十指放一遍血,居然就神奇地好了。。而且是立竿见影的那种;我们平时最常用的word和ppt,先点这个再点这个,就能出现这样那样的效果。这背后的代码原理我们其实不需要懂,我们只要会用就好了。。
我觉得这涉及到一种理解的层级问题,而凡设计到层级的问题都可以用『最强大脑』—计算机思维来解释,现在需要的是一个叫做『计算机系统结构』。
此处有必要尽量简单地介绍一下『计算机系统结构』是怎么一回事:
- 如果我们回到计算机的最最底层,到底是什么东西在支持着我们每天看视频或聊微信呢? 是一大堆的电子元件。他们能处理的动作无非是把这个开关现在打开,等一会儿再把这个关上把那个打开。所谓0生1,然后0和1生万物,就是这么堆积出来的。这层可以叫L0.
- 在这个最底层是能处理东西没错,但我们人可不擅长操作这么多的元件啊,所以就要把一些功能集成化一下,封装一下,打包做成稍微高级一点的东西。这层可以叫L1.
- 如果嫌弃L1还是难操作,那就继续封装,直到人能处理。
-
最后的效果是这样的:
来自:《计算机组成-结构化方法》.png
明白了这个层级的概念,可以谈学习里的理解了。
如果把每个东西都理解到像计算机结构体系的最底层这种水平,显然是不现实的也没必要的。那我们怎么决定到底理解到那一层次呢? 举个例子就能说清楚:
比如ppt和word,如果我们只是用这个软件的话,能进行简单的编辑操作就ok了啊,没必要研究背后的代码;如果你要提升一下功能的话可能研究一下软件的接口,比如之前ppt是没有『神奇移动』这个功能的,现在最新的2016版已经加入了这个功能,就在『切换』里,名字叫『变形』;而如果你的要求还高的话,比如你是微软的开发人员,要做一个2017版的office套件,那明显你就要从源码的层次上学习理解了。。。
所以很明显了,决定我们要理解到哪一层的关键就是:
你要干什么。
即,学习的目的决定研究理解的必要深度。
这里再举两个例子,说明一下想明白自己的理解层次深度的重要性:
- 软件工程师,现在是比较高薪但普遍很辛苦的职业。有的人自黑自己是码农,有的人说自己是程序猿。实际情况是有的人月入10万,有的人月入不足一狗(一狗即2万),甚至万元都没过。很重要的原因就是理解深度的差异。最底层的码农,从来就不知道真的去认真学习,能在网上找到的代码就拿过来用,出了点大的问题自己就修不好了。想象一下,对于一个只知道word点这个会出现这个的普通用户,如果界面上出现未知的程序bug,他能把这个软件的错误解决掉吗? 问题出在L3层,可你只理解到了L5层,那你怎么也不可能解决这个问题。
- 再说一个例子,炒菜。我一开始觉得做饭太麻烦了,后来一次同学聚会,发现我缺的只是两个东西:1. 百度一下想做的菜的菜谱流程;2. 成功做出一次像样的饭菜。其实入门做饭的话也就很简单的事么。但我会的只是最顶层的东西,而如果那配料里的A配料加多一点会怎么样呢? B少一点会怎么样呢? 如果再加点C又会怎么样呢? 这我根本不可能知道,这需要更底层的知识或者这一层的经验。而我一个都没有。一个老厨师可能有了经验,不需要更底层的知识也能做出来好吃的饭菜。但如果要让一顿饭的营养价值达到很棒的效果,靠经验是不行的。不然你以为营养师是干嘛的呢?
所以,理解层级,越到底层,我们能做的事情就越多,而且对这个事情的掌控性更强,而越到上层, 我们的操作就越傻瓜,出了问题我们可能就不会解决,更别提创造性了。
以上,说的是在理解阶段,我们要做的首先是:
根据我们的实际应用目的,决定好我们的理解层级。(对这个东西,我们理解到什么程度就够了呢? )
做好了这个工作,就是理解阶段的笔记,一句话:
流笔记。
没那么玄,流笔记很简单:
- 准备纸、笔 / 或onenote [我坠喜欢这个]
- 你要写的东西:
- 概念
- 箭头
- 尽量简单的解释(用自己的话重新解释)
- 流程:
- 写下你要学的概念
- 把概念之间根据相互的联系用箭头连起来。
- 可以对概念进行简单的解释,但一定不要用老师和书上的原话,要自己重新解释一遍,如果真的想不出来,那就当场默写出来一遍,一定不要只抄不想。【我想只抄不想应该是绝大多数『努力认真但成绩不好的乖乖男/女』成绩差的原因吧,别问我怎么知道的。。】
流笔记的核心就这么简单。不是工整地抄写,也不是列一个看起来很条理的概念树(让知识条理的办法后面会有),而是符合大脑思维方式的「流/flow」笔记,学习和记忆的本质就是联想/联系,如果傻傻地做一个线性的笔记,告诉我,你要怎么产生直观的联系?
2. 组织/整理
这一步,核心作用就是:
形成条理的函数原型/头文件。
这一点在《c++ primer》里就给了很好的应用实例:
读者帮助:本书的每一章均以一个总结和一个术语表结束,两者一起扼要回顾了这一章的大部分学习重点。 读者应该将这部分作为个人备忘录:如果你不理解某个术语,可以重新学习这一章的相应部分。
上面这个读者帮助里,作者其实已经把组织/整理的组成和用法都说明了。这种方法可能我们以前课本里也有过,不就是每学完一章进行一个小总结么。但现在我对精确定义的概念的需求和重视程度越来越大,以至于看到这段话的时候简直是找到了知音的感觉,很激动,头皮发麻。
下面我就简单摘录一下书里具体是怎么做这个『小总结』和『术语表』的:
- 小结.png
但其实,小结都不用管,核心就是术语表。或者我喜欢另一个词:
概念集。即,概念的集合。、
但像上面这么做的话有两个问题:
- 纯线性的概念集,非常没有条理,也没有层级感。要知道,大脑是非常不擅长,也就不喜欢处理这种纯线性没逻辑的存储方式的。
- 把概念清单和解释放在一起是个不好的习惯。这就像做题把答案放旁边一样,没有独立思考就没有进步;现在是你没有recall,就没有有效的记忆。(关于recall,下次的学习专题我会继续说。)
所以,就要祭出大杀器了:
思维导图。软件我喜欢用mindmanager:
学习专题.png
一张图就包含了所有的要素:
- 所有的概念。
- 有层级和逻辑关系。
-
看到那个「记事本/铅笔」一样的图标了吗? 如果鼠标点击一下就会弹出一个这东西(比如你点的是流笔记后面的图标):
流笔记.png
这个机制的好处就是,可以强迫你主动recall。毕竟记忆的一个大敌就是你总以为你记得,结果用的时候却不能轻松调用。简直呵呵。
说一下, 我用的是mindmanager2016版,这种东西,用最新的就好。
3. 流程
怎么检验真理啊?
邓爷爷早说过了:实践是检验真理的唯一标准。
也正是因为如此,我之前写过的『科学方法论』里也有提到:提出问题 → 做出假设的理论 → 做出基于假设理论的预测 →进行可证伪的实验 →根据实验结果判定假设的结论。
这就是正确的科学方法论啊。里面的核心就是尊重宇宙客观规律。是啥就是啥。
而流程呢,就是知识和理论『变现』的操作步骤。凡是需要行动的事情,如果你事先没形成流程,基本很难顺利地做完。凡是一件要重复做的事,如果你没有有意识地去总结一套流程,那只能说太浪费时间啦。
操作流程的笔记的话就像这样:
如何记笔记
- 用流笔记的方式一次性地理解要学的内容。
- 理解内容以后,把刚学过的内容用思维导图组织起来。
- 组织以后,把日后需要/可以执行的部分用序号+描述的清单总结出来。[恩,这是个递归的过程(递归就是定义的时候调用自身)]
笔记系统就是这样了。
一共就三样:
- 流笔记。
- 概念集。
- 流程清单。
这个时候还要把这三样进一步做一个整理,大家就能更加清楚我的思路:
概念集和流程清单其实就是我说过很多次的函数原型/头文件,而流笔记就是函数定义啊。
所以说我套用的ink笔记法,inbox里放的就是待整理的新笔记,note里放的就是理解的过程,也就是流笔记,knowledge里放的就是根据自己的分类体系存放的一系列头函数:概念集和流程清单。
哇,瞬间感觉自己的思路也清晰了很多呢。
哈哈,虽然看的人不多,但我给自己73个赞。
微信首发,扫码关注,欢迎扩散:iNotes
iNotes.jpg
网友评论