快速学习
你也许会被这个标题吸引进来,学习可以是一个“快速”的过程么?俗话说欲速则不达,速度和质量往往无法兼得。但我认为在你掌握合适的方法的情况下,学习可以是一个可以“快速”的过程,但是不太会是一个“轻松”的过程。
本节讲解了我们在学习知识的四个阶段以及不同阶段之间的转换,希望可以为你带来一些思考。
本节讲解了我们在学习知识的四个阶段以及不同阶段之间的转换,希望可以为你带来一些思考。
认知的四个阶段
在认知科学中人对于知识的理解被分为四个阶段:
- 无意识的无能力(unconscious incompetence):你刚开始学习一个知识,你对这个知识完全不了解,这个时候你毫无头绪,只能通过书籍、视频去了解这个知识的方方面面,这个时候你的直觉常常是错误的,你需要通过学习逐渐在大脑中形成抽象的想象。
- 有意识的无能力(consicious incompetence):你逐渐在大脑中构建起关于知识的蓝图,但是这种理解是“量子态”的,你感觉似懂非懂,似乎理解了,但是关于某些点又似乎不理解,处于一种说不清道不明的状态。
- 有意识的有能力(consicious competence):你在大脑中连通了关于这个知识点的不同方面的理解,但是这个理解是不透彻的,你不熟悉这个知识点的实用场景,也不能快速用这个知识去解决实际的问题,在碰到实际的问题时,通过在大脑中检索这个知识的方方面面,你会得出问题的解决方案,但是这个过程是耗时的,需要耗费大量的脑力。
- 无意识的有能力(unconscious competence):你经过大量练习,已经了解知识点的关键在哪里、考察一般是基于的角度以及自己的易错点,不需要太多思考就可以获取到知识点的细节以及答案。
如何在阶段之间转化
1. 从“无意识的无能力”到“有意识的无能力”
这个阶段不要局限于使用课本来进行学习,尤其是国内的课本,国内的课本对于很多知识的讲解都是基于文字的,没有例子,没有实际的场景,大多数是只用只用干巴巴的文字来表述“作者自我的逻辑”,国内写书的老师大多只是为了完成任务,混绩效赚钱,并不从学生以及初学者的角度出发来编写教材,所以书常常看起来像八股文一样,晦涩难懂。
使用这些资源来学习常常会让你怀疑人生,你会觉得是不是自己智商有问题,难以理解这些问题。诚然,我承认不同人在学习这些抽象知识时会有天赋上的差距,但是更重要是 我们学习的方式以及所用的资源,学习知识的过程不应该是困难重重的,应该是循序渐进的,从简单到复杂的,多维度的。
以下是笔者在过往咨询经验中总结的一些经验,如何快速地对完全陌生的知识建立起直觉:
- 由于人们通常难以通过纯文字来深入理解抽象概念,我们的大脑对于图像和故事结构更为敏锐。因此,当遇到难以把握的概念时,选择那些有助于形象化理解的资源,例如包含动画演示的视频或以实际例子为基础的外文教材,往往更为高效。
- 频繁地询问
WHAT
,明确这个知识点的实际应用或其存在的目的,这可以为你的学习过程提供清晰的导向。
在WAHT这个阶段,你可能会询问如下问题(以cache的学习为例):
cache是用来干嘛的?
cache为不同映射方式的区别是什么?
cache的结构是什么样的?
2. 从“有意识的无能力”到“有意识的有能力”
这个阶段在我看来也是最困难的,处于“有意识的有能力”时,你的认识是模棱两可的,有时候是说不清道不明的,这个时候你可以说具备了理论上的知识,但是对于如何将这个知识实际利用是毫无头绪的。
以下是笔者的一些经验,如何进入到第三个认识阶段:
- 在实际中去尝试应用知识,尝试不同的练习题和实际场景,以帮助巩固和应用所学知识。在这个过程中你会遇到很多“问题”,你需要掌握讲这些“问题”具象化的能力,用语言和文字定义是哪些点还没有真正理解,在找到这些点后,首先自己思考尝试解决疑难,如果不能的话可以求助他人或者进一步查询其他资料。
- 多问一问
HOW
,不同于“what”的是,“how”更加注重实际操作和应用。简单的记忆并不足以掌握如何操作或实践。你需要培养分析和推理能力,并学会有效查找和使用相关资料来帮助解决问题。
在HOW这个阶段,你可以询问如下问题(同样以cache的学习为例):
○ cache是用来加速地址读写的,所以从一个物理地址到读取cache中的内容,具体是如何进行的?
(可以包含如下子问题)
○ 如何去通过地址去判定应该访问哪几个cache块?
○ 对于不同的映射方式,如何判断是否命中?
○ 如果没有命中会怎么样,写策略在这个过程中充当什么作用?
3. 从“有意识的有能力”到“无意识的有能力”
在 “有意识的有能力” 这个阶段,你已经可以使用知识去解决问题,但是仅仅是解决问题而已,有的时候这个过程是机械化的,遇到一些新的问题你就可能有一些不知所措了。
进入“无意识的有能力”这个阶段,需要你对于知识有一个更高维的认知,可以通过如下阶段实现:
- 使用费曼学习法,假如你是一个老师,要将这个知识教给其他初学者,你会如何构建自己的语言,如何讲述,通过向他人传授知识的过程(可以不用真的找人教),以及尝试用简单的语言去阐述复杂抽象的知识,你可以从另一个层面上思考自己学习过的知识。
费曼学习法 是一种与语言使用紧密相连的高效学习方法。以下是该方法的四个核心步骤和它如何利用语言深化知识理解:
- 主题选择与学习:首先,选择你想深入理解的主题。通过阅读、观看视频或听讲座,系统地研究它,直到你对其有了初步的理解。
- 模拟教学:试图将你所学的知识传授给他人。可以选择真实的听众,如朋友或家人,以简洁明了的方式向他们解释这个概念。此步骤将帮助你明确自己已经掌握的部分和仍存在疑惑的部分。
- 针对性的再学习:如果在模拟教学过程中遇到了困难或对某些概念感到不明确,立即返回到你的学习资料中。重温那些不太确定的部分,确保彻底理解。
- 简化与使用类比:努力将所学的知识简化,并利用生活中的例子或类比进行解释。这样不仅可以加深自己的理解,还可以帮助你更有效地向他人传授知识。
- 多问问
WHY
,思考为什么这样实现,采用其他的方式设计会怎么样。并且尝试与其他领域的知识或技能结合,这样可以加深对当前知识的理解,也可能导致新的发现或创新。
在WHY这个阶段,你可以询问如下问题,尝试将不同的知识结合起来:
○ cache的不同映射方式有什么优劣
○ cache相比于主存的关系和TLB相比页表的关系有什么联系?TLB结构和cache有什么类似之处?
TLB也可以使用像cache一样的映射方式么?
○ 操作系统使用虚拟地址访存,从 TLB ----> 页表 ----> cache ----> 内存,这个过程具体发生了什么?