如何构建自己的知识体系?

学习如逆水行舟,不进则退。这一点在CS领域尤甚,新技术、新框架日新月异地发展,业务层面的技术迭代非常快,可能刚熟悉了一项技术,很快就又被淘汰了。所以只有不停地接触、了解和学习新的知识和技能才能不断地拓展自己的程序生涯。
本篇文章是我写博客几年的对平时技术积累进行的一些思考,本来当作notes改版的记录,现在觉得抽离出来当作单独的文章也比较合适,我很少写感悟类的东西,觉得方法论太虚,但是如果具有理论指导行动的自制力,方法论也是很有必要的,希望自己也能做到。

从个人技术进步的角度看,在做业务时不能仅仅局限于业务相关的技术,尽量还是深入地去研究,因为业务技术的变化并不是自下而上的颠覆,而是高层抽象的变化,所以如果能够深入了解技术的实现原理才能够以不变应万变,才不会把自己迷失在新技术的追求里。

我把学习的过程分为以下五个阶段:

  1. 发现需求
  2. 收集资料
  3. 动手尝试
  4. 归纳总结
  5. 拓展创新

它们往往不是严格线性的过程,有可能在某一阶段中又延伸出其他的思考点,知识在时间和空间上的不连续经常会造成新学了一个东西隔段时间不用又忘了,问题的关键如何能保持知识的持续性呢?

我觉得最重要的是记录,记录思考过程、实现方法,总结所学知识体系内的规律,把握住知识的脉络,把当前的知识点与其他的知识点关联起来。在学习的过程中经常会有这种感觉:有时候看一个东西不甚理解,等过了一段时间之后恍然大悟,原来这些知识点都是有关联的,通过理解它们之间的关系,会大大加深对某个知识点的印象和更深入地理解。

学习的过程,就像学自然语言,最关键地就是要具有大量的输入和输出,读书、看文章以及动手实践都是输入的过程。而如何把学到的东西积累下来,才是平时应该坚持写笔记的原因。因为记录的过程其实就是对知识的思考加工再创造的过程,通过自己的语言和方式进行表述,会加强深刻的记忆,同时也会发掘出原本没有注意到的点。

我判断一个知识是否真的理解了的方法为:能否通过简单通俗的描述把它记录下来,并能够回答不懂的人所提出的问题。以不懂的人的眼光看待知识其实是最好的方式,他们会提出令人觉得很奇葩的问题,而如何清晰地回答这些问题,就是考验自己对知识是否真正理解了,而且对于不懂的人的解释用不了那些高大上的词,对于高端技术词汇辞藻堆砌的文章我是深恶痛绝的,完全不说人话,所以如何用最通俗的语言解释技术问题,才是对技术和语言能力的一个考验。

学习的过程,也是 怎么做(How)为什么(Why) 的过程,前期可能只是想要知道怎么样才能快读实现自己的需求,而深入地研究就是要去探索 为什么要这么做 的原因。我也挺喜欢去看技术的演变历史,就像C++的标准,新的标准里总会有废弃和新加的内容,去了解为什么旧的被废弃了,新特性又是为了解决什么样的需求,本质上也是追寻 Why 的过程。因为这样才可以把握住技术的脉搏,了解技术的演变方向,才会对技术产生更深刻的理解。

写博客的目的就是把学习过程中的思考和资料收集,一方面可以帮助有相同需求的人,另一方面用来梳理和积累起自己的知识体系,实现在学习中的输出过程。更多地还是要养成记录的习惯,及时总结,经常FLAG列了一堆,但是很久都没有去实现,应该在时间规划上来避免。

说了这么多,都是方法论,其实方法论无用,能够付诸实践才有用,因为如果只是探讨方法,而忽略实现过程,是不切实际的。而实现过程需要习惯性地去坚持,三天打鱼两天晒网是做不好事情的,尽量要养成持续的习惯,这里需要反思下自己,这段时间做的确实不够好,应该适当地调整工作生活和学习的节奏,不能把侧重的天平持续地倒向某一个方向。

以一言蔽之:我觉得学习的积累在于理论和实践相结合,输入和输出相辅助,知识的归纳整理不仅仅只是记录,而是再创造的过程。

近期把博客的组织方式进行了变动,之前我博客的组织方式是把平时的笔记都放在notes中,隔段时间会把其中可以拓展为一篇单独博客文章的内容抽出来。但是这样导致笔记堆积的越来越多,各种领域的都有,检索起来很不方便,而且大量图文笔记在一个页面中加载也十分缓慢,所以我把博客notes进行了整理,按照知识分类来划分,方便管理,可以在顶部导航栏进入指定的模块。同时也划分出非技术类笔记的模块essay,把平时工作生活的一些想法和读书笔记、思考记录下来。

全文完,若有不足之处请评论指正。

微信扫描二维码,关注我的公众号。

本文标题:如何构建自己的知识体系?
文章作者:查利鹏
发布时间:2020年10月10日 10时08分
本文字数:本文一共有1.7k字
原始链接:https://imzlp.com/posts/29551/
许可协议: CC BY-NC-SA 4.0
文章禁止全文转载,摘要转发请保留原文链接及作者信息,谢谢!
您的捐赠将鼓励我继续创作!