反馈式学习

本篇文章将讲述我自己的学习方法——反馈式学习。每个人对学习方法都有不同的理解,可能某个人对某种学习方式有较深刻的感触,而其他人却不感兴趣。这可能是学习方式没能勾起你的生活体验。但如果你深究到底,你可能会发现它们的核心原理是一样的。同样,这篇文章里面的学习形式其实并不重要,最主要的还是其原理。希望你能根据其背后原理整出自己的学习方法。

一、反馈式学习

反馈式学习是以反馈为根本的学习方式,一切反馈都可以当作一种学习。你首先搭建好一个有信息反馈的环境,然后在里面探索,在探索过程中逐渐形成知识体系。此时的你犹如一个新奇的小孩走进了糖果屋一样,到处探索,无拘无束,你想要的东西都能从探索中获取到。

反馈环境可以各式各样的,可以是搜索引擎,可以是调试环境,可以是书籍,也可以是同行专家。你就假定你的反馈环境可以给你各种想要的答案。以搜索引擎作为反馈来源的话,你有什么不懂的概念可以直接用搜索引擎搜索。如果书是你的信息来源,你有什么疑惑就在书上找答案。在调试的时候,你有什么想法你可以放到调试环境里试,它会告诉你正确与否。各种反馈方式其实并不孤立的,你可以把它们组合在一起用。不懂的问题找书,书上没有答案就上网查,百度不到就谷歌搜索,其他博客找不到就官网找。从质量来说,它们的质量从低到高为:网站博客<书籍<官网<源码(这里并不全罗列)。你尽量挑选质量高的信息来源,这样保证了信息的可靠程度。

反馈式学习本质是自身和反馈源形成反馈回路来修正认知偏差。自身是指现在已有的认知框架,反馈源是对照组。当自身的认知和反馈源存在误差时候,根据反馈来修正偏差。当你在反馈环境里面探索中,错误的认知会被纠正,正确的会被夯实。

虽然你知道本质,但在实际操作上不好操作,你会用到另外一个反馈回路:“问题——答案”反馈回路。在考驾照时,有个科目一,是考驾驶的相关规则的,大抵上是在电脑上完成相关的题目的作答。这时候你能获取到到的资料是题库里面的题目。即使刚开始什么都不懂,随着做题,做着做着自己就会了。这个从不会到学会的过程是一个很奇妙的感觉。这时题目和答案构成了一个反馈回路。不断做题的过程中,其实你也是不断修正自己认知。做对做错,答案会告诉你结果。哪怕做的时候没有一点概念,看答案你也能从中学到理论。相比比于你直接看理论,自己做题探索得来的则更加深刻。

问题和答案的关系将会像下面这图一样。

反馈式学习

在这里,问题不单单指的是问题,它更代表着一种搓揉机制;答案也同样不单指答案,它是一种学习机制。搓揉机制你想方设法去产生问题的地方,是你学习的方向。你可以复盘,用现在的认知和过去的认知相对比,搓出偏差来。你可以自己对自己提出各种问题。你也可以用下面将要说的框架理论来指导和扩展自己的认知圈。总之,任何你想要提出的问题都尽情地在这里提出。学习机制是你根据问题然后在环境里探索得出的答案。你假定反馈环境是能给你带来任何你想要的答案。你所要做的是在你环境里找到那个答案。搓揉机制产生问题,你就带着问题到环境里探索得到答案返回,然后搓揉机制再根据这答案的基础上继续产生问题,一圈圈扩展。

二、框架思想(模块化思想)

框架思想在反馈式学习中是作为产生学习方向和提炼知识架构用的。框架思想概括来说是:自上而下套框架,自下而上提炼框架。

2.1 自上而下套框架

狭义的框架指的是知识体系,广义的框架指的是计划。如果你知道一个知识点的知识体系,你要学这个知识,那么这个知识体系架构就变成你要走的路。知识体系上面的每一个节点都是你的计划里面的目标。你一步一脚印,按顺序一个个实现,最终会到达你想去的目的地。但现实情况并没有这么理想,随着时间推移,你的认知会逐渐扩大,你的所认识的知识体系也会有所变化。这就有点抓狂了,有种计划赶不上变化的感觉了。但你也不必慌。一般来说你前一次的框架会是后一次的框架扩展的枝干。你每次掌握住当前层次的大方向,然后在枝节方面再细节化行了。

