自从我变成重度的笔记用户后,我学习一门知识,会试图把所有的可能性都学一遍,但是知识细节总是那么多,而我学的东西又很碎片化,这使我非常焦虑,我感觉自己会的东西非常少。
比如之前学链表时,想把静态链表动态链表,单链表双链表,它们的所有操作都学一遍,而我学这些都是一个个画图慢慢来得,我学了很久,但是才过了一半,后来我发现就是一个普通的语法,要把他所有的可能性都列出来,也是非常复杂的一件事,比如我曾试着把 channel 所有阻塞通过情况列出来,后来我发现哪怕是一个简单的 switch 语法,也有很多种情况,有没有变量,变量声明否,多 case,加不加 default,用不用 fallthrough,break 等等,所有的情况都是指数级的,我开始意识到自己这种学习方式出了问题。
我为什么要试图这么做?我是一个完美主义者,以前有过严重的焦虑症和强迫症,而对于这个学习方式,我是出于这个考虑:
编程知识是非常多而碎片的,我们的大脑的空间又非常有限,因此我们不应该试图去记忆这些知识,我们要达到这个目的:看到某个知识,我们知道他是什么;我们能够自行查询解决这个问题。
那我们大脑中应该有些什么知识呢?我认为是知识的索引,那问题就是怎么建立这个知识的索引。
我试图这样做:
1.遍历所有知识,建立缓存,我们的大脑会自动忘记那些不常用的知识。
2.建立知识体系,深入而又通俗易懂的理解知识,知道知识的所属结构。
试图遍历所有知识,就是为了建立知识缓存。
但是因为知识的锁碎,很多时候我们会陷入知识细节本身中,会变成这样:只是罗列知识,只是对只术语进行解释。而这会导致知识无法建立体系,我们很多时候不知道自己在说些什么。
我会怎么做:
2.学习知识时,知道自己学的是什么知识,知道它是哪一层次的知识。
3.列出重点,难点,常用知识,重点学这些知识。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.