在最开始了解到这个应用的时候,我无法简单地用一句话来形容这个应用,大部分人将它称为背单词软件,单词记忆应用,部分人有拿他作为知识管理应用,甚至有人拿他来学习乐谱,诗歌,但总之如果要用简单的话来描述这个软件,那么跨平台必定是关键词,另外一个关键词就是卡片(flash card),在另外一个就是循环记忆,那么至于卡片上承载什么样的内容,就完全由用户来决定了。
德国心理学家[[莱特纳]]在 1970 年出版了他一部重要的著作《How to learn to learn》,他在这本书中引用艾宾豪斯的遗忘曲线,发明了「莱特纳系统」,也就是「间隔式复习」的方法,让记忆达到最佳。
[[Anki]] 就是间隔式复习的一个实现方式。Anki 中通过模拟卡片的前后两面,通过内置的算法,间隔记忆卡片的内容,可以在卡片上写任何内容。
很长一段时间内我都无法很好的尝试使用 [[Anki]] 来进行记忆,烦恼我的一点理由就是 Anki 的卡片制作过程,我知道很多人都说学习记忆是在卡片制作过程中,但是我发现制作卡片花费的时间已经超过我使用纸张来记录的时间。所以很长一段时间内 Anki 就躺在我所有的设备上,虽然偶尔会打开一下,但是依然没有养成每天记忆的习惯,反而在其他背单词软件中坚持了下来。但是在使用线程的单词记忆软件的时候,我不时的会想起 Anki 来,也渐渐地发现线程的单词记忆软件有其自身的缺点,而这个缺点正是 Anki 可以弥补的(虽然可能需要花费一些时间来熟悉 Anki)。
Anki 背后的两个思想
- 主动召回
- 主动召回就是通过提问,回答来记忆,用户主动回答问题。主动召回会激活大脑中的多个区域,迫使用户去思考和理解信息,有助于将新信息和现有知识建立链接
- 记忆的时候有很多方法,
- 被动回顾,翻书,被单词,被动的阅读,听或者看。
- 联想法,通过联想记忆
- 打桩记忆法,将要记忆的东西和所熟悉的事物联系起来记忆
- 蔡格尼克记忆效应,人们对于尚未处理完的事情,比已处理完成的事情印象更加深刻
- [[费曼学习法]],适合学习语法,输出是最好的输入
- 间隔重复
- [[间隔式复习]] 的目的,就是让被记住的内容可以间隔比较长时间再复习; 对于快速忘记的内容在间隔比较短的时间就复习; 透过复习的手段让所有学过的内容都越忘越慢,几次反覆下来,就可以达成完全记住的目的。
一些使用的误区
比如使用通常的软件来背单词,优势在于这些软件可能事先已经准备好了单词集,发音,例句,讲解等等,然而在使用过程中就会发现这些东西始终是字面上的东西,即使记忆了和多遍,依然没有被录入到自己的脑袋里。反而有些时候,比如某一次到异国他乡遇到的一个单词,像烙印一样深深地印在脑子里,每一次想到这地方脑海里便会回忆起这个单词。丝毫没有可以去记忆,但潜意识中就已经将这个单词记忆下来了。所以这个时候我又想起了 Anki,对于想要记忆的东西,不妨用自己的语言描述放到 Anki 的背后,写一段故事也好,描述一个场景也好,自己写下来的东西,每次翻到的时候记忆总是要比别人准备好的东西要深刻。
另外一个使用 Anki 的误区便是,当你发现你在制作卡片时陷入了不间断的 Copy/Paste ,那么请立即停下来,就像 这里 说的那样,首先去理解你要记忆的东西,否则你会陷入无限的知识债务。这一点和做笔记的时候不停摘录而不去消化,买书屯书而不读是一样的,理解了才能真正成为你自己的东西。
end up accruing a lot of ‘knowledge debt’ that you’ll have to pay for down the line.
应该花费更多的时间来理解需要记忆的内容,而不是在制作卡片上。当对内容理解越深刻,那么以后 reviewing 或者 recalling 的时候花费的时间也会减少。
下载
官方网站:
下载解压之后有 README,看其中说明,安装即可。
使用场景
任何需要记忆的内容都可以使用 Anki 帮助进行,Anki 不感知内容,支持图像,音频,视频,甚至科学符号(LaTeX),比如你可以使用 Anki:
- 学习一门语言,通过 Anki 背诵记忆单词,学习语法知识
- 准备医学或者法律考试
- 记忆人的名字或者脸
- 记忆长段的诗歌
- 甚至记住吉他的和弦
- 学习哲学家的主要观点
理念
Anki 背后的理念:
- active recall testing 主动召回测试,制作和使用卡片正面的问题去记忆背后的内容
- spaced repetition,间隔重复,通过记忆程度来不断设置复习时间间隔
几个概念
官方文档已经非常细致,可以直接 阅读 ,这边只列举一些比较重要的内容。
- Cards 卡片
- Deck 卡组,包含卡片的集合,可以导出为
apkg
文件
Cards
卡片,Anki 的核心概念,正面问题,背面答案,或者正面单词,背面解释。
Deck
来自朗文的解释:a set of playing cards
,翻译为一组卡牌
Profile
朗文的解释:a short description that gives important details about a person, a group of people, or a place
,翻译为档案,介绍也都可以,在 Anki 的 File 菜单中,可以切换 Profile,不至于导入别人的卡牌之后弄乱自己的设置,或者自己在使用时也可以根据不同的场景定义不同的 Profile。
学习
学习过程中,打开 Decks 可以看到一个 Overview,卡片的种类被分为三种类型:
- New, never been studied before
- Learning, cards have been seen for the first time recently, and are still being learnt
- To Review, cards were previously learnt, and now need to be reviewed so you don’t forget them
首次学习
进入到卡片学习,底部会有多个按钮,第一次学习的卡片会出现三个按钮:
- Again moves the card back to the first step
- Good moves the card to the next step.
- Easy immediately converts the card into a review card, even if there were steps remaining
Reviewing
再次学习一个卡片的时候,也就是 review 阶段时,有四个按钮
- Again,let Anki to show the card more frequently in the future
- Hard,shows the card at a slightly longer delay than last time, and tells Anki to show the card more frequently in the future.
- Good, tells Anki that the last delay was about right
- Easy, tells Anki you found the delay too short
上面的按钮对应的快捷键是 1,2,3,4。
每一张卡片都会经历三个阶段:新卡片、学习中、结束。
其他
- Flag Card: 标记卡片,为卡片增加或删除一个彩色标记。
- Mark Note: 标记笔记,为当前笔记添加 marked 标签
- Bury Card / Note: 搁置卡片 / 笔记,从复习队列中隐藏卡片或笔记,直到第二天
- Suspend Card / Note: 暂停卡片/笔记,暂时不想某笔记,又不想删除它的时候
- Delete Note: 删除笔记
Bury card
Bury card 表示暂时不显示该卡片,但是该卡片会在之后再显示出来。
这个模式适用于,比如当前的卡片暂时不想记忆,然后类比就是将此卡片直接放到了牌堆的最后。但是随着复习总有一点还是会复习到此卡片。
Suspend Card
Suspend Card 表示将此卡片移除牌组,永远也不回再展示,直到用户手动 unsuspend 才会继续放入牌组。
这个模式适用于,比如某个阶段不想记忆某个卡片,直接将此卡片移走的情况。比如说如果发现卡片存在错误,需要手动进行修复一下,那么就可以先标记 suspend 然后继续。
学习资源
官网那一定是最全的,包含各国语言
插件
Add-ons
推荐几个(只适用于我目前使用的 2.1 版本,随着时间变化,下面的 id 可能失效):
- 900455869 TTS 发音
- 1612375712 触发全屏
- 2055492159 AnkiConnect
- 775418273 WordQuery https://github.com/finalion/WordQuery 用来简化制作卡片的过程,查询单词立即自动制作卡片,支持从 mdx stardict 字典中直接检索,支持网络字典
AnkiConnect
[[AnkiConnect]]源码地址:https://github.com/FooSoft/anki-connect
这个插件将 Anki 的功能暴露一份 RESTful 接口,这样就可以用接口方式来操纵 Anki。安装开启该插件后会监听 8765,默认绑定 HTTP 服务到 127.0.0.1,只有本机可以访问该服务。如果想要其他网络访问,可以设置环境变量 ANKICONNECT_BIND_ADDRESS
为 0.0.0.0
。
FastWordQuery
可以从不同的来源将词添加到 Anki
自动化制作卡片
Saladict to Anki
2021 年更新
之前推荐的 Chrome to Anki 插件已经很久没有更新,所以又找到了 Saladict 这样一款插件,在设置中可以很方便地找到如何连接 Anki。
Chrome to Anki
需要借助一款 Chrome 插件
和一个 Anki 插件
这两个插件都是开源 12 的,看官方的说明也很简单就略过了。
GoldenDict to Anki
虽然目前一直在寻找方法能够间 GoldenDict 查词记录自动制作卡片到 Anki,但是目前尚未找到合适的方法,虽然有了解到可以使用 mdx-sever
共享一个 HTTP 服务,然后使用上面的方法自动制作,但感觉依然有些麻烦。Anki 上的卡片还是自己手动创建比较稳妥。
Kindle to Anki
对于 Kindle 我很少将它连到电脑上做导出导入的事情,所以这个不准备弄了。
如果对于 Kindle 有重度依赖,并且希望使用 Anki 的方式来整理标注的话,可以试试 ankindle 这样一个插件,可以导出单词和标注,并且制作成 flashcard 用来记忆。
Tips
几个小小的 tips.
Add-ons
固然是非常有用,非常强大的,但是千万不要在上面花费过多的时间。在软件工程领域有句话,越早的优化可能带来灾难,get things done 要比优化重要的多。- 在 Revising 卡片的过程中,及时的将卡片标注为是否需要编辑,然后及时的更新卡片的内容
搭建 Anki 同步服务器
参考官方的 repo
需要注意的是目前这个 Anki Sync Server 只支持特定版本的客户端,需要到 GitHub 页面自己确认一下。
Install
可以使用 这个 docker-compose :
version: "3"
services:
anki-sync-server:
container_name: anki-sync-server
image: kuklinistvan/anki-sync-server:latest
restart: always
ports:
- "27701:27701"
volumes:
- ./data:/app/data
服务端创建用户
sudo docker exec -it anki-sync-server /bin/sh
# help
/app/anki-sync-server/ankisyncctl.py --help
# add user
/app/anki-sync-server/ankisyncctl.py adduser username
input password
# list users
/app/anki-sync-server/ankisyncctl.py lsuser
# modify password
/app/anki-sync-server/ankisyncctl.py passwd username
Linux 等桌面客户端
菜单,工具,插件,安装插件 2124817646
:
http://1.2.3.4:27701
http://1.2.3.4:27701/msync/
Android 客户端配置
在客户端,设置,高级设置,自定义同步服务器中设置。