已收录于「一周年」专栏整理
本文是我对 YJango 先生的学习观的理解,以及如何用于优化 Anki 学习法。 虽然结论在文末,但是建议看完文章内容,因为结论的描述不是知识,只是信息,看完文章并产生自己的联想,才是学习到了知识。
接下来,我会将 YJango 先生分享的学习观中的知识替换为数学中的函数(也包括计算机中的函数),并结合物理公式来阐述我所学到的学习观,以及对我目前使用 Anki 学习的方法加以改进。
以匀速直线运动为例,某物体的速度 ,那么经过不同时间,物体的位移就不同,如果我们测量几个时刻的数据,就会得到下面的结果
理论上,我们可以测量无数次,把每一个时刻的位移都记住,然后在以后遇到同一个速度为 的物体时能够得出任意时刻的位移。但实际上是不可能的,我们无法记住任意时刻对应的位移,我们需要能够解决此类问题的一般性方法,于是就有归纳出位移关于时间的函数。
通过上述问题,我们可以归纳出一个函数 ,这样我们就可以不需要记住任意时刻的位移了!但是,这还不够,这只是 情况下的特例,于是我们又总结出了任意速度下的函数
或许会有人问,我直接记住这个函数不就好了?
好的,假设你记住了这个公式,然后遇到了几道匀速运动的题目
题目一:条件给出速度为 12 米每秒,时间为 9 秒,你傻眼了,没给 怎么算 啊?(别笑,你就真只记住了函数)
题目二:条件 ,你又傻眼了,这符号给的不对了,怎么代入啊?(别笑,你就真只记住了函数)
题目三:条件 ,你兴冲冲的把数值代入了,然后算出来 ,但是你错了,原因是不知道这个函数是匀速直线运动才能使用,函数中的 是匀速。
还有很多例子,你确定你只要记住那个函数就行了吗?因此,老师上课时会结合很多的例子,从而帮助学生将函数内化为大脑内部的连接,而不是仅仅记住函数的表达式。
我再举一个牛顿第二定律的例子。来好好梳理一下函数与知识的类比。
, 既是函数输出的物理量,又是这个函数的函数名,可以理解为物理量是现实问题中输出,函数名就是知识的名称。而 则是函数需要的条件,也就是现实问题中的输入。等式右边的 则是函数的表达式,也就是我们反复阅读、记忆的知识的描述。
同时, 三者本身也是函数,你可能会觉得奇怪,不就是个符号嘛,哪来的输入输出?举个例子, (10千克,20克,80吨)都是 (质量),而 (10米,20牛,40秒)都不是 。所以, 这个函数限定了什么可以被它输出,什么不可以。所以我也可以把 写成函数的形式:
如果这个输入是质量,就输出质量,否则就什么也不做。这就是知识中的概念名词,或者定义。它的作用就是判断输入是不是某个类型,输出就是是和否。
所以,不论你记住的是 中的任何一个部分,或者是整个函数,你都只是在符号中打转,而书本上的知识,只不过把符号换成了你看的懂的中文罢了。所以记住知识的描述不是学习,就如记住函数表达式不是学习。当然,也有特殊情况,如果考试考察默写公式,那么记住函数表达式反而又是学习了。这里我们就要引伸出一个问题,对于不同的学习任务,什么是正确输入输出?
我们刚才提到的默写考试,正确的输入是函数名,正确的输出是函数表达式,而关于函数名到函数表达式的函数,恐怕是不存在的,所以我们只能记住这些函数表达式才能通过这个考试,这也是应对这个问题的正确学习方法。当然,这里必有一个转折。因为还有一种函数,是可以通过函数来得出的,那就是复合函数!
这里给出一个匀变速直线运动的例子:
可能我们中大多数人都是直接记忆了这个函数,然后直接用,但是这个函数其实并不是基本公式,而是由基本公式联立得出的:
由第一个函数可以得到 ,然后代入第二个函数,即可得到 。也就是说,函数 就是函数 和函数 的复合!看不出来?那我把函数写得再清楚点:
是不是很像高中学过的复合函数?只不过是多元的罢了。
而如何复合,则是关于函数的二阶函数,它们没有函数表达式,从严格意义上来讲,也不是我们高中定义的函数了,而更接近编程中的函数。这个函数的作用,不再像一般的函数那样,输入几个物理量,再输出物理量。它更加抽象,描述的是函数之间的关系,为了得到新函数 ,需要先用已知函数 推出 ,然后复合函数 ,最后整理。
而且,这种函数通常不会直接以文字的形式写出来,而是隐含在例子之中。当然,也有的老师或者教辅会归纳二阶函数,我印象比较深刻的是圆锥曲线的「建设现代化」,即建坐标系、设动点坐标、限制条件、代已知点坐标、化简整理,一下把圆锥曲线轨迹问题的解决方法描述了出来。但是如果我们不通过体会例子,就无法实际运用这个二阶函数。这里的二阶函数对应的就是学习观中的二阶知识。
而且实际上,做题做得很熟练的人,是不会有意识的去想二级函数,而是直接动笔把每个步骤依次写下来。只有当我们教同学做题时,才会拿出这些关于二级函数的描述来引导同学思考。
但是,恰恰是这种二阶函数,能让我们需要掌握的知识量大大减少,但又能解决更多的问题。依然以函数为例,假设我们学的函数有 ,而解决一个问题,从输入到输出的函数是 ,如果你学习的是这个函数(比学过的函数复杂不少),那么你将需要学成千上万的函数才能解决对应数量的问题,因为每个问题的条件各不相同,需要的输出也不尽相同。然而仔细一看,这个函数中都是我们学过的函数,其中 还重用了两次,我们只要掌握了对于不同的问题,用二阶函数将已有的函数按步骤使用,并相互组合,得出期待的答案,就能用学过的 个函数,组合出超过 个复合函数,解决指数级的问题。
关于学习观中的运动类知识和思考类知识,高中的运动类知识不多,不过我认为用 Anki 记忆大量输入对应输出,已经很接近运动类知识了,听到或者看到问题,答案立刻浮现,甚至脱口而出,这是基于我使用 Anki 的经验。因为使用 Anki ,我平时的训练就是直接从输入到输出(因为 Anki 的双面卡片的复习形式,强迫我看到问题,反应答案)。
当然,学习观并不认为记忆是一种学习,我也承认单单使用 Anki 记忆并不能让我学好。现在回想起自己当时用 Anki 记的东西,有纯粹的概念,比如成语对应的意思;有知识的一般描述,比如公式已经相关的使用条件;还有二阶知识,比如答题的步骤。单纯的从 Anki 记忆的角度来看,我确实没有学习什么东西,但是重要的是我记住了之后发生的事情。我将我记住的知识的描述对应到我遇到的例子上,迅速联想相关例子,并在大脑中建立对应的回路;我将记住的特例填补到平时的学习中,使知识体系更加健壮;而我记住的概念类知识,恰恰正是考试的部分内容。还记得文章开头的三个问题吗?其实大多数人不会犯这些错误,并不是因为我们的理论有问题,而是很多例子就存在于我们的记忆之中,或者说是经验之中。我们看到 ,自然而然的联想起匀速的汽车,在脑子做起了思想实验,然后形成了对应的脑回路。
知识的描述到底有什么用呢?就如函数的表达式有什么用?完全可以越过表达式这一步,直接代入数据,展开计算。但是教科书上总会有表达式,为什么呢?它起到了引导作用。有点像一个清单,提醒我们要做什么,而不会指导我们每项行动的具体操作,防止我们漏过某个特殊的输入与输出,得出错误的知识。当我们把知识的描述记住,就能写下来,然后看着它,激活大脑的回路。
最后,既然学习了一下学习观,还用费曼技巧,站在函数的角度理解知识,我也应该实践一下,用学习观来优化原来的学习方法。
那么,学习观对 Anki 学习法的启示是什么呢?
1. 对于一阶知识(描述输入到输出的规律),我们要尽可能的细分知识,让知识之间彼此独立,减少我们学习的知识量
2. 每个知识描述,都要附上几个典型的例子(通常的情况、特殊的情况),在前几次学习时能够帮助我们形成回路
3. 增加二级知识的卡片,以及拆分知识的例子,帮助我们学习分而治之的能力(比如解决圆锥曲线的轨迹问题所需的知识,可以拆分为「建设现代化」这五个知识按照顺序使用)
4. 明确我们应用知识时的输入输出,以此更正学习时的输入输出(比如阅读理解中的长难句,我们的输出不是翻译,而是长难句拆解而成的简单句,因为运动性的理解不需要中文参与)
5. 重视考点识别能力,从条件和问题输出题型,从而得出解题所需要的知识
6. 重视特殊案例,不能盲目依从思维定势
这样看来,其实 Anki 能学的东西非常多,不仅限于生物和化学的各种结论和定式、英语的句意理解和特殊的同根词变换,语文的积累,还有数学与物理的公式及其适用条件,题型对应的分析与答题套路,以及各种易错点,也就是俗称的坑。