下面说个实际的例子。如果让你学一个你从来没接触过的知识的时候,你会怎么做?你可以像下面的这么做。首先,你利用搜索引擎了解到相关概念,了解相关的术语。然后找一个简单的Demo来实现。这个Demo最好是有详细的讲解,这样方便理解。接着,你就在这个Demo上添加其他的功能,丰富这方面的知识。这里你如果能有同行专家来交流就更好了,有人指导还是学得还是比较快的。到最后,为了完善这个知识体系,你需上官网看最官方最权威最全面的解读,如有源码可以直接看源码。

反馈式学习

这个学习的过程发生了什么呢?当你刚开始用搜索搜索概念做Demo的时候,你会在心里会形成一个初步的认识。这个初步的认知是颗种子,它会指导后面你要去了解的方向。而后面的看源码问同行是在逐步填充你这个架构,在细节方面丰满它。

套框架的总体思路是先搭建一个架子,然后往里面填充内容。即使刚开始搭起来的框架有点简陋,那也没关系。随着你的认知进一步发展,你的框架会逐步壮大完善的。你的认知圈子是以螺旋扩展的形式扩大的。换一个行为动力你可能更容易懂些,其实这个就是深挖。平时可能不会这么按部就班地操作,但是心里可以以深挖为方向,你会比较有动力学下去。

反馈式学习

这个也可以用于解决问题上。这个思想好比光学显微镜调节中的粗调和细调。你要观察到你观察的东西,先用粗调螺旋调整到你能看清楚的大致区域,然后用细调的方式来逐步调整。如果你知道解决这个问题的大致流程,那你就可以据此进一步划分,把大的问题分解为小问题,小问题继续划分更小的问题,直到细分最小可执行颗粒,然后一个个解决。

在每一个阶段里面,大的方向由大纲提供,细节方向可以在头脑里生成。即使你把目标分解到最小可执行颗粒时候你仍然会有很多细节步骤要走的。这些细小目标可能是就是十分钟的计划,全罗列出来就比较繁琐了,心里知道就行。当一个目标执行完成后需要迅速调整,否则你可能就无所事事的空虚之中,所以让你的行动目标保持动态调整中。

反馈式学习

2.2 自下而上提炼框架

提炼框架一般用来提炼知识点。当你不清楚知识点时候可以用此来提炼和总结。提炼框架有以下几个步骤:

  • 搜罗信息
  • 罗列信息
  • 分组分类
  • 提炼框架
  • 完善框架

下面以程序员的出路为例来说明一下。

(1)搜罗信息

这个就不用多说了,尽你的能力去搜罗你要的信息。

(2)罗列信息

拿一张A4纸把你搜罗的信息全部写下来。不需要什么限制,能想到什么就写什么。

(做架构师,做管理,接私单、做测试、做金融经理、卖奶茶、开饭店,公务员、写书、做讲师、创业)
(3)分组分类
根据信息的差异性和共性,把各个信息分组分类。

  • 做架构师,做管理,接私单、做讲师、创业、写书、做测试
  • 做金融经理、卖奶茶、开饭店,公务员

(4)提炼框架
根据分类出来的信息提取框架。

  • 行业内
    • 做架构师,做管理,接私单、做讲师、创业、写书、做测试
  • 行业外
    • 做金融经理、卖奶茶、开饭店,公务员

(5)完善框架
根据框架不完善的地方继续补充完整。 这个过程可能要继续重复上面几个步骤。
在上面的程序员出路可以继续补充为:

  • 行业内
    • 主业
    • 做架构师,做管理、做讲师、创业、做测试
    • 副业
    • 接私单,写书
  • 行业外
    • 开店
    • 卖奶茶、开饭店
    • 其他
    • 做金融经理,公务员,啃老……

整个过程是一个先发散再收敛的过程。提炼框架后,你对整个知识结构的认知就比较清晰了。

2.3 小结

无论你是套框架还是提炼框架,核心思想是层次化实现。

把你要学的东西先理一下,划出一个最小系统的功能,实现它,然后再丰富它功能。知识是一颗逻辑树,实现它的过程是分层次的。这个层次有点像洋葱,也有点像俄罗斯的套瓷娃娃。实现它需要你一层层地浇筑。想象一下你绕操场跑的过程,一圈圈地跑,在围绕着一个点转圈的时候,你也在熟悉着这东西。如果说你的知识是一个空间,随着你探索你也在不断扩展这个空间,如同卫星绕太阳转一样,一圈圈加速最后甩出太阳系。

三、目标

