使用 Anki

计算机专业课程囊括了大量需记忆的知识点,这些内容若不经常复习,极易忘记。鉴于这一挑战,本节将推荐使用Anki这一强大的工具。Anki能够协助我们制定针对性的复习计划,确保每个知识点都得到适时的巩固和回顾。

人类的遗忘曲线

如果你还不熟悉艾宾浩斯记忆遗忘曲线,请允许笔者在这里为你介绍一下:

人类的遗忘曲线是由德国心理学家赫尔曼·艾宾豪斯(Hermann Ebbinghaus)于 19 世纪末提出的概念,用来描述人们在学习新知识后随时间逐渐遗忘的情况。这一概念对于理解记忆和学习过程中的遗忘现象非常重要,也对制定有效的学习策略有着重要的指导意义。

Memory
Memory
The remembered ( days
The remembered ( days
Text is not SVG - cannot display

遗忘曲线的主要特点包括以下几点:

  • 遗忘迅速:在学习新信息后,最初的遗忘发生非常迅速。艾宾豪斯的研究发现,学习后的第一天,人们可能会遗忘掉大约 50%的新信息。
  • 遗忘逐渐减缓:随着时间的推移,遗忘速度逐渐减缓。也就是说,在最初的几个小时或几天内,人们会遗忘最多的信息,但随后的遗忘速度较慢。
  • 遗忘稳定:一旦过了一定的时间阈值,遗忘曲线会趋于稳定。这意味着在一段时间内(通常是数天到数周),遗忘的速度相对稳定,而不再像最初那样迅速。

遗忘曲线的重要性在于它提醒我们,学习仅仅是获取信息的一部分,而记忆和巩固知识同样重要。

408 的复习难点

我想首先说一下我理解的 408 的复习难点:

  • 知识点太多,很多知识点在一段时间后容易遗忘,或者出现记忆不牢固的现象,在做题时难以迅速回忆起来
  • 很多知识点是记忆背诵性的内容,相比理解性的内容,记忆性的内容更加容易遗忘
  • 扫荡式的复习太耗费时间,效率不高,有工具帮助自己记录哪些知识点最需要复习最好

接下来我会介绍 anki 这款程序,并且说明使用 anki 如何可以解决上述问题,然后结合我自己的使用经历来阐述如何可以更好地使用该软件。

Anki

什么是 Anki

Anki 是一款非常流行的开源记忆卡片应用程序,旨在帮助用户更有效地学习和记忆各种知识。Anki 的名称源自日语单词"暗記",意为"记忆"或"记住"。它的主要特点是使用一种名为"间隔重复"的记忆技术,通过定期重复学习材料,以帮助用户更容易地记住信息。

Anki 以词条的方式记录信息,词条包含正面和反面,正面记录问题,反面记录答案。

选择特定的 deck 进行复习

choose_deck

向 anki 的某个 deck 中添加词条

add_to_anki

使用 anki 复习

anki_front

查看之前编辑的答案

anki_back

Anki 中的算法可以按照艾宾浩斯记忆遗忘曲线为你安排复习进度,在每次打开答案时,你会有四个选项:

  • Again:完全忘了
  • Hard:花了很大的功夫才从头脑中搜寻出该问题的答案,但是还是想起来了
  • Good:花了一小段时间回忆起答案
  • Easy:很轻松快速地就回忆起答案

Anki 会根据你的选项为你安排下一次复习进度,安排的过程是根据 Anki 内置的算法,算法主要基于该词条的复习次数、距离上一次复习的时间以及你主观地当前对于该词条的记忆程度的评估。

Anki 是一款开源项目,其算法内容依据了最新的关于人类记忆方式的研究,根据笔者的使用经验,Anki 确实帮助我更加牢固地记住了知识点,所以我也在这里大力推荐这款程序,目的也是帮助各位读者可以在最短的时间内取得最好的学习效果。

使用 Anki 的好处

  • anki 安排的复习流程符合遗忘曲线, 与人脑的客观规律相匹配,可以最大化我们的复习效率,帮助我们用最少的复习次数记住知识点
  • 主动回忆 的复习方式,anki 中很好的一个点就是你每次在看到问题时是在主动回忆曾经不熟悉的知识点,这一点非常重要,这种复习方式远远优于你把书本翻一遍又一遍,低效率地阅读重复。这也与费曼学习法相匹配,这个时候,你是自己在做自己的老师,效率相比一个“被动的学生”,肯定不知道高到哪里去了。

笔者是如何使用 Anki 的

我想从两个方面阐述一下我的 anki 使用经验,这也是经过很多时间摸索出来的最适合于我的方式,希望可以给大家带来一些思考。

什么时候添加 anki 词条

当我们复习到自己不熟悉的知识时,都可以向 Anki 中添加新的词条。但是这种情况会有一个问题,就是打开电脑或手机添加词条会打乱当前的学习节奏,也使得当前的学习过程中断了,反而降低了学习效率。

笔者在过去复习过程中,当遇到一个可以添加的词条时,我并不是马上打开 anki 进行添加,而是将该问题记录到一张纸上(只记录问题)。随着今天的复习流程结束,纸上可能已经包含很多问题了,比如可能是如下的情况:

  • 如何将一个数组转化为一个大根堆, maxHeapify 的算法过程
  • 三次握手中 flag, seqno 以及 ackon 是如何设置的
  • TCP 的拥塞控制算法有哪几种,拥塞窗口在每个算法中是如何变化的
  • ……

在每天的一个 固定时间段 ,可以是当天复习完成后,也可以是其他时间。我会将之前总结的问题 使用电脑批量添加 到 anki 中,这种方式除了使得添加的过程不再分散外,也可以帮助我们对于之前记录的问题进行初步地复习(你在编辑和添加问题时就已经在复习了)。添加 Anki 答案时可以不用写得特别详细,列出其中的关键点就行,这里我们主要还是利用 anki 帮助我们在适当的时间进行主动的回忆。

什么时候复习

我之前是喜欢在晚饭后进行复习,拿着手机,打开 anki 软件,一边沿着学校散步,一边回忆知识点,个人感觉比较放松惬意。其实复习时间还是因人而异,只要每天都拿出固定的时间段来就可以。

如何组织 Anki 的词条

Anki 中有一个 deck 的概念,即一个词条组,用于组织一系列同类的词条。你可以将不同的主题创建为不同的 deck,比如数据结构创建为一个 deck,然后计算机网络再创建为一个 deck。在每个 deck 中你可以为每个词条创建多个 tag 标签,在 Anki 的词条浏览器中你也可以根据 tag 对一个 deck 中的词条进行检索。

笔者的组织方式稍有不同,我在考研期间只创建一个 deck 叫做 Grudate ,对于 408 中的不同科目,我在创建词条时为其打上相应的 tag 。组织方式如下:

  • deck (Grudate):
    • tag (ds)
    • tag (network)
    • tag (cons)
    • tag (os)
    • tag (math)

其中 dsdata structure 的缩写, networkcomputer network 的缩写, conscomputer constition 的缩写, osoperating system 的缩写。

对于笔者而言,这样组织比较简单,也避免了在多个 deck 中跳跃建立词条的麻烦。并且这样在复习时 Anki 会为你交叉地安排不同科目的知识,我觉得这样复习效果意外地还不错,推荐大家尝试一下。