logo一言堂

如何记笔记

我年轻的时候从不记笔记。这不外乎两个原因:年轻记性好,而且没那么多东西要记。待到年纪渐长,终于意识到我迟早有一天会老年痴呆的。怎么办呢?哈利波特粉丝应该对第四集这个场景有印象:

I sometimes find, and I am sure you know the feeling, that I simply have too many thoughts and memories crammed into my mind. —- Dumbledore to Harry

我们没有魔法盆,只好记笔记。但我之前记而不得其法,丢失的很多,未丢的也杂乱无法整理。直到前不久我了解到记笔记的不二法门,今天来跟大家分享。

Zettelkästen

Zettelkästen 是德语,意思是卡片盒。网上有很多资料,比如它的官网. 发明者叫 Niklas Luhmann, 是上世纪的一位相当学术高产的德国社会学家。他花了大半辈子,用卡片作笔记,最终留下近十万张卡片,装满了几个大箱子。这是其中的一张:

Luhmann's zettel
Luhmann's zettel

你或者说,用卡片记也是记,用笔记本记也是记,用电脑也是记,除了这家伙够有毅力之外,他的方法还能有什么特殊?有的。

  • 能坚持几十年的方法,一定不是让人痛苦的。你的方法呢?
  • 记是一方面,想找的时候还要找的着。不用说几十年,你能快速找到去年你记的笔记某一页吗?
  • 你一个人无聊待着的时候,会主动翻阅自己过去的笔记,从而获得新的思路新的想法吗?

所以,请和我一起探索一下卡片盒方法的独到之处吧。

篇幅

用卡片记笔记能有效限制篇幅。笔记不是文章,是给自己看的,无需写的文采飞扬。一张卡片,就记一件事情,一个点子,一个发现。一句话不嫌短,但最长不要超过一百个单词,中文不超过两百字。另一件事情就另起一张卡片。把每件事情都试图写的独立一点,每张卡片独立都能让多年以后的自己重新理解。

组织

card tree
card tree

卡片放在盒子里,按序排放。但这个序既不是时间顺序,也不是分类顺序,而是你思路的顺序。人的思路肯定不是线性的,而是不停的在分支,更接近一颗树的样子。学软件的应该比较熟悉。今天思路断在这里,可能很长一段时间都不去管,但将来某年某月说不定又有想法,就把卡片再插在这里,重新开始。相比之下,笔记本就限制过多了。

固化

不要扔卡片,尽量不要修改卡片。假如你以前认为地球是平的,后来改变了看法,不要去试图修改历史,让自己显得伟大光荣正确,就原地接一张卡片,说自己想法变了就好。之前想法种种,不管多错误,毕竟是你自己思维的一部分,自己写自己看,何必不对自己忠实。历史不应修改,最多渐渐忘记。我们记笔记,不就是让忘记的速度再慢一点。

单份

一个人应该只有一个卡片盒。虽然,把工作,生活分开可能有一定道理,但说到底,你只有一个大脑,精神分裂者除外。你的卡片盒不过是你大脑的外挂,不应该再细分范畴。当然,你可以,也应该在卡片上作标签,类似推特的 #tag 一样,以便查询。但这个分类不是固化的,也不是互斥的。一张卡片可以有多个标签。

我的方法

最正宗的 Zettelkästen 用的是纸质卡片。但在这个数字信息化的时代,我作为软件工作者,必然使用数字化方法。数字化的好处这里不再详述,但也是有坏处的。最大的坏处是表达不够丰富,用笔可以画画,在电脑里我只会写文字。好在我浑身上下无半点艺术细胞,这点坏处对我来说问题不大。下面讲的是我自己的方法,与原方法略有区别,还请大家注意分辨。我想,每个人具体情况都有所不同,一定程度的订制是必要的。

我的卡片

我用 markdown 格式记录笔记,一张卡片对应一个文件。文件可能分一个到几个小节,每节相当于幻灯胶片排版比较疏松的一页,篇幅类似于原版的 Zettelkästen. 纸质卡片有两面,我的数字卡片可能有更多“面”,即更多小节,但我目前还维持一节到两节。两节的好处是可以表达问题/回答,理论/例子这样的组织结构,对于某些笔记是很有用的。多面卡片我建议尽量不用,而最好分拆成多张卡片。

卡片的组织

我所有卡片文件放在一个目录里,不分子目录。我的文件名不包含内容信息,而只是时间戳。但是,我在卡片之外维护一个索引文件,在索引内实现两个功能:

  • 树的组织
  • 标签

懂点数据库知识的人应该可以理解我的做法的好处。但我用的不是数据库工具,而是 emacs org-mode 来组织我的索引文件。org-mode提供非常完备的结构化编辑一个树的方法,同时可以给树的每一个节点加标签,正好是我需要的,而且我本来就一天到晚在emacs里。你应该可以选择你最喜欢的工具,但做选择前,请考虑一下:记笔记是一辈子的事情,你选择的工具能存在多长时间呢?

卡片的呈现

card: pensieve
card: pensieve

虽然我可以一直在emacs环境里写卡片,查卡片,对卡片树重新组织,给卡片打标签,到这个地步其实我还不需写一行代码。但是,一个更方便,更直观的方法来翻阅卡片是非常有必要的。现在人都有很多碎片时间,例如茶余饭后,等人等车的时候,与其掏出手机刷抖音,还不如掏出手机刷自己的卡片。到这个地步这就要写一点代码了。目前我已经实现了:

  • 把卡片转换成html文件,通过浏览器方便浏览
  • 一个全屏网页界面,在手机上可以通过手指上下左右滑动来遍历我的卡片树
  • 根据主题标签细分,来生成一个稀疏树,便于同主题浏览

刚好我的单张卡片篇幅不大,在手机全屏情况下阅读正合适。

结束语

Luhmann 教授一辈子写了十万张卡片,我才刚上路,还不到一百,且看我最终能写多少。

Never send a human to do a machine's job. -- Agent Smith

尤其别委屈自己。