从上面的介绍你已经了解到你需要围绕一个点做迭代。这个点就是你的目标。目标的选定可以根据知识体系细分的原则划分,也可以根据自己需要来划分。这里我要说的是另外一个方面,坚持。当你选好一个点做迭代后,你需要坚持一段时间。这个时间可能是几个小时,也可能是几天,几星期,或者几个月。因为你完成第一波基础工作后,你还需要消化总结或者继续深挖一下。如果你这时候切换目标,那么你对这个知识点的深挖的层次还不够,只是在上面挖了一个浅浅的坑。为了全面掌握它,你需要留足时间给它迭代。

当你围绕着一个目标转的时候,你会是一个怎么一个状态呢?你满脑子都会想着这个目标。无论吃饭睡觉你想着都是这个知识点的方方面面。你会想着用各式各样的问题来验证着你的掌握程度,直到你感觉已经没有问题可以难到你时候,这时候的你才算是过关了。

目标分两种,一种是接近型目标,另外一种是回避型目标。回避型目标是你不想做但却不得不做的任务,比如说你读书时候,你不想做的作业。接近型目标是内心渴望去完成的东西,比如你的兴趣爱好。对于接近型目标来,你在内心有种渴望的感觉。你去做种事的时候,你根本不需求要什么坚持和努力,坚持和努力早已化成一种自发的行为。你也根本不会觉得累,也不会有坚持、努力的感觉。在外人来看你是在苦和累之中,但不知你是乐再其中。我感觉在做这种事的时候,内心有一口气,自任务开始到结束,全凭这一道气来驱动。以气驱动,御气而行,这是我的个人感受。

四、维护一个知识库

通过前期的探索,你学习了不少知识点。为了复用,你需要把它保存起来。如果没有一个知识的积累和复用,你最多也就是熊掰玉米而已,学完就丢。所以,你需要一个地方来保存你既往的经验。

从保存的介质说可以分三种:记忆力,电子文档,纸质文档。无论从哪个角度来说,记忆力这一层面你是避免不了的。然而,记忆力并不牢靠,比较容易忘记。你事后回忆,可能就只记得轮廓,细节方面就丢失了。为此,你还需要其他工具来辅助记忆。相比纸质文档和电子文档,我更倾向的是用电子文档。因为你的认知是动态变化的,而纸质文档基本是一次性的,想修改就没那么方便了。电子文档就不同了,可以随意增删改查,而且,如果是记录的是代码之类的话,也方便复制粘贴。如果确实需要用纸质文档,活页记录是一个不错的选择。

既然是是维护一个知识库,这关键在于维护。没有维护的知识库也就一滩死水。为了你的知识库更有活力,你可以把博客当做你的知识库来维护,这样你写起来就比较有动力了。当然,你也可以其他文档工具来记录,最好是能保存在网络上,这样自己电脑损坏或换电脑也影响不大。那怎么维护呢?还是那句话,一层层来维护。 先写一个最基本的,然后一层层叠加和修改。如果你没有整块时间来写一篇文章的话,你可以写罗列一个大纲,然后再写各个子模块,最后整体调整和修改。维护的时候根据需要在各个模块里面修改,如果难以修改也有可以推翻重来。

4.1 回忆

这里我想专门讲下回忆。回忆是检验自己知识完整度的一个方法,也是验收的必须通过的第一关。学完后有必要验证一下自己的学习成果,这样你才能知道自己的不足。有些人喜欢用讲述的方式来处理,而我则喜欢用回忆。等你学完一个知识点时候,你回忆一下整个知识点,在回顾的过程中感受哪里还模糊,模糊的地方就是你不会的地方,需要你去加强。你往外输出知识点,回忆这一关是最容易也是最快速有效的校验方式。

五、大量练习

这可能就是反馈式学习的最大战场了。以实战为主,在实战中提取理论框架,然后和理论相互印证。

5.1 知识的三个层面

人的知识分三个层面:信息、知识、技能。在这几个层次中,消息是最浅层次的。我们平时阅读新闻获取到的信息基本是这个层次。这个层次的特点是信息量多而繁杂。你在这个层次留下的印象如同在海滩上走路,虽然留下了脚印,但过后很容易被冲刷掉。你所学到的,权当一种了解。

第二个层次是知识层面。在这个层次里面,知识充当一个理论基础,你可能知道很多理论,但是这个理论知识更像存储在硬盘里面的电影,你充其量只是背下来而已,但是在实际运用中往往就比较吃力。打个比方,你考试前突击,背下了书上的各种知识,通过了考试,这时候你的知识只是记住了,在运用方面还欠佳。你各种看书,主动学习,你学到的也是停留在这个理性认知层面。但相比与前面说得信息层面,这个层次里在你的知识体系方面就比较完备了。

