如何建立自己的PKMS(个人知识系统)

学习的本质就是记忆

纸笔模型

念书的时候很多人都有做笔记的习惯,我也不例外。上课的时候我习惯的会把课堂笔记写在书页的边角,课后再转抄到笔记本上。一方面重抄强化了记忆,另一方面我会在重抄的时候把散落的知识点整理一下,让它尽可能有条理。

课程在编写时有考虑到知识的连贯性,所以对于课程的知识图谱很容易被梳理出来。我把这种模型成为“纸笔模型”。它基于几个假设:

  • 每个知识节点在创建后基本趋于稳定,不会有过多修改。即便有修改,数字化后的纸笔模型也是“修改友好”的
  • 节点之间的联系稳定且有限
  • 完整的知识图谱内容有限,体积不会太大
  • 节点是随时间添加,检索起来也比较方便,比如按教科书章节检索
纸笔模型

纸笔模型的挑战

工作了之后,我也有尝试过很多次做工作笔记,却收效甚微。和学习笔记不太一样,工作中接触到的知识很散乱。更多的时候需要快速学到一个全新的领域知识,然后应用在工作中,然后再学习下一个领域知识,循环往复。学到的知识本身也会随着时间被更新,或者推翻。这些工具/知识之间并不甚相关,导致了知识的碎片化,并且很难被检索。

这时,纸笔模型的假设受到了挑战:知识点之间的联系微弱,需要大量的背景知识来建立,这些知识会导致没有一个完整的图谱,或者一个巨大的图谱;知识点本身会频繁的更新;检索困难,很多时候单纯的关键字检索很难找到所有相关的节点。这三个挑战推向同一个结论:传统的纸笔模型,甚至说数字化后(对更新节点更友好)的纸笔模型已经不适用于工作笔记了。

简言之,传统的纸笔模型更适合一个有主干,有直线,内容有限的叶脉结构——教科书等天然适合使用这种工具。

知识图模型

而如同之前所讨论的,工作之后接触到的很多领域知识是驳杂,正交的。这样的知识图谱就是很多细小碎屑的枝干,缺乏一个主干来统一。这种模型我称之为知识图模型。

知识图模型

知识图模型的一大挑战就是对节点的多维度,联想性检索。在检索节点时,目前绝大多数工具都只能做到关键字检索。很少,或几乎没有工具能够把“与XX”相关联作为条件来检索节点。

举个例子,假如我今天读到了一个知识,通胀与央行加息之间的关系是如何如何。除非我在这个知识节点内放了“通胀”“加息”“贷款”“利率”等等关键字,否则很难在未来的某天,我想了解”贷款利率”与“通胀”之间的关系。

Logseq

一个好的PKMS工具,需要有这种能力,将相关联的碎片信息进行整理,连接,并在我需要的时候,能够通过寥寥几个节点的检索,就能够将整个图谱的内容提取出来,比如能够帮助我从“贷款”联想到“利率”,到“加息”,一直到“通胀”。

这里介绍一个我自己在用的PKMS工具,logseq。logseq是一个markdown驱动的PKM软件。它通过节点间的双向连接生成知识图谱,并且可以通过关键字,标签,页面引用等来对节点进行多个维度的整理。比如上文的例子中,“通胀与央行加息之间的关系”节点中我可以通过#通胀,#加息,#经济 等不同标签使这个节点和不同的节点互通。当然在可视化时,它也能够从根据不同的维度,快速的建立不同的可视化结构。

除此之外,logseq 还可以通过不同的宏把pkms和各种不同的管理工具结合到一起,比如TODO,读书笔记,个人周报等。还可以在TODO中按优先级,ddl进行排序,永远把“最重要”的事项显示给你。也可以按需来添加不同的插件,进行强大的功能拓展。

它既是一个笔记本,也可以是一个日记本,一个知识图归纳器,一个PKMS,一个TODO,等等等等。更多与logseq相关用法,请参考这里

希望这篇文章能对同样挣扎在碎片化知识的小伙伴们提供一种思路,以期早日进入work hard, play hard的状态。

工作学习论

特别鸣谢宫师姐校对

——甚至这个鸣谢也校对过了

今天突然想写点关于方法论的东西。

起因是组里有个小哥跳槽了。我和他一起做过他离职前最后一个项目——接触之后,我对他的离职早有心理准备。和他导师聊了之后,我们都觉得他缺少工作中学习的能力:和他工作非但没法把工作分出去,反而会给自己增加很多答疑的工作量。

细想之下,小哥在工作中体现出了学习能力和写作能力的不足,导致合作双方平添了许多不必要的工作。如果他能够做到会提问题,善用搜索,勤记笔记,我想我们的合作会更加愉快。

提问的艺术

刚开始工作的时候,我经常会问组里高工(Senior)一些很蠢的问题,要么是太泛没法让人回答(比如“Docker 是啥啊?”),要么是对方不知道从哪个角度来回答你(比如“我该咋用Docker部署啊?”)。在我读了《提问的智慧》之后明白了一件事:一个问题,你问的越具体,事前做过越多的研究,被问的人越好回答你。而越含糊,无脑的问题,别人越难回答。

“在for循环里应该用i++还是++i”就比“这个循环应该咋写”好回答。前者把问题聚焦到一个很小的范围,提供了上下文(是for 循环不是while 循环)并且给出了两个可选项。后者完全让人无法推测这个循环是干什么的。

小哥就经常问我很多含糊、不过脑的问题,让我很多时候不知道该怎么回答。比如:“我这个服务跑不起来”——然后我吭哧吭哧翻了半天日志发现他的启动脚本缺了个标志值;“我这个bug不知道怎么回事”——我去看了一下bug然后找到了问题。

工作中有问题,问题多本身不是一个问题,遇到问题也不要胆怯不敢问。不会问问题,或者说不动脑子直接把问题推给别人,这个才是问题。

主动的搜索

小哥还有一类比较频繁的问题就是“我在哪能找到X?”“这个标志值Y是什么意思”——基本上把X和Y 放到Google里就能直接搜索到结果或者文档。我有时开玩笑说我们都在Google工作了,遇到这类问题更应该支持自家公司的产品,多搜一搜,实在搜不到再问嘛。

在工作中遇到的至少50%的问题完全可以靠搜索引擎找到答案。当然,和上一个话题一样,问题越具体,关键字越多,找到你想要的答案的概率越大。

笔记的习惯

在刚开始工作的时候,我自己是没有做笔记的习惯的。直到我遇到一个有做笔记的习惯同事:他的笔记整理的很好,把他做过的项目细节都整理下来,然后把一些有必要的资料转换成文档。和他交流项目的时候完全可以直接去读他写的文档,然后把文档中有疑问的地方记下来,再单独问这些有疑问的地方。这样极大的节约了彼此的时间。

等到我开始实践记笔记时,才发现笔记这个宝藏真的应该从day 0 就开始记。这样不会因为自己没记住而重复的问同一个人同样的问题。

同样,笔记不单单可以记录工作,也可以用来记录一些突如其来的灵感。这些灵感有的可以加以转化成为新的项目,有些经过论证无效的也可以用作“前车之鉴,后事之师”。

以上是我觉得工作中非常有用的三个方面,写下这块砖,希望能“抛砖引玉”。