知识网络和学习方法

学习一手的知识

这是在某篇博文中看到的一句话,深有感触。其实做程序员这行,尤其是非科班入门,大部分时候就是遇到什么不会的,直接百度查一下,然后看到各种论坛的文章,按个试一下,问题解决了就行。但是众所周知,网上的信息良莠不齐,往往需要在大量文章里面筛选有价值的,更何况还有很多人抄来抄去。
我有个习惯,看到有用的知识、文章,总要记一下,方便以后需要的时候,不用再做一次知识筛选,最开始使用印象笔记,现在使用notion。两三年的积累之后,我发现我的印象笔记炸了,里面有上千篇剪藏的文章,文章的检索又开始变得低效。
然后我开始反思,去review这些文章,那时刚好准备换工作,因为准备面试,把Java基础的书、Spring官方的文档又看了一遍。然后发现,其实工作中碰到的很多问题,之前剪藏的很多文章,都只是针对了官方文档中的一个点,正因为文档、书籍太多,很多人没有耐心去读完,所以使用中就会遇到问题。
对于技术来说,官方文档就是第一手的资料,比如Spring,SpringBoot,Kafka,SpringKafka,Flink等,不得不说,Spring的文档和Flink的文档,是我这么多年读的文档里面最好的,结构也比较清晰。然后对于语言类,虽然也有文档,但是对于一些特性解释的比较少,这种情况,可以结合一两本业界权威的书籍,作为一手资料阅读。
任何新的语言、技术、框架入手,我都建议第一时间读一手资料,而且不只是读一遍,要读两遍,三遍,要写笔记。
  • 第一遍,知道怎么使用,知道有哪些功能模块,对文档有个框架,可以快速定位想知道的问题在文档的什么地方。
  • 第二遍,是使用一小段时间后,对这个东西有了初步的了解,需要细读,做笔记,这份笔记是对文档的简略和翻译,去掉冗余的陈述,记录对自己关键的信息
  • 第三遍,对这门技术熟悉了之后,再通读一遍文档,补充之前笔记的遗漏,再梳理自己的框架。(为什么和如何做,后文会讲)
开始使用的时候,读完第一遍文档,要养成遇到问题先翻文档,文档看不明白的情况下,再去结合网络检索资源,这时候会发现,检索的资源大多符合预期。因为第一遍读完文档,你会比较清晰的知道,自己要检索的关键词是什么,大概问题出在哪个地方.
第二遍的时候,会积累一些自己的笔记,可能结构会比较混乱,此时可以把之前剪藏的相关的笔记,其中有价值的信息,截取到自己的笔记中,然后你就可以把那篇冗长的文章删掉了!
第三遍,对知识已经很熟许了,根据自己的理解,重新排序整理一下之前的知识,之后遇到问题也好,看到好的文章也好,基本上几句话,添加到这个框架上就行,不断的丰富和完善相关的知识体系。避免了为了一两句话,剪藏一篇文章了。
讲几个我真实经历的案例:
  1. 案例一:之前使用kafka的时候,我好奇为什么同事不使用spring-kafka,答曰不支持这个功能。真的不支持么?我用了两三天通读了spring-kafka,发现完全支持!之后就主导了spring-kafka的引入、相关技术的培训、和线上问题的排查等功能,其实开始也是个小白,但是这个过程我逐渐从业务需求出发,深入了解了kafka的机制、源码、spring-kafka的封装等
  1. 最近看了一个新的专栏,介绍Spring常见问题和踩坑,针对小白的。作者的确有些功底,很多深入源码的解读,但是看完几篇文章,我就有点浪费时间的感觉。文章提到的大部分踩坑的点,其实读完spring和spring boot之后,你就明白是怎么回事了,也不会踩到这个坑。这个就属于对知识的二次加工,这种知识,只能是对一手获得的知识进行补充,只是快餐。

我是如何学习英文的

有些人可能会抱怨文档都是英文什么的,我的英语水平,不能算好,也就那么回事吧。但是慢慢的,由最开始看起来很吃力,到现在可以通顺的读一篇英文文档,可以完成英文面试。
最开始的时候,16年吧,刚入门时候,在看《Spring In Action》这本书。为什么看这个,而不是读文档?因为当时英文实在不怎么样,读这个遇到不会的,对照中文翻译的书看看,至少能读下去。那时候英文实在是差,虽然单词大部分认识,但是在脑子中翻译成顺畅的中文太费事了,后来我索性,先看中文部分,再对英文部分,这样理解起来快很多。
慢慢的,对一些专有词汇了解了,对长句的转换顺畅了,开始在生活中使用英文。首当其冲就是换掉广告搜索引擎—百度,切换到谷歌,遇到问题,尝试使用英文关键词搜索,阅读steackoverflow,实在看不懂的,才会去谷歌中文。
等英文阅读的顺畅些的时候,强迫自己去啃英文的文档(当时要搞k8s,并且还没有中文文档)。
现在阅读技术相关文献是没有什么问题了,之前也尝试过英文的面试,还是能流畅的表达自己的想法,虽然从来没有练过听和说,但是阅读习惯了,其他方面自然而言也会有提升。
当然现在逛一些非技术论坛、网站还是有些压力,遇到了很多没见过的词汇。。

书读百遍,其义自现

前面也提到过,要读三遍书,除了粗读和精读,更重要的是,第一遍因为很多专业词汇,可能读不懂,然后就囫囵吞枣,不愿意再读第二次了。有时候我们前几次读,可能都没有领悟到某些要点或者精华的地方,多读几遍,尤其是实际使用过后,再去读,会有不一样的收获。
说到这个,就想起读书时候的一个故事:因为中考考的不好,所以升高中的暑假在家自学高中的课程,数学的习题册,经常遇到不会的情况,夏天家里热,又想看奥运会,心里很不耐烦,实在看不懂,就把书摔在了地上,冷静了捡起来接着看,如此反复三次,终于把那个知识点看明白了。此后遇到困难的地方,我都会结合多方资料,反复揣摩,过一段时间后再看一遍。包括我记下的笔记,也会去回看,订正错误,重新记忆。

使用思维导图整理

这算是最近看《龙樱》的收获,电视剧中,樱木大哥让学生们用手绘思维导图的方式画出知识点,通过树状结构来建立知识体系,方便记忆。
思维导图这个在前两年就听过了,当时有点后悔大学时候不知道,错过了这个好用的工具,但是毕业后看技术类文章,总觉得思维导图用不上,因为每次都是剪藏的文章,or写大篇的读书摘抄。
最近在回顾K8S的时候,发现里面很多零碎的知识点,然后这些零碎的知识点,在使用的时候,都是网上查的资料,剪藏了多篇文章。在阅读官网文档的时候,发现很多地方官方文档都有,于是打算整理一下官方文档要点,做个备注,但是这个结构的分层缺很难,官方文档的结构算是比较清晰了,但是实际写起来,还是觉得混乱。
尽管是使用的notion,可以方便的拖动调整内容,但是还是不直观。后来看完龙樱就在思考,能不能试一下思维导图,然后就用思维导图完成了K8S的知识脉络梳理,不得不赞叹,在整理的时候,利用思维导图去梳理脉络是一种很好的方式。
当时思维导图最终保存成一个独立的文件,往往不便于检索,或者和其他知识产生关联(例如其中某一部分比较复杂,会独立成一篇笔记。我现在的做法是,使用Xmind完成脑图后,会导出成md文件,然后导入notion,脑图只是一个中间的过度阶段。这不一定是最完美的方式,如果你有好的建议,如何构造一套完整的知识体系,欢迎讨论👏
 
本文作者: Song 本文链接: https://www.jiangyuesong.me 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

© Song 2015 - 2024