第三个层次是技能,这个是我们要关注的重点。人的知识量大小不是取决于记住了多少知识和知识的连接,而是能调取到多少知识和知识的连接。能调取多少才是你的能力。从知识变成技能需要大量的练习,这种练习其实是一种对知识的一种“提取练习”。每次练习的质量可能不高,但是没关系,我们训练的是知识的提取能力,这个才是技能的核心。这个训练量大了你才会熟能生巧。从另一方面来说,能在书本上看到的是明面上的知识,但是有部分知识藏在潜意识里面的,还没被总结出来。这部分知识是目前说也说不清楚的东西。要学这部分知识,你只要去做就行了,在做的过程中也会锻炼这部分隐藏的知识。这个就像画画一样,怎么画?有些东西,有时就只有画的时候才能体会到。

虽然信息、知识层面不是我们的目的,但是要达到技能的层面,也需要前两者来铺路。刚开始先做点简单的练习,后面逐步加强。有时会为了一个掌握一个知识点,你可能需要推到重来很多次,一遍遍地做。起初,你可能对这个知识点理解比较模糊,但每做一遍你会清晰一点,最终会有个清晰的脉络留在自己心底。

5.2 容器化练习

把目标小块,每次训练一个小目标,并把它放到容器里训练。什么是容器呢?容器是一个仿真的模拟环境,这个环境可以安全地给你任意试错。

容器是一个有边界的区域,你在这个区域里面操作是安全的。它不定形式,书中的一个章节,一段都可以是一个容器,也可以是一个项目环境等等。你可以认为的你心中的疑惑可以在里面得到解答。你只需尽情地在里面探索和试错。

5.3 复盘反馈

复盘反馈意味着你重新做一遍,重新经历当初的心路历程,发现自己的不足然后补上。复盘反馈在反馈式学习里面占有比较重要的地位。你可以理解反馈式学习是建立在复盘基础上的信息反馈。每做一次都要细细品味前后次之间的细微差异,然后据此反馈。

5.4 模块练习和项目练习

模块练习是指单一功能的练习,项目练习是一个综合练习。一般来说,项目练习会带动模块的练习。模块练习实质把模块功能反复地练,把单一的功能练熟练。项目练习是把模块组合,主要训练的是模块综合运用。在平时,这两种练习需要交叉来练。你可以向一个自己平时用得到的项目需求,自己做一个功能出来,然后慢慢迭代。对于这个产品,你是使用者,你会有着各种想法,然后你把你的想法实现,在实现的过程中你会慢慢从中学习到相关的知识。如果你觉得从零开始实现比较难,你也可以从一个已有的产品开始改造,这个降低了你的实现门槛。

5.5 沉浸式反馈

这里我假设你已经有个完整的项目,你学习的时候就把这个项目当作一个容器,自己沉浸在里面探索代码的逻辑。从代码的运行,探索,改造三步走计划中,这个模式主要的精力放在探索上。这个方法一般用在学习一个完整的项目。如果你公司有个完整的项目给你维护的话,你一般是需要这种方式。从代码中学习代码也是一个强有力的反馈手段。这个方式可以让你省去构建的过程,让你一步到位直接进入最主要的反馈学习阶段。如果你没有这样的项目,你也可以看开源项目。由于项目比较大,你理解起来也不是一天两天就能搞定。你需要耐住性子,一点点看,让自己身心沉浸里面去,慢慢积累,靠积累量来突破。

六、时间管理

6.1 给时间以文明

时间管理主要是任务和时间的安排,这两者的组合有主要以下几种:限制任务量,但不限制时间;限定时间,不限制任务量;既限制时间也限制任务量。下面分别讨论一下。

6.1.1 限任务

限任务量,不限制时间。相当给足时间给你去学。这样学有个好处就是可以充分吸收知识点,一鼓作气去做。一般来说,你完成学习的任务量,你还要另外加任务的50%-200%的时间来吸收和消化这些知识点。这个时间是不能省略掉的,因为你学完了知识只是学完了,还没完全和已有的知识点联系上,你还需要吸收整理,必要时还需要复盘反馈一下,内化和吸收知识。

这个方案看起还好,但在实际操作中,我发现只是心里想着要去学某些知识,在行动上还是有点力不从心的感觉。没有时间的约束,整个人都比较懒散,专注力不高,学习时候容易分神,整体的学习效率并不高。它是靠着心里的一股气来驱驶前进的。当内心的那股气飘忽,前进就摇摆了。

6.1.2 限时间

