临界知识迭代闭环——软件工程视角

临界知识迭代闭环——软件工程视角

成甲在《好好学习——个人知识管理精进指南》一书中提出了“临界知识”的概念。

知识与知识是不一样的,有些知识比其他知识的威力更大。
少数的知识能够给我们带来关键的影响,这就是临界知识

对于程序员来说,每天的开发、调试,解决每个需求和问题,都是要用到特定的知识的。针对某个具体问题,往往有一个或者几个关键点的击破决定了这个问题是否是解决了。

笔者认为,这些关键点就是软件工程中的临界知识。

如果我们能对这些临界知识的良好管理,让临界知识能够固化下来、能够不断强化,那么就能够大大提高我们的工作效率和成长速度。

为了达到这样的目标,本文论述一种“临界知识迭代闭环”的知识管理方法,这一方法的核心在于形成一个知识库。

好的知识库是怎样的

我们可以用任意电子工具做一个知识库,比如印象笔记、有道笔记,更加简易可以用 word、excel 甚至 txt,更加高端可定制可以用 gitbook、tiddlywiki、mediawiki 等等,如果我们要更加复古,还可以选择纸质笔记。

那么,用不同工具做的知识库效果是一样的吗?什么样的知识库才是好的知识库呢?

笔者认为好的知识库有以下特点:

  • 可查找
    • 笔记逻辑体系相对稳定。在遇到一个问题时自已的第一想法是如何对它分类,就如何构建笔记体系。
    • 笔记工具支持方便的检索、引用
  • 记录临界知识
    • 笔记如果只是记录信息,而不是提取的临界知识,那么记了大约等于没有记。
    • 临界知识往往很短。
  • 知识迭代
    • 要不断地更新、整理知识。
    • 有些用得多的知识,积累久了,会变得很长,此时进行一些整理,可以让临界知识更加清晰,获得更加深入的理解,或者说更加高层次的临界知识。
  • 思考、研究的重要节点也应该记录
    • 不但要站在巨人的肩上,更要站在过去的自已肩上。
    • 试错的结论也是宝贵的经验。
    • 记录研究的成果。对于没解决的问题、可能的解决思路也记录下来,后面可以继续研究。

可以看到,发挥知识库的作用的关键,其实更多地在如我们如何去记录信息,而不是我们选择的具体工具是什么。

然而,考虑到一些特殊的记录需求,比如希望有笔记的历史版本从而尽可能减少知识丢失的机率,或者是记录的内容是代码等一些特殊形式的内容,就会对工具的特性有更多的要求。

知识库的核心理念:短时间多段式记录

多段式记录(知识递增),每次都在上次的经验上进步。

每次记录花的时间不要太多,简要写下临界知识和相关的链接引用等即可。

再次使用同一临界知识时,可以进行一些精要的补充,或者进行整理。

针对未解决的问题,多段式更加有意义,可以汇总自已在不同时间段下对此问题的各种设想,利于我们最后得到问题的真正解决方案。

什么时候更新知识库

用到临界知识解决具体问题时,就可以查询和更新自已的知识库。

以程序员为例, 开发、调试过程中,对于比较有技巧的实现思路、比较复杂的调试过程,先详尽记录在一个中转笔记区,这个详尽的记录过程不但对解决问题本身有理清思路、记录关键信息的作用。

待问题解决后,可以基于详尽记录进行事后分析和提取临界知识,形成开发技巧、调试技巧,扩充自已的知识库。

日后再遇到类似问题,直接查询知识库中的对应内容即可更加高效解决问题。

知识库的作用

临界知识库形成之后,会有以下的一些效果:

  • 提高解决相同/类似问题的效率
  • 保存思路和灵感
  • 触发灵感
    • 有时可以从笔记中发现惊喜。
  • 可作为原材料供自已总结、提取更本质的经验,对自已的经验进行整理与升华。
  • 可分享
    • 高度提炼的临界知识很可能帮助到其他人,简单整理后其实就可以发表在博客上
  • 某种程度上,知识库成为了与过去和未来的自己对话的方式
    • 当初我为啥这么想
    • 有时间了我打算怎么做
    • 我当初的思路要怎么提高
    • 以上的问题都可以基于自已的记录而找到答案

临界知识迭代闭环

基于前文所述,当我们具有了这样的知识库之后,我们在解决具体问题时

  • 首先确认是否能想到解决方案,能直接想到就可以直接解决
  • 如果不能想到,可以先回忆是否在自已知识库中记录过相关知识
    • 如果有记录,那么就可以直接使用临界知识解决,或者是基于之前的研究继续研究这一问题
    • 如果没有记录,就新建一个临界知识条目
  • 然后进行具体的研究、解决
  • 最后如果此次解决过程产生了新的经验,就将其加入到合适的位置中,以供下一次使用
  • 如此便形成了一个正反馈的临界知识迭代闭环

知识库不是灵丹妙药

知识库只是一种知识体系构建方法,充分的时间投入才会让知识库发挥应有的效力。

知识库的一种具体实现

基于前文所述,我们使用的工具只要能做到让我们的临界知识可以迭代、形成闭环就可以。

那么最核心的诉求就是要有一个稳定的记录位置。

笔者使用这样的模式:

git + markdown + 自已的分类 + 持续维护 = 知识库

其中

  • git 用于版本管理,可以保存自已的临界知识的各个版本,防止信息丢失。
  • markdown 作为记录的格式,不依赖商业软件,对源代码记录支持良好,可定制。自已也可以利用程序知识来自定义语法提高记录效率。
  • 自已的分类。形成自已的一种问题分类习惯,比如遇到网页显示乱码的问题,笔者会先分一个大类 Web,这就是笔记中文件的名字 Web.md,打开这个文件,然后细分为 html 问题,再细分为 编码 问题,按照这个次序把标题一路找下来或者设置下来,就能找到自已记录的相关研究。因为这个路径是完全按自已的思路来的,下次遇到类似问题时很可能是一样的思路,这样找到这次记录的内容的机会很大。实在不行还能使用关键词在自已笔记中搜索。
  • 持续维护。随着自已的知识的深入,可能需要重构分类体系、完善记录的知识,会随着每次使用去完善对应的部分,或者找一个固定的时间做一下体系的整理。

结论

收集临界知识是我们作为学习者或者知识工作者的重要任务之一,如果我们能够做到更加高效的临界知识积累与迭代,形成一个正反馈闭环,我们的知识会越来越接近事物的本质、我们的工作也会变得更加高效和有序。

临界知识的迭代闭环,值得我们去追求和实现。

本文首发于本人的 CSDN 博客:https://blog.csdn.net/techfield/article/details/90113576

你可能感兴趣的:(临界知识迭代闭环——软件工程视角)