← 返回目录


使用抽认卡,成为更优秀的程序员:第一部分

学校≠教育≠技能;文凭溢价=80%信号传递+20%人力资本

53 👍 / 9 💬

等等,你说啥?

抽认卡能让你成为更好的程序员?编程可是一项复杂且精密的技能,而抽认卡是用于复习底层且原子化的信息!

说的对!如果只有抽认卡的话,那你永远不会成为一名优秀的程序员。然而,编程也是由底层技能组成的,例如记住六个月未使用的函数方法名称、可能会产生小 bug 的代码、以及需要的数据结构的模块名......

在编程的时候,你有多少次在谷歌上搜索某个问题的答案时,看到的却是紫色链接?(译注:即已点击过的链接。)如果你只用一次就能永久记住,那岂不是很酷?将这些信息挂在嘴边可以从根本上加快你的速度,解放你的大脑,腾出时间进行更高层次的思考。 通过这个方法你可以学习了其它技能,比如键盘盲打!如果你记住了所有按键的位置,你就可以专注于给你的宝贝发邮件、写情书。如果你在小学时记住了乘法表,你就可以专注于代数学习。 还有如果你记住了所有的那些西语词汇,你就可以在没有字典的情况下在马德里尽情游玩。

不过我的记性很好。我记得住很多事情!

确实,可你的大脑也是肉做的。它受制于人类生物学规律,因此会遗忘事情。而且你的知识用得越少,忘记它的速度就越快。

下图显示了你遗忘信息的速率。看看只在正确的时间复习会如何帮助减缓你的遗忘速度?它有 90% 的几率使你成功记住。在正确的时间,即在你的遗忘曲线下降到过低之前,向你展示正确的事实——这种记忆方式被称为间隔重复。

Graph that describes the rate of forgetting new information over time. 图片来源于 sivers.org/srs

如果你一直在用一个工具集辅助工作,那么这对你来说不是什么大问题,因为重复和练习已经融入了你的工作。我的工作要求我定期使用 10 - 15 种不同的语言和工具,但不频繁。有时候我会接连几个月不使用一种语言。

如果你对所有用过的东西都了如指掌,那岂不是很酷?如果你不需要热身时间,你不需要每次通过谷歌找答案,你的效率可以提升多少?

玩过块魂吗?你是游戏中的绿色小王子,头顶丸子状,推着一个黏糊糊的球。你的目标是把你能看见的物品全都卷起来,使你的黏球越滚越大。你将从只能卷起图钉开始,到最终可以卷起牛和房子。

我们希望你的大脑也可以成为那个球。

这真的做得到吗?

我第一次产生这个想法是在阅读 Jack Kinsella 的博文[1]时。当时我觉得这么做非常有意思,我就尝试了几次,但都没有坚持下来。我没办法持之以恒地制作或复习卡片。在我复习卡片的时候,我会意识到很多的卡片我都看不懂,或者难以回答。这很令人沮丧,我从来没有获得过显著效果,所以很快就放弃了。

今年夏天,我正式成为了信徒,这一切都归功于陪审团制度。我被选中参加为期两周的陪审团(没有办法摆脱它)。当时我还在准备开始一个客户项目,我需要使用 Pandas,那是我第一次用这个库。但是我突然被分配在一个没有窗户的房间里,被要求待在那一整天。那里没有 wifi,也没有手机信号,每天都要去。由于无法连接到项目需要的数据库,该项目被我搁置了。

通常情况下,离开一个全新的工具两周意味着我将需要浪费一周的时间来回顾,我需要重新查找每一个新方法或属性。但是因为我制作了卡片,并在听证会期间进行了复习,所以我回来的第一天就可以开始工作了。对我来说它产生了巨大的影响!

我还注意到在使用非新工具方面的差异。在编写 SQL、Python、awk、bash 和数据科学家工具包中的所有其他工具方面,我可以表现得更快、更流畅。我写的 bug 更少了,浪费在查找资料的时间也更少了。感觉像是获取了超能力!

这也很有趣,因为我已经这样做了足够长的时间,以至于有些卡已经太老了,它们会经常把我难住。这意味着在曾经的某一时刻我知道这条信息!如果没有这张卡的存在,我会完全忘记它!但是因为它在我的套牌中,只需要快速回顾一下,它就可以回到我的脑海中。

这听起来很牛逼,该如何开始呢?

我正在撰写本系列的第二篇文章,其中介绍了我用过的所有工具和心得,它们帮助我克服困难,并真正养成日常习惯。

同时,你可以去阅读 Jack Kinsella's 博客文章[1],我第一次得知这种方法就是在这篇文章里。 Derek Sivers[2] 也写过这方面的文章,并包含许多示例。我发现这些都不足以真正使我养成可持续的习惯,因此我将在下一篇文章中重点介绍这一点。

你还可以找到我用过的免费抽认卡软件 Anki。它会记录卡片何时需要复习以提醒你进行最佳学习,特别好用。不过要小心,因为它包含很多花里胡哨的东西,而且有点难以弄清楚。在我的文章中,我将向你展示哪些功能最重要,以及哪些功能可以忽略,所以不要被吓跑。

直到下一次,记录下你曾经需要停下来查找,而现在可以直接回忆起的信息所节省的全部时间。你可能会感到惊讶!

感谢 Nick Ward、Dan Bentley、Ricardo Vidal、Julia Evans、Allison Kaptur 和 Erik Osheim 阅读了这篇文章的草稿。


Thoughts Memo 汉化组译制
感谢主要译者 Rampling
原文:Using flash cards to become a better programmer, Part 1 (sasha.wtf)
SASHA - 2015 年 11 月 1 日

参考

1. JAnki:写给程序员们的 13 条 Anki 使用经验 ./412012134.html
2. 用间隔重复软件记住一门编程语言 ./594372725.html

专栏:Thoughts Memo的文章


← 返回目录