限定时间但不限定任务量。意思是我在这段时间内学习了,靠时间量的积累来达到学习的目的。你需要在一个固定的时间内专注学习,不玩其他。比如你在一个小时内专心去学习而不玩游戏。如果你觉得这样做难以坚持的话,你可以换一种思维来看待这事,那就是少做事。那些可有可无的事,不做对你影响也不大。比如说玩手机,一天你少玩2个小时手机,其实也没什么影响的。把你的时间优化一下,专注于你要做的事。

但这个方案也有不好的地方。如果只是靠时间来约束,没有内心的驱动力,会感觉比较压抑。太过用力地去压迫自己来学习,长久来说不利于你学习。刻意掌控和进行自我控制本身很辛苦,如果你太过逼迫自己去做某事,面临的压力又难以承受,你会越来越难以自我控制。这种现象叫自我损耗。自我损耗不是长久之计,最终还是要顺其自然。

6.1.3 限时间和任务

限时间和任务,这个你平时就听得比较多了。列出任务,然后设定时间,然后去执行。对于这种的方式,有个SMART 原则你可能听过。这几个字母对应着:具体性(Specific)、可衡量性(Measurable)、可行性(Attainable)、相关性(Relevant)、及时性(Time-based)。

名称 解释
具体性(Specific) 这是指目标必须是清晰的。
可衡量性(Measurable) 是指目标必须用指标量化表达。
可行性(Attainable) 这里可行性有两层意思:一是目标应该有能力范围内;二是目标应该有一定难度。一般人在这点上往往只注意前者,其实后者也相当重要。如果目标经常达不到,的确会让人沮丧,但同时也应注意:太容易达到的目标会让人失去激情。
相关性(Relevant) 这里的“相关性”是指目标之间需要有相关性。
及时性(Time-based) 是指目标必须确定完成的日期。

要真正做好这几点不容易。比如说,你需要对任务的用时估算比较精准。在实际操作之中,往往会低估了用时,到最后都会很赶。在赶时间的过程中,人往往会陷入焦虑中。如果是只是做任务还好,但如果是学习的话,没有足够时间给自己消化的话还是学不好。而且在一个时间颗粒里面,你可能会出现前松后紧的情况。前面很放松,快到截至日期时就拼命地赶任务。

6.1.4 给时间以文明

上面的方式各有优缺点,你可以根据实际情况来采用。我自己从上面的方式综合出一个自己的方法,我称之为“给时间以文明”。在用这个方法之前,先确认一个原则:你要相信靠时间量的积累可以完成一个任务。当然,这里的前提是这个任务是在你的能力范围内,而不是空中楼阁。

首先划分任务。把你的任务分级一层层划分和细化。可以像上面说的框架化思想那样,模块化划分,把任务分到最小可执行颗粒然后列出清单。接下来是执行,把时间按一份份输出。限制个40分钟或50分钟一份,这个要看你注意力保持时间,如果时间颗粒没那么大,你限制个30分钟也行,这个由你而定。在每份时间里,你要专注于学习,不要做其他的。你就想象你在上课,然后一节节课积累下来。等时间量累积够了,你的目标就达成了。之所以用时间来限制,因为在平时的空闲时间,想要学习是很难的。学习是向上爬的过程,而空闲时间总是充满着下坡的路,人总是会向着压力小的方向走而不想学习。你给自己限定了一个学习时间相当于一个外部约束力约束自己。实践下来,周一到周五每天可以有3个小时来学习,周末每天有4个小时来学习。

还有一个就是限不限制时间问题。这个是一个可选项,你根据自己的需要来决定了。一般来说加上时间限制会更有效率。比如你要完成一个学习任务,设置了一个dealline,你可以用倒推的方式把任务细分并分派好时间,然后一一执行。实际上你会发现时间不够,很多事完成不了,你这时需要狠心砍掉一下事才行。还有一种是顺着推。按顺序估计每项任务的时间。两种方式任你选,不过选倒推的方式更有高效。

6.2 早睡早起

如果你是在工作之余学习的话,那么你可能会选择晚上来学习。但有时候你会发现一天工作已经很累了,再学习精神状态已经支撑不下去了,这时候怎么办?你可以试下把晚上学习的时间调整到早上。早睡早起,把学习时间移到早上来。这样学习时间虽然没变,但是精神状态却变了,学习效率就不同了。

七、总结

反馈式学习是以反馈作为一种学习,你需要想办法把你学习的形式变成一种有反馈的形式,然后把自己放到里面去迭代,在疑惑和探索中成长。上面的几种学习方式相互渗透,相互补充,在实际运用中根据实际情况灵活运用。上面的反馈式学习可以用4个关键词来概括:模块化,容器化,复盘反馈,积累。