最近,我困扰于『知识管理』——其实一开始,我并不知道我需要的是它。在我打算买几本 Kindle 电子书,以消磨一下时间的时候,我发现了『知识管理』相关话题的电子书。我这才意识到,我迫切需要一些新的工具来管理知识。
一来,我接触的东西太多了,以致于忘记的速度太快了(反正比两分钟长)——而写一篇博客的时间太长了,打开一个网页两三分钟,我可能就会关闭它了。
二来,我所在的公司正在变成一家『大公司』。过去的扁平、透明也在逐渐的减弱,作为一个普通员工,我所能访问的资料也越来越有限。
不过,这些都不重要,重要的是让沉淀变得更多,变得更加高效。毕竟,随着年纪的增长,越来越多的时间被各种杂事占用了。当你一个人的时候,你有充足的时间来干你喜欢的事;当生活变成两个人的时候,你得陪另一半做喜欢做的事;当以后变成三个人的时候,你就有更多事情了。所以,在时间变得更加有限之前,我们所能做的事情变成了:高效。
当然了,所谓的低效是相对的。如果过了这么多年,我还是保持一样的知识管理效率,那么说明它是的低效——即有待提升。
现有的知识管理体系
在日常的学习和工作中,我们有不同的方式来摄取方方面面的知识,也应用于不同的领域。它并不局限于日常的技术工作,还有与软技能相关的知识,还有其它方方面面的内容。
为了优化这些知识吸收的过程,我们需要这么几步:
- 记录。记录现有的知识体系
- 可视化。呈现再有步骤的过程
- 度量。记录每个步骤所花的时间
- 优化 。寻找可优化的空间
作为一个刚入门知识管理领域的人,我只能先记录相关的步骤,再寻找可视化及度量的方式。
内容管理
对于写作来说,在确认了主题/目标之后,往往是分为这么几步进行的:
- 收集资料。来源往往是 Google 搜索的相关博客、书籍等等。
- 提炼资料。寻找文章、书籍的一些关键点。
- 整理体系。根据需要整理第一步的内容。
- 消化存档。嗯,就是一个手工活,或是变成文章,或只是一堆草稿。
而在真正实现的过程中,我感觉有两步并不是那么理想,即收集资料和编写内容。(PS:至于能不能优化是另外一件事)
- 收集资料。随着时间的变化 ,我收集资料发生了一些改变。过去,在写作的时候,我只会留下一个链接 ,现在多了一个留言,甚至有可能会有专门的引用部分。这样一来,未来在回过头来看这些资料的时候,能找到一些思路。
- 编写内容。在写作的过程中,我们消化了相关的内容,并提出了自己的一些新的看法。但是,并非所有的时候,都有必要去写一篇文章。有些内容,我们只需要用代码的方式来展示,诸如于
gist
,再配合一些注释就可以了。而有些内容,则只需要一个大纲就可以了,诸如之前的 New Project Checklists。
顺带一提,在我进行信息提炼的时候,使用最多的工具是,笔 + 纸 / Wacom Bamboo Slate(电子笔记本),主要是我的 iPad 太小,而 iPad Pro 又太贵了。当我们使用电脑的时候,由于习惯的原因,使用往往是线性的思维。而我们的思路往往都是非线性的。
阅读
尽管我阅读了很多的书,但是我在这方面的产出相当的少。而据我所知,一种颇为有效的方式是:
- 思维导图。采用思维导图的方式来构建出这本书的内容。就我个人而言,这种方式失去了读书的乐趣,目的性太强,所以去不会采用
于是乎,我采用的仍然是很传统的方式:
- 记录笔记。我一般看书的时候,会偶尔做一些笔记。只是这些笔记,缺少一个承载的地方。
- 书评。最近,最近好像已经不怎么写相关的书评。大概是因为写这么一个书评,它所花费的时间比较多,有种投入产出比不划算的感觉。因为这本书是在我书架上存在的内容,我想要的时候都可以随时拿到。但是,当我的书在杭州,而人在上海,就会变成一种新的挑战。
但是,由于我看书比较随性,往往什么都没有做,这一点倒是有一些改进空间。我往往觉得大致能把目录记下来,下次就可以方便地阅读这本书了。反正,书放我的书架上不会跑。
知识图谱
对于知识的索引与图谱构建,大抵是我在过去最有收获的部分之一。即整理某一领域相关的知识,诸如于读书路线、学习路线、技能图谱。
往后,在学习的时候,就可以有针对性地查缺补漏。又或者是,为刚进入这个行业的新人提供一些建议。
编码
在我们工作中用得最多的就是,对于将知识放在代码中,每个项目都有多种多样的方式:
- README。
- 注释。
- 提交信息。
- 架构决策记录。
- 架构图。诸如于 C4 模型
对于大部分的内容来说,要实施起来并不困难。但是,如何在代码中体现业务逻辑呢?又或者是通过代码来生成业务逻辑?比如,通过注解生成 URL 跳转相关的路径?
而如果是业务相关的知识,则可能有不同的形式来实现:
- 测试用例。
- 用户旅程。
- 用户地图。
设计初期,我们会拥有一个初步用户旅程。而完成项目的时候,用户旅程可能会发生一些变化,我们应该采用、开发工具去优化这个过程。它可以通过 URL 来记录页面,而后通过 DSL 来转换成旅程地图。
工作流程
在经历了一个又一个项目之后,我对项目的生命周期有了更好的理解。而项目的生命周期,也相当于是工作流程。对于流程来说,规范是一个很扯淡的东西——没有人想去看文档。在编码中,我们可以通过一些 hook 来规范工作,如:
- pre-commit
- pre-push
- lint
而对于非编码性工作来说,其应对的最好方式是:开发流程的工具。它并非是一个固化的流程,但是它拥有所的工具。这也是我正在尝试去做的东西之一。年初做的 New Project Checklists, 以及正在实施的升级版本:应用周期管理,都是一些新的尝试。
可改进方向
除了上面提到的一些点的相关优化,是否还能尝试更多的东西?
优化收集?
如上所说,我在收集的这一维度,还有一点改进的空间:
- 记录、标记内容。诸如于,我会时常关注 GitHub Trending,又或者是收藏一些 GitHub 上的项目,但是我并没有很好地工具来管理它们。对于这样简单的一个工具,我可能得想办法自己动手制作一个,说简单也简单,说难也不难。
- 重启 RSS 订阅?。不过,这也是我当前存在的一个疑惑。过去, 我能使用 RSS 工具来管理资源,它的前提是互联网是开放的。而今,通过 RSS 已经很难找到一些优质的博客——除了我的博客,哈哈。
尽管它会花费一定的时间,但是将来在使用的时候,可能会节省更多的空间。唯一的问题是,还得做个工具。
寻找非线性输出方式?
线性的内容对于来说,问题不大,因此非线性内容就成为一个关注的点。只是呢,我并没有一点儿头绪。不过,一些有趣的方向可以是:
- 图片。画图更浪费时间,哈哈。
- 照片。比如拍照的时候,进行文字识别,不过对应的识别 API 意味着额外的支出。可能 Tag 是一个更好的选择吧,haha。
- 思绪导图。现有的思维导图工具,都是线性的,又或者是本地使用的。而我又不想把数据放置在别人的数据库上,万一数据被删了呢。
所以,还可以自制一个简单的工具,加上额外的扩展方式,才是我所需要的内容。
集中式管理?
集中管理,意味着:
- 标准化的输出方式。
- 可 API 访问的平台。
- 集成内容中心。
出于搜索的需要,我们
- GitHub 上的项目
- 社区的技术文章
也因此,我们并不一定能做这样的时间,但是可以尝试结合标签来关联网络
模板化?
TBC。(我并不喜欢模板化)
相关工具
如下是我日常使用的知识管理工具:
- 笔记。以前我用的是 Evernote,但是它收费,我便改成了 Microsoft OneNote。我仍然也没用好它。
- 看板。对于一些开源项目来说,我会使用 Trello,GitHub Projects 来管理。
- Todo App。我习惯使用 Wunderlist,因为我已经习惯了。不过,我最近正在切换到 Microsoft To-Do,因为自 Wunderlist 被微软收购之后,To-Do 才是未来。
- Calender 工具。还没有。作为一个普通的开发者,我并没有那么忙,偶尔有一些就用手机自带的。
- Markdown + Git + ADR。ADR 是一个架构决策工具,我用它来管理开源项目中的 IDEA
- GitHub issues。用来管理新的 Ideas,见: https://github.com/phodal/ideas/issues
不过,我并不习惯于使用看板这样的工具,对于我来说,它太重了——总有一种回到工作的感觉。而 Todo 应用则在点一下,完成一下的时候,有那种相当爽快的感觉。其它工具推荐:
- RSS。Feedly。不过,话说现今国内活跃的博客越来越少了。我博客的 RSS 是( https://www.phodal.com/blog/feeds/rss/ ),欢迎订阅。
- 番茄钟。我用了一段时间,发现对我没啥用,我是那种多动的人。
因为,我还没有那么忙,所以大部分的时候,我还是处于佛系的状态。
结论
你有什么与众不同的方式,能分享一下吗?
或许您还需要下面的文章: