开发人员如何构建自己的学习笔记系统

作者:王下邀月熊
链接:https://www.zhihu.com/question/273440522/answer/373538291
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

回答节选自技术之路/笔记系统与知识管理这篇文章,一点浅见,还望指正。

技术分为术与道两者,术即是具体的做事的方法,而道则是做事的逻辑抽象的原则与原理。构建专属笔记系统的目的,是为了让自己更好地管理知识,既能够避免自己重复地学习,来使自己能够接触到更广泛或者更深度的知识,探索属于自己的道;也能够通过快速命中有效方案,来提升自己及所在团队的研发效能,从而高效地利用已有的术去解决问题。于笔者自身而言,构建笔记系统的初衷并非是想让自己不去忘记什么,而是希望能够在需要的时候,以适合自己思维、理解的方式,快速地重新掌握。

李翔知识内参有一集介绍到,根据杰瑞德·霍瓦特的研究,在互联网时代,回想记忆(Recall Memory),也就是大脑自发地调用信息去回忆过去的能力,已经变得不那么重要了,认知记忆(Recognition Memory),即记住大量事物、地方以及各种人物形象的能力才最重要。他说:“只要你知道在哪儿可以查到这个信息、如何查找,就不需要回忆它了。”互联网相当于我们的外部记忆(Externalized Memory) ,有一项研究指出:“如果人们知道他们能在网上获取信息,那么他们回忆信息的机率就较小。” 同时,这又是一个碎片化阅读的时代,两相结合,会让我们觉得自己持续地学到了东西,却也可能只是虚假的满足感。我们既要利用这种特性,利用互联网提供的便捷的检索、阅读,去构建专属的外部记忆;就像建立缓存服务器一样,我们可以直接去获取,而不需要费时费力的重新检索、筛选。同时也需要真的沉淀下来,脱离碎片化获取带来的混淆与可能的肤浅,真的能成体系地,探究到某项技术或某个领域的深层知识、实践。

笔记系统,或者说知识管理的首个难点,在于知识的检索,与更新;直观地来说,就是当我们想到某个知识时,应该如何去找到对应的笔记,或者说当我们想去记录某些心得体会时,应该把它们放在什么地方。一般来说,目前的笔记组织结构,可以是树形层级目录式,就像思维脑图一样,从某个点展开,延伸到各个具体的技术领域;也可以是 Tag 式,即为每个笔记进行人工地主题词提取,然后依赖于搜索功能进行检索。笔者上车伊始,即主张:知识应该放在它应该在的地方,因此数年来一直以近乎强迫的方式,去构建 ITCS 技术体系与知识图谱,并且将其作为泛笔记系统的目录规范。这种细致的划分方式,往往会随着自身对于技术世界的认知变化而不断衍化,因此也是建立在广泛的阅读、涉猎的基础上;不过磨刀不误砍材工,若能坚持下来,浇灌培育出属于自己的知识体系树,也是别有一番滋味在心头。

另一个需要提及的,对于笔记的工具也很重要,很多人零碎地记了很多笔记,却往往无法迁移或者分享。笔者提倡以 Markdown 作为笔记格式,图片的话单独统一存放,具体的方法论可以阅读熊写代码这三年:阅读写作与技术成长(2015)或者 Workbench CheatSheet

有了遨游星海的星图指引,我们就要开始逐个探索美丽的知识星球了。根据知识本身的特点,使用的频次,检索与更新的方式,我们又可以将笔记分为索引式、清单式、书籍式与代码式;下面我会结合自身的实践认知,来阐述这几个不同类型的笔记的构建与使用。

  • 索引式笔记,典型的代表是 Awesome Links,其按照知识图谱来将各个领域的有效的链接沉淀下来。与 Google 这样搜索引擎搜出的结果相比,其含金量会更高。一方面,纳入到 Awesome Links 当中的链接,往往都是自身阅读、筛选过的,尽可能去芜存菁,去重留一,无论是分享某个技术领域的文章给他人,还是自己学习阅读,都能够避免冗余阅读。另一方面,很多优秀的文章并不一定会出现在搜索引擎的前几页,而是需要依靠自己日常浏览中主动发现、归纳。Awesome Links 中还包含了很重要的一个部分,*-OpenSource-Links,是对于各个领域的常见开源项目的归档;即可以方便快速查找所需的框架与库、开发工具等,也能够提供一些优秀的,可以借鉴的开源项目来学习。
  • 清单式笔记,典型的代表是 Awesome CheatSheet,即是对于某个领域、方向的精华,以及日常工作中常用知识点的归档。无论是快速学习,还是作为日常开发中的工具手册,都是极好的。
  • 书籍式笔记,即可以是 Awesome-CS-Books-Warehouse 这样对于优秀书籍的搜集,也可以是 现代 Web 开发深入浅出分布式基础架构 等这样子各个领域的自己的笔记的编排。值得一提的是,书籍式笔记,并不强调一定要遵循知识图谱的结构,而是赋予其一定灵活性,以方便记录与交流。
  • 代码式笔记,典型的代表是 coding-snippets, 对于程序员这个角色而言,代码也是我们笔记系统的重要组成。在这个之上,我们又可以构建出一系列小的项目。

讲了一些,都是笔者这几年的心得体会;构建知识体系、笔记系统也并非一蹴而就之事,而且每个人皆有其独特的方式与目标,可以先读而后记,而后边读边记,最后成一家之言。每当抬头仰望浩瀚、无垠,且不断变化,有无数璀璨明星闪烁的知识星海,不免会觉得有疲惫与无力感;而正是自己这么多年构建下的知识体系与笔记系统,成为了我遨游星海,领略美景的一叶扁舟。

posted @ 2018-04-25 09:30  Rainyn  阅读(442)  评论(0编辑  收藏  举报