把你总是反复搜索的内容做成闪卡
用闪卡学习编程时,建议将它集中用于以下三种场景:你需要能够解释清楚的编程概念、你几乎每周都要上网搜索的语法细节,以及用来预测输出结果的简短代码片段。至于编程学习的其余部分,都必须在编写程序、犯错试错和调试代码(debug)的过程中完成。闪卡的作用是辅助实战练习,而非取代写代码。
原因很简单:编程是一项输出型技能。在教程里看懂一个函数,不代表面对空白编辑器时你能自己把它写出来。然而,如果你每次写练习时都要停下来去搜“怎么遍历字典”,原本连贯的解题思路就会被打断。像这种虽小却高频用到的知识点,正是闪卡最擅长解决的对象。
精选三种最实用的闪卡类型
只保留少数几种固定的闪卡格式,能让你的牌组更易于复习和维护。以下三种题型几乎涵盖了所有值得脱离搜索引擎直接记住的内容:
- 概念题:“在 Python 中,列表(list)和元组(tuple)有什么区别?”简短答案:列表是可变的(可以修改),而元组是不可变的(无法修改)。
- 语法题:“如何获取从索引 1 开始、直到但不包含索引 3 的元素?”答案:使用切片语法 items[1:3]。
- 预测输出题:给出一小段 3 到 4 行的代码,提问“这段代码会输出什么?”答案写出准确的输出结果,并用一句话解释原因。
- 避免在闪卡里塞入长篇代码块:如果一道题你在 10 秒钟内读不完,就应该把它改成一道上机练习题,而不是做成闪卡。
来看看几个 Python 闪卡示例
第一张闪卡:如果 a = [10, 20, 30, 40, 50],那么 a[1:3] 的返回值是什么?答案:[20, 30]。切片从索引 1(即第二个元素,因为索引从 0 开始计数)开始,并在索引 3 之前停止。第二张闪卡:已知 x = [1, 2] 且 y = [1, 2],那么 x == y 和 x is y 的结果分别是什么?答案:True 和 False。运算符 == 比较的是值是否相等;而 is 检查的是两个变量名是否指向内存中的同一个对象,这里它们是内容相同但彼此独立的两个列表。
第三张闪卡:代码 for i in range(3): print(i) 会打印出什么?答案:分三行依次打印出 0、1 和 2,因为 range(3) 从 0 开始生成整数,并在 3 之前停止。在保存任何这类闪卡之前,请先在解释器里实际运行一遍代码,直接复制真实的输出结果。这样你就绝不会因为凭印象手打答案而背下错误的结果。
每周坚持写代码,哪怕只写一点点
最有效的学习闭环是将小项目与闪卡结合起来。你可以动手写一个小程序,比如读取成绩文件并计算平均分的脚本。每次你不得不停下来查资料时,就随手记一笔。等这次编程练习结束时,从记录里挑出两三个以后还会用到的知识点做成闪卡,把那些冷门的一次性细节直接丢掉。
用这种方式积累下来的牌组,反映的是你在编程中遇到的真实卡点,而不是把整门语言的官方文档照搬进来。坚持几周后,你查文档的次数会明显减少,注意力也能更多地放在问题本身的逻辑上。一旦某张闪卡连续一个月都没答错,而且你已经能在项目里熟练运用它,就不必再围绕它添加新的变体闪卡了。
分散复习,不要临时抱佛脚
Kornell(2009)对比了两种使用词汇闪卡的学习方式:一种是把所有闪卡放在一个大牌组里,每张闪卡要隔很多张之后才会再次出现;另一种是拆成几个小牌组,进行短时间高强度的集中刷卡。结果显示,对绝大多数参与者而言,间隔复习带来的记忆保持效果更好,尽管不少参与者主观上误以为集中突击更有效。虽然这项研究使用的是单词而非代码,但关于“间隔效应”的结论同样适用于任何需要你记住的知识点。
在日常学习中,每天花 10 分钟复习闪卡,效果远好于留到周日一口气刷满 1 小时。学习一门新编程语言时,每次只添加少量新闪卡,等旧闪卡按计划回到复习队列并巩固好之后,再继续添加新内容。
合上参考代码进行自我测试
Roediger 和 Karpicke(2006)以短文阅读为材料的研究发现,进行自我测试的学生在一周后记住的内容多于反复重读的学生。将这一原理应用到编程中:挑一个你之前已经做出来的函数,在不看参考代码的情况下,试着在纸上或空白文件里重新写出来并运行。运行后报出的错误,就是你最真实的复习清单。
另一种非常实用的自测方式,是在运行代码之前,逐行出声解释这段代码到底在做什么。如果你说不清某个变量的值为什么发生了改变,那么就算程序碰巧能跑通,你也还没有真正搞懂这段代码。这种逐行解释能暴露出单纯靠语法闪卡永远无法发现的理解盲区。
避开编程闪卡最常见的误区
编程闪卡之所以用不起来,原因往往大同小异。建议每隔几周就对照下面这份清单清理一次你的牌组:
- 把整段长程序直接粘贴到一张闪卡上死记硬背。
- 为自己从未用过、且课程大纲也未作要求的函数制作闪卡。
- 没有先实际运行代码验证结果,就把自己手写的答案保存下来。
- 把不同语言版本的特性混在一起,却不在闪卡上注明具体对应哪个版本。
- 花在制作和复习闪卡上的时间,反而超过了真正动手写代码的时间。
在 Lumia AI 中整理你的编程闪卡
在 Lumia AI 中,你可以为每门编程语言或课程创建一个书目(Book),并将其划分为不同的模块(Block)或神经元(Neuron),例如数据类型、函数与文件操作。你可以手动编写包含简短代码段的闪卡,也可以从课堂笔记或课程文档 PDF 中生成闪卡初稿;在采用任何示例代码之前,请务必亲自运行验证一遍,因为自动生成的初稿中可能会包含错误的输出结果。
复习时,根据回忆表现为每张闪卡给出 Again(重来)、Hard(困难)、Good(良好)或 Easy(简单)的评级,Lumia 会据此自动安排下一次复习。包含排序题(Put in Order)的测验能帮你训练算法步骤的执行顺序。不过请注意,Lumia 并不会运行代码:真正的程序测试仍然要在你的代码编辑器里完成。
本指南的参考来源与适用范围
这些参考资料提供了关于学习方法的背景信息。文中的示例仅供说明之用;它们并非针对 Lumia AI 的效果评估,也不保证考试成绩或记忆保留率。
- Kornell (2009): Optimising learning using flashcards: Spacing is more effective than cramming — 使用词汇闪卡对比间隔复习与集中突击效果的实验研究;该研究未使用代码材料,也未对 Lumia AI 进行评估。
- Roediger 与 Karpicke(2006):测试促进学习(Test-enhanced learning) — 基于短文材料比较提取练习与重复学习的实验研究;支持在不看参考解答的情况下进行自测练习。
- Lumia AI:常见问题解答 — 介绍对话辅导、学习路径、练习与复习功能的第一方官方来源;生成的输出内容与具体设置仍需人工核查。
编辑原则说明:正文在涉及有证据支持的论述旁均注明了来源;下方列表标明了所查阅的具体文档、链接及适用范围。我们将这些外部参考文献与团队自编的示例严格区分。如发现任何疏漏,请附上具体页面与原句并 联系团队.
创建你的编程专属闪卡
把你最常查阅的语法细节保存在 Lumia AI 中,在坚持动手写代码的同时按计划复习巩固。
免费开始使用