Anki是一种抽认卡程序(可在计算机,智能手机和平板电脑上使用),使它更易于学习。 它使您可以创建自定义闪存卡,然后根据自从检查卡以来已有多长时间以及它认为您对它们的了解程度来选择要检查的卡。
您可以通过以下三种方式使用Anki帮助您学习编程。
用法1:记住有用的代码
假设您正在使用Ruby创建一个命令行界面(CLI)程序,该程序将输出“嘿”,除非您的用户输入“停止说嘿”。 烦人,我知道。
您认为您对如何制作该程序有一个很好的主意,但是您对如何编写循环却一无所知-在运行每个循环之前如何获取它以接受gets.chomp并将其与用户输入进行比较?
经过一番尝试和错误之后,您想到了一个不错的解决方案:

大! 该程序有效。 现在您遇到了另一个问题-您如何记住代码,以便在创建时可以使用它?
简单! 转到Anki并为其创建一个闪存卡:

然后,当您将来查看Anki抽认卡时,会得到一张卡片,提醒您您的代码:

am! 记住有用代码的简单方法。
用法2:避免过去的错误
假设您(假想地)通过Flatiron学校的Ruby on Rails实验室度过圣诞节假期。 您正在尝试为SchoolClass创建模型,但由于某种原因,该模型无法正常工作:


您花了一个小时来检查它,但是当它遇到您时,您无法弄清楚为什么这样的基本模型不起作用-Rails知道要寻找SchoolClass常量,但是找不到该文件,因为文件名格式不正确。 Rails读取schoolclass.rb作为Schoolclass的模型-为了解决这个问题,您必须在文件名中添加下划线:

您解决了该问题,然后决定将其输入到Anki中,以便您不再重复该错误:

瞧! 现在,要重复该错误将更加困难:

用法3:提醒您最佳做法
这次,当您看到一些未遵循的建议时,您正在阅读一些内容。 显然,在命名目录时,最好的做法是:
- 避免大写,除非目录位于主目录中
- 使用破折号(–)代替下划线(_)
- 将所有代码都放在一个地方,因此很容易访问
为了提醒自己,您创建了Anki闪存卡:

提示您遵循以下做法:

所以呢?
间隔重复的想法是,如果您在一段时间内重复进行学习,则比尝试在一次补习中补全所有内容容易学习。 一个3小时的学习课程不如一个月中的三个1小时的学习课程有效。
作为一个新手程序员,我花了很多时间在知识上(不必要)。 我了解有必要审查旧概念,但几乎没有时间进行审查。
不过,幸运的是,Anki对我来说很容易-在学习新材料的同时,我还为重要点(有用的代码,可避免的错误和最佳实践等)创建了抽认卡。 Anki会负责所有其余的工作-当我打开它查看地铁上的卡时,它会根据我上次查看的时间以及对它们的了解程度,自动为我选择最佳的卡。 这很好,因为否则我将永远不会查找旧的东西,并且每次我想使用它时都必须重新学习旧的材料。
(有关Anki和编程的更多信息,请参阅由Derek Sivers使用间隔重复软件和Jack Kinsella改进的Janki Method记忆存储编程语言)