我为何使用Anki
最近在准备GRE考试,试用了市面上大部分的软件,效果都不甚理想。个人认为,学习,无论是背单词还是其他,都讲求一个循序渐进。以琦叔的《GRE核心词汇考法精析》为例,一个单词可能有多种释义,每个释义都有同反义和派生词,释义本身又分中英文,第一遍学习是不可能面面俱到的。一个合理的方案,第一遍学习,只记忆简单的中英文释义,例句、词根、词源等辅助理解和记忆;第二遍,将单词抽象到所属的意群,记忆单词之间的关联,即同反义;第三遍,考察单词的使用情景;第四遍,造句或翻译,将被动词汇(见到便能理解)转变为主动词汇(想到便能使用)。我相信,这是一切学习软件应照顾的根本需求。可市面上,绝大多数软件还停留在学习内容不达标的水准上,哪里还有精力去优化学习流程呢。举几个例子吧。
扇贝。网站的理念非常好。也有用户上传了《GRE核心词汇考法精析》的词表。但因为版权缘故,单词的释义和例句仍是扇贝自己的。有多烂,相信用过的人都懂。当然你可以购买COBUILD,但那个词典并不适合GRE。虽然用户录入的内容部分弥补了内容的不足,但浏览笔记、找到高质量的笔记、收藏笔记这一流程本身也是有成本的。核心词汇四千多个单词,如果每一个都要手动精炼内容,成本不可想象。
考满分网出品的APP再要你命三千。看上去很美好。书籍内容完整录入,排版凑合,区分了小三千和大三千,对应我之前提到的学习方案的第一遍和第二遍,还可以按List和Unit来自主学习。但是,用起来完全不是那么回事。第一,这个APP基本没有安排单词复习的算法,同直接背书本没有差别。第二,所谓的大三千,只是把同反义的内容简单加在了释义后面。而且没有把同反义区别对待。以上说了两个典型。
还有大量未涉及的应用,都是半斤八两的水平。
如果没有更好的替代,我也许会选择忍受工具不成熟而产生的各种不便利。但Anki就在那里,冷傲的注视着这一票为了小白用户开发的软件,蔑视着它们的种种幼稚与不足。她的潜台词是,虽然我有些难以驾驭,可一旦你掌握了如何使用我的精髓后,我能满足你的一切需求(然并卵的同学此时可离开了)。先给大家上一个图。
anki1.png这个记忆库内,我整合了从Amazon购买的《GRE核心词汇考法精析》、《GRE核心词汇助记与精练》,以及从网上找到的“不择手段背单词”的txt文档。我把单词按照用法拆分,以逐个攻破。
在这张卡片中,从上到下,以水平线划分了10个区域。区域1,单词本身。区域2,词性、音标,中英文释义。这个区域内的内容是我要记忆的。区域3至区域9辅助记忆。区域3,属于该释义的例句及翻译。区域4-区域7,《GRE核心词汇助记与精练》中涉及到该单词的内容。区域8,不择手段背单词的内容。区域9,在线词典。区域10,单词卡片的标签,方便自定义学习。上面这张图片,其实是一张flashcard的背面,正面的内容同区域1相同,我就不贴图片了。而这张flashcard本身的类别是usage。其他类别还有ants、syns、pronounce。每一个单词,Anki都根据我设置的规则,自动生成了这四类flashcard。事实上,Anki可以让我极其方便的统一修改卡片的排版与内容,以定制个性化的学习流程。
以上,我详细描述了一个使用情景,旨在表明为何一定要使用Anki。如果激发了你的兴趣,欢迎阅读下面的Anki简介。至于使用Anki背GRE单词的经验(卡片设计、内容整合、流程优化),我会在下一篇文章中详细介绍。
Anki 简介
其实,大部分记忆软件(甚至是词典软件)都允许用户录入自己的内容,只是录入的效率、使用的灵活性千差万别。Anki无疑是其中的佼佼者。这得益于Anki的设计理念——将内容与形式分开对待。
一张flashcard,不过是对一个话题(Topic)衍生出的一个知识点的一种呈现方法。以背单词为例。一个单词即一个Topic,相关的知识点有拼写、发音、释义、例句、同义词、反义词、同义词辨析等等。一张flashcard的问题与答案不过是各个知识点的排列组合,所以一个Topic可以衍生出许多张flashcard。比如,一张flashcard可以在正面呈现单词的发音,反面要求你拼写单词;或者正面呈现单词的拼写,反面回答单词的释义。
在Anki中,知识点放在Fields(字段)里,一个Topic所含的所有知识点构成了一个Note(笔记),所衍生的所有flashcard叫作Cards(卡片),一张card正面反面分别放什么(知识点如何组合)、怎么放,由Template(模板)决定。Note本身又可以抽象出NoteTypes(笔记类别)的概念。比如,单词与数学定理,其知识点的结构应该很不一样。单词可以有拼写、发音、释义,数学定理则有定理名称、定理内容、定理证明等。因此,应该设计两种不同结构的Note,于是自然引申出Note Types的概念。
上面的描述既抽象也不甚准确,举个例子大家就明白了,看下图(为了方便描述,后面会一直使用Field的中文,即“字段”):
anki2.png我设计了一个Notetype,名字叫GreWord。左侧图片展示了其结构(有哪些字段),右侧展示了该Notetype的一个Note。其中,word
是字段名,"abandon"是word
字段的内容。注意,在Anki中,一个note应该有一个属于自己的唯一标识,概念上对应于“如何称呼这个Topic”。在这里,我将这个唯一标识设定为字段word_uid
。相信有编程基础的人读到这里一定为我感到着急:左和右不就是对象与实例的关系么!的确,只不过我不想引入任何编程术语。我希望电脑小白也能通过我的文章认识到Anki的魅力。下面再来看看这个Notetype可以生成哪些卡片。我一共设计了4类flashcard,这里只展示最简单的一类:syns(同义词)。
左侧即控制卡片内容与形式的规则,右侧是卡片的预览。左侧有3个大区域。上部控制卡片正面,中间控制卡片的整体样式,下部控制卡片背面。这套规则的语法主体是HTML和CSS。但你并不需要对这两者有太多了解,也能很快上手。以正面为例:
{{#syns}}
<div style='font-size: 40px;'>{{word}}</div>
<b>synonyms</b>
<br><br> of meaning<br>'{{explanation_en}}'
{{/syns}}
-
{{#syns}}...{{/syns}}
是一个条件判断,Anki语法。如果字段syns
的内容不为空,那么展示{{#syns}}...{{/syns}}
之间的内容。(...
代表之间的内容,下同) -
<div ...>...</div>
,HTML语法,只是为了控制样式。其中,style='font-size: 40px
,设置<div>...</div>
之间的文本字体大小为40px。 -
{{word}}
,对应字段word
的字段内容。对于abandon这个词来说,即"abandon"。 -
<b>...</b>
,HTML语法。加粗之间的文本。这里即加粗"synonyms"。 -
<br>
,HTML语法。表示换行。<br><br>
表示连续换两行。 -
{{explanation_en}}
,对应字段explanation_en
的字段内容。这里即"to give(oneself)over unrestrainedly"
刚才介绍的第一点语法,Anki称为conditional replacement。其主要目的在于避免程序自动生成不合理卡片。比如,对于一个出现在卡片正面的字段(作为问题的字段),有些note该字段的内容可能为空,那么自然不该生成一个问不出问题的卡片。类似的,如果一个字段作为答案但内容为空,那相当于一个有问题却没答案的卡片,也不该生成。这里,由于问题的答案即字段syns
的内容,所以要预先判断下该字段内容是否为空。相较Note更高一层的概念是Deck。可以简单理解为Deck是存放Note的地方。一个Deck里,可以存放属于不同NoteType的Note。Note与Deck的关系相当于笔记与笔记本。比Deck再高一级的是Profile。即Anki允许多用户同时使用。一个用户可以有多个Deck(笔记本)。所有的数据在用户间是彼此独立的。Profile与Deck的关系可类比为张三的笔记本与李四的笔记本。
写到这里,相信读者不难发现,Anki虽然不是零基础即可上手的小白软件,但学习曲线并不陡峭。只需要掌握一点HTML的语法,即可随心所欲的设计卡片。但工具终归是工具。工具本身并不能解决问题。如果你是个懒人,Anki并不适合你,因为如果你不经常使用它,那么所谓的卡片制作和管理效率的提升其实不值一提。而如果你是个有毅力而且喜欢自己动手丰衣足食的人,或者你把自己定义为一个终身学习者,那么Anki无疑是你的最佳选择。最后一个章节,我统一回答下有关Anki的常见问题。
Anki-常见问题
-
Anki是免费的么?
部分是。Windows、Mac、Linux/BSD以及Android版本都免费。IOS卖24.99刀。另外,Anki还有个免费的网页版,Ankiweb。不过,还是用桌面版,功能最齐全。所有版本的下载链接都可在官网找到。 -
Anki的IOS版为什么卖那么贵?
Anki的开发者全职开发Anki。程序员需要养家糊口。而且Anki提供的多平台服务需要租用服务器,成本不可忽视。既然其他版本都免费了,那么只有在IOS版征收重税来补贴开支喽。 -
Anki会一直免费么?
个人认为,桌面版和安卓版也会一直免费。作者说,如果未来Ankiweb的开支过大,那么会考虑引入类似Evernote的付费机制。即对于使用多平台同步服务的免费用户,每月限定同步流量。对于会员,提高流量上限,并提供一些高级功能。 -
Anki可以本地离线使用么?
可以。只有涉及到多平台同步时,才需要联网。 -
Anki需要注册么?
如果想使用多平台同步服务,你需要注册一个Ankiweb账号。否则,不需要。 -
Anki的同步服务好用么?
肯定不如Evernote那么靠谱。而且国内的同步速度一般。不过好在很多时候,你只是同步学习进度,所以流量只有几kb。综合来看,速度可以接受。另外,Anki是开源的,基于python开发。如果有一天官方宣布停止维护Anki了,原则上你可以自己架设同步服务器。而且我相信,真到了那个时候,民间会有大神接过这把神圣的火炬,让Anki越走越远的。 -
Anki内可以添加音频、视频、图片、数学公式么?
都可以。步骤很简单。比如添加图片xxx.png
。你只需要把图片放在Anki的collection.media
文件夹下,然后在相关字段引用即可。引用语法可以在Anki的在线手册中查到。不过,目前Anki借助Latex来渲染数学公式,所以公式的编辑、预览和同步都不太方便。开发者说,未来也许会迁移到Mathjax上。 -
Anki的使用手册有中文版本么?
有。但翻译的很烂。还是去读英文版吧。 -
有没有现成的Deck可以学习?
有很多。比如,Anki官方提供的shared decks。 -
有没有比较好的Anki中文使用教程?
有。随便一搜,排名靠前的都不错。但大部分止于技术性的介绍。其实我觉得,Anki的技术只是允许你更自由的设计卡片,本身没太多值得说道的。关键是怎么设计卡片。我所写的Anki系列,会从一个个具体的使用情景出发,来分享我设计卡片的心得,而非小白向的科普。所以,后续文章的跳跃幅度会比较大。如果你觉得我表达还算清晰,希望我能多写些小白向的文章帮助读者入门,那么请留下你的评论。如果这篇文章下,求助入门教程的评论超过一百,我会单开一个入门系列。就酱。(唉,旧坑未填,又开新坑)
最后,如果你觉得这篇文章不错,请点击下方的喜欢按钮,谢谢支持!
网友评论
能不能写写anki和supermemo的主要区别?
期待。
还想问一句,作为一个零基础的编程小白,请问需要从什么开始着手学习一些编程知识来更好地使用anki呢?
另外大致看了你在Github的代码,评注很详细,点个大大的赞。
不错,从Kindle电子书入手是一个非常聪明的方式。与作者相同的遭遇,曾经想利用anki来攻克考研词汇,也曾因词库的格式问题而苦恼,最后将就用网上的Excel词汇表生成5500的考研词汇。Kindle的格式确实接近完美。
这样,Python结合正则表达式,确实可以短时间搞定这个数据字条巨大的任务。
刚刚考完研,用anki被单词和政治,还有复习高数错题;
目前在读经济学人,结合anki,感觉在复习效率上很好。
看完此文,作者的动手能力很好。
希望有机会认识你,来自一个同样爱折腾的人。