复习机制的想法(关于Anki与MarginNote)
大纲:
- anki的优缺点
- 人的记忆规律(不是艾宾浩斯这些老生常谈)
- 复习机制实现的建议
这里是比较新的观点和总结,全是干货,很值得一看,比那些公众号大谈特谈记忆的诀窍要强得多。
大家都觉得anki做的很好了。我不同意,anki在应付考试这方面确实很不错。但学习的目的不只是为了考试。记忆太重要了,估计没人反对。复习太重要了,极少有人能不复习就不遗忘的吧(如果有,那不是天才,那是病,没人能选择性记忆、遗忘)。
anki的优点
- 生态和开源。我认为这是它最出色的一点。一个软件能有这么多用户参与进来,我没见过第二个(因为我太菜,没见过GNU)。你想要的,往往有大神已经做出来了。偶尔也会没有。
- 配合上插件,功能非常完善。filter deck,card browser。各种模板(html,css的支持),公式、化学式、latex支持,图像音频支持。和插件配合,支持代码块高亮插件、表格、超链接,估计都超越了大多数笔记软件。 在我心里,它的笔记支持是最好的。markdown原生不支持音频、图像也很弱。onenote太强大了,力不从心,不支持latex。印象笔记就更不用说了,代码块高亮都不支持(虽然配上tool是可以有的,只是很麻烦)。富文本,虽然也都能支持,但排版麻烦,而且也没找到很理想的富文本编辑器。
- 多平台(所有主流平台,甚至包括linux),同步稳定可靠(只要没有冲突)。
flashcard该有的anki全都有,尽善尽美。而且社区也在不断壮大,迭代速度也很快。
anki的短板
anki功能上堪称尽善尽美,它的缺点是设计思路上的,插件很难弥补。
缺乏整体的连接,知识是碎片的
用来学学语言挺好的,学个初等数论、几何,就把知识割裂开了,一般的学科就像搭积木,没有这一层就没有上面一层。知识与知识之间有联系的。
anki局限在一个卡片了。anki的卡片没有url,估计短时间内都不会支持。
举个场景,简单线性回归OLS中b的表示方式可以是Xi的线性组合。用anki,你记住了Xi的线性组合系数ki的3大性质。但你无法将OLS与非OLS的线性无偏估计进行比较,后者也有2个相同性质,只差第三点。
你也想不到,这简单线性回归中,这个知识点在什么位置。但
用思维导图你就能看到,这就是我比较坚定地认为MN更好的原因。
一句话,知识是散的,不成体系、难以梳理,这是flashcard的固有缺点。
忽略了卡片难度的巨大差别
我发现的基本规律,那就是,10个知识点,有7个很简单,比如概念和定理本身和定理的一些显然的推论。3个很困难,比如定理的证明,比如一道综合性强的题目。但anki的算法对难度不敏感。我复习的时候,经常想,这么简单还好意思出现?或者是,根本不记得了,我记忆力好差。就是因为anki没有考虑到二八定律(20%的时间用于80%时间的考虑)。把大量时间用于简单内容的复习上,让人不胜其烦。
算法不合理
anki算法基础就是记忆是按指数衰减的。记忆指数衰减规律真的对么?我不这么认为,或许因为我的记忆力比一般人差。背了那么十几天GRE,间隔稍微长一点,又不记得了。
我觉得是大家误解了艾宾浩斯实验本身的意义,是强行推论。艾宾浩斯只是告诉我们,适当安排复习是非常重要的,可没告诉我们怎么才是“适当”的间隔。没说是指数,也没说这个衰减的公式是什么。我不同意指数衰减,人脑对困难的材料没那么强悍。比如要是有人跟我说,GRE单词难度是指数衰减的,我就不信,顶多是个等差数列级别的。我只同意一点:一开始的复习很重要。后面是我关于人的记忆的猜想。
再来一遍?
有时候,有个知识点我忘了,此时我不想复习那几十张其它的,就想记这个。我得新建立一个deck,再移动过去。记完了再移动回去。2.0版本有个插件可以做到预览复习,2.1这个插件就不支持了(但估计迟早会支持,作者是一位大神)。
我总结的记忆规律
最开始的那一段时间(比如一周)的密集召回记忆是最重要的。如果能应用,比如给同学讲讲,效果会更好。总之就是一开始要走心,要多想多用。如果我给同学讲了一种方法,那么这种方法我会记很久。到大学这么操作不容易,没这个氛围。
我有些诗文记得很牢,不是因为我指数间隔复习,而是因为一开始的那一段时间过于密集地复习,老师也抽背,同学们之间互相考着玩。比如背《醉翁亭记》《岳阳楼记》,那几天总是在想这个,下课就背上两句。尽管后面没怎么复习,还是记很久。反观《马嵬》,背的时候没怎么走心,几下背了就不管了,现在都只记得最后两句了。
你是不是感觉小时候背的东西记得很牢,怎么也不会忘。其实是因为小时候学的知识太少了,能反复巩固。你想想,是不是背了首李煜的《虞美人》,就迫不及待地跟父母同学展示?
我对MN复习机制设计的建议
这个想法很不成熟,纸上谈兵,不过只是说来听听:
- 关于复习的参数,是卡片本身属性的一部分,就像标签一样。最基本的属性是:开始学习的时间,上一次复习到下一次复习的间隔,它选择的记忆路线 ,它被记忆了几次(index)。如果有遗忘,那么index重置为1。 记忆路线:可以由用户自定义,很简单,只是常数数组。比如:1,1,1,1,8,20。表示的是,上一次复习到下一次复习的间隔。 实际上记忆路线只是个参考,用户可以自己定义下一次复习时间。那么记忆路线是不是乱套、不能用了呢?不,它继续按照index和路线数组决定。比如,这是第3次记忆,我自己选择了一个新的间隔,那么下一个间隔继续按照a[3]这样,就好像之前的手动选择没发生过一样。反正维护的只是间隔,不是日期。但是实际UI中,为了方便用户,可以选择日期,日期更直观。 用户也可以选择重置。
- 关于上一点我觉得如果能与搜索过滤设置配合就更好了。就是找出遗忘的,这样不用到复习界面就能复习,好处是看得更快。
- 对于难点的复习,由用户标注为难点,在一开始给它安排大量复习。意思是,用户循环完一遍以后,这个循环就再次开始,而不是像现在这样,今天复习就结束了,记忆不结束,直到没有难点为止。排序也要调整,上一次的错误排在前面。要提醒用户,这种卡片记忆压力很大,不是重难点不要标记,否则就是浪费时间。 那么什么时候变成普通的卡片呢?
- 用户标志熟记。
- 记录一下整个用时,当时间小到一定程度的时候,且连续好几次时间都很短的时候,从难点变为普通。
这两点做到以后,实际上就是少数的难点(大概1/4-1/5的样子),和不怎么需要操心的简单卡片。让用户把复习时间花在刀刃上。