吾生也有涯,而知也无涯。以有涯随无涯,殆己 —— 《庄子 养生主》

作为一名程序员,每天都需要给自己充电学习,才能保持自己的不断成长。然而盲目的学习肯定是浪费时间的,需要掌握一定的方法和技巧才能事半功倍。在信息大爆炸的时代,知识是无穷无尽的。

所谓学而不思则罔,思而不学则殆,能高效和理性的甄别自己需要的知识学习并吸收它们,之后建立自己的知识体系,是非常重要的。学习的目的是为了看清这个世界,更好的在这个世界生活,不是要把自己学成一块移动硬盘,用来存储大量的垃圾文件。

学习的方法非常重要,以下是我的技术学习方案,鄙人并不是什么学霸,所以仅供参考

个人知识管理方案

我的知识学习过程分为三个阶段:收集归总汲取

收集

收集的过程从上图中可以看出,主要有三个方面:

内容聚合

顾名思义,内容聚合就是一个信息和知识聚集的平台,减小了知识获取的难度,我目前主要使用的内容聚合平台主要有,深蓝阅读(RSS),微博,知乎,Github。

RSS 是一个虽然很老的技术但是真的非常实用的功能,大多数的网站和博客都支持 RSS 订阅,目前互联网上很多技术文章的聚合平台,比如掘金,开发者头条等等,但这些平台的技术文章都是别人发布的,别人发布什么或者什么最火,上面就会有什么,它不能根据你的喜好来进行技术文章的获取,同质化的文章很多。而 RSS 就可以订阅你想要的技术文章和新闻,对于聚合的范围更可控。其实这两个形式没有绝对的好坏,就好比一个是电视,一个是互联网,电视机的内容是电视台播放什么内容你就看什么,而互联网的内容需要你自己去查询和订阅。但后者更适合于知道自己需要什么的人。

微博也是聚合平台,里面可以订阅社区活跃的开发者,同时还可以订阅其它非技术的博主。微博跟其他新闻应用(其实不是新闻应用)不同,最大的特点是它的信息是实时性的,可以更快的监测到技术的最新动向,所以,我把这个聚合平台当做是我的技术新闻信息的主要获取平台。但是微博的内容都是非常简短的,信息更详细的内容或有所欠缺。幸运的是,知乎弥补了这个缺陷。

知乎也是我的主要技术信息和知识的获取平台,不仅可以从诸多问答中学习到很多技术上的知识和行业的动向,更重要的是,因为知乎是个讨(撕)论(B)平台,事情都是越辩越明,可以从大量的讨论中获取到很多书本上学习不到的知识,让你学会更客观的看待技术。

Github 也是一个聚合平台和社交平台,正所谓『世界上最大的同性交友网站』,你可以关注一些技术大牛的账号,从技术大牛的 star ,forked 和 comment 中可以发现很多很棒的项目,学习别人的项目思路和代码,睁眼看世界。

项目实践

项目实践是程序员很重要的经验和技巧学习的获取方式,纸上谈兵永远都不能把程序写好,实践才是检验真理的唯一途径,所以,不论是个人项目还是公司项目,都是个人学习的最好方法,可能一开始什么都不会,但是在开发的过程中,你通过查阅资料解决问题,比你直接看资料学习效率和成果都要高很多。

技术书籍

以上的知识获取过程都有些『肤浅』,通过聚合平台和项目实践得来的知识只是解决问题的方法和经验,甚至很多信息都是从书中所摘,那么如果想知道为什么这样解决问题,为什么这样解决问题更好,还是要看书。看书可以使自己的知识更加的成体系,更深刻的理解自己所做的事情。

通过以上几个途径使我能获取到大多数的技术知识了,但是知识那么多,怎么梳理这些知识呢?

归总

书签收藏

每天通过聚合平台获取到的知识是大量的,有的是需要了解的知识,有些事需要你以后用到的知识,所以一般把我未来会用到的知识(网页),我都会把他收藏到 Chrome 书签中,Chrome 有个非常棒的功能,当你在地址栏搜索时,搜索框的备选项中会匹配你之前收藏过的书签标题,可以不用再去通过 Google 寻找了。有个小技巧,保存书签的时候可以复制网页正文当做标题,这样下次搜索时只要匹配到这篇文章的一个词就会显示在备选中。如果你喜欢使用 Pocket,印象笔记等软件进行收藏,你会发现,到最后堆成山你都不会去看上一眼,为此印象笔记有个插件『剪藏』提供了在搜索结果中展示笔记中匹配到的笔记,但是体验过后发现中文的匹配太差劲了,而且展现的结果是在搜索结果页,不能展现在搜索框的备选项中。

技术笔记

知识都是很零碎的,想把知识都归纳起来,有些人建议印象笔记或者为知笔记,但是当我体验过很多笔记记录软件后,感觉每次记录之后整理笔记是个很烦的事,以记事本为单位还是以单个笔记为单位,还是用标签。最后整理完,很难形成一个很好地结构体系,所以我后来用了 Workflowy 这个工具 workflowy

可以更方便的定义你的知识结构,结构上下级可以随意调整,无限的分类,事实上,很多知识都是这样的,有时层级会很深,如果使用普通的笔记,很难控制和体现这种关系。这款软件的缺点是类似 Markdown 但是不支持 Markdown。只适合用来记录纯文本的知识。Chrome 有插件提供支持 Markdown 相关的功能,但是我体验之后感觉一般。还有个问题是国内的访问会比较慢,不过国内也有个类似的软件叫『幕布』,目前在用,特点是速度快并且支持预览脑图,可以通过图的形式查看你知识体系。

博客总结

博客可以写自己的项目经验、知识总结、一些想法等等,写博客是对某个专题深层次研究的过程。在上学的时候,每当给别人讲解题目的时候,会发现你对这道题目会有更深的理解,写博客也是,你在写博客的同时,对你写的东西会有更深刻的印象,所以,有时候我记不住的知识我都会通过写文章发博客的形式让自己记住。通过写博客,你可以总结旧的的知识,同时也可以衍生出你的观点。更重要的是写博客也是一个知识分享的过程。

汲取

通过结构化笔记和博客的总结之后,你会在这个过程中形成自己的知识体系,对知识的理解更加的深刻。我们学习的目的是为了在项目中应用,所以通过学得的知识应用在项目中,会提升你的项目开发能力。而后,你在项目中的经验又会通过总结,形成你知识体系的一部分,这样就形成了知识的正循环。

以上就是我个人的知识管理方案和对学习的理解,因为每个人所处的环境和学习方法不同,所以我所描述的东西不完全『正确』,仅供参考。如果以上赘述对你有帮助,深表荣幸。