-->

左耳听风_098_97_高效学习源头原理和知识地图

你好,我是陈浩,我名左耳朵house有了上节课中分享的那些观点啊,那接着呢我们来看一看应该怎么做。

接下来呢是我觉得比较不错的一些学习的方法,或者说呢对我来说最有效的学习方法。

我相信只要你和我一样做到的话,你的学习效率啊一定能够提升的很快。

首先我们要说的是如何挑选知识和信息源,还是我在程序员练习攻略中说的那样,英文对于我们来说啊至关重要,尤其是对于计算机知识来说,如果你觉得你用百度啊搜中文关键词就可以找到自己想要的知识了,那么呢你一定远远落后于这个时代啊。

那如果你在google用英文关键词可以找到自己想要的知识呢,那么你算是能跟得上这个时代。

那如果你能在社区里跟社区里的大牛交流啊,得到答案,那么你算是领先于这个时代了。

所以呢,我认为你的信息源呢要有这么几个特质。

首先呢应该是第一手资料,不是被别人理解过消化过的二手资料,尤其是对于知识性的东西来说啊,更是这样,应该是原汁原味的啊,不应该是被添油加醋的那第二呢就是应该是有佐证,有数据有引用的,或者呢是有权威人士或者大公司生产系统背书的资料,应该是被时间和实践检验过的,或者呢小心求证过的啊,不是拍脑袋野路子或者道听途说出来的资料。

那第三呢应该是加入了一些自己的经验和思考,可以引发人深思的啊,也就是所谓的信息密度很高的文章。

那顺便我说一句啊,我发现medium上的文章质量比较高,很多文章呢都勾裹到了medium上。

我在程序员练级攻略,后期的文章里啊罗列了很多的文章资源。

那有的读者呢很不能理解,他们觉得我多傻应该导读一下,或者呢写上一些自己的想法,而不是只是简单的罗列出来。

那这里呢请允许我辩解一下,我之所以这样做,并不是因为我偷懒,我完全可以把这些信息资料全部隐藏起来。

翻译也好,单运也好,导读也好,自己消化完之后再写出来。

那么我可以写出多少个专栏出来呢?我觉得只要我有时间啊,即刻时间上所有的专栏都不用写了,我一个人呢就OK了,我可以写的又快又好,而且呢超出所有的人,那我呢可以挣到很多的钱。

但是呢我不想这样,我想把我读过的好的文章啊推荐给大家。

就像推荐书一样,那些呢是信息源头已经写的非常不错了,我不用再多废话。

而且那些文章的底部呢都有很多的引用,你可以一路啊点过去。

我想通过这些简单链接的方式啊,给我的读者打开一个全新的世界。

那他们呢可以在这个世界中啊自己找实吃,而不需要依赖我。

那这个呢才是我想给大家带来的东西。

我不知道我的那些推荐文章,有没有让你看到的一个很广阔的世界,在那里呢?每天都在产生很多最新最酷、最有营养的一手信息,而不是被我或者被他人消化过的二手信息。

在这里呢我只想说,对于一个学习者来说啊,找到优质的信息源可以让你事半功倍。

一方面呢就像找到一本很好的武林秘籍一样。

而不是被他人翻译过或者消化过的啊,也不会有信息损失,甚至呢有错误信息会让你走火入魔。

另一方面呢,你需要的不只有知识和答案,更重要的呢是掌握学习的方法和技能。

你需要的是打鱼的方法,而不是打出来的鱼。

那其次呢你要注重基础和原理。

我在很多的场合呢都提到过,基础知识和原理性的东西啊是无比重要的。

这些基础知识就好像地基一样,只要足够扎实啊,就可以盖出很高很高的楼。

正所谓啊故在浮沙。

祝高台。

我说过很多人呢并不是学的不够快,而是他们的基础啊真的不行。

呃,基础不行呢,会影响你对事物的理解,甚至呢会让你不能理解为什么是这样。

那当你对事物的出现有不理解的东西的时候呢,那通常来说是因为你的基础知识没有跟上。

在程序员练习攻略一文中呢,我用了很大的篇幅给出了学习基础技术的路径。

那只要你努力学习那些基础知识,了解了其中的原理啊,那你呢就会发现这个世界上的很多东西啊是大通的。

我举个例子,如果你学习过底层的sockey的编程,了解了多路复用和各种IO模型的话,那么呢你对于node、 JS、 java NIO engines,还有c加加的ACE框架等这些中间件或者编程框架,你就会发现无论表现形式是什么样的那它们的底层原理呢都是一个样的。

无论是JVM还是node啊,或者是python解释器里干了什么,那他们呢都无法逾越底层操作系统,API对物理世界的限制。

而当你了解了这个底层物理世界以后呢,无论那些技术完成什么花样,那他们呢都无法超出你的掌控。

我再来举一个例子,当你学了足够多的语言并有了丰富的实践以后啊,你就会开始对编程语言的各种编程范式或者控制流啊,有了原理上的了解。

那这个时候再学一门新的语言的话,你就会发现自己学的飞快。

就像我在二零一零年学习go语言一样,除了那些每个语言都有的。

If felse follow valvelop,还有这些些东西以外啊,我重点在看的呢就是出错处理是怎么玩的,内存管理是怎么玩的?数据封装和扩展又是怎么玩的?多态和泛型是怎么搞的呢?运行式识别和反射机制是怎么玩的?还有并发编程啊,怎么玩?那这些呢都是现代变成语言必须的东西。

那如果没有呢,那么这个语言的表达能力啊就很落后了。

所以当你知道编程语言的本质和原理之后啊,你学习一门新的语言是非常非常快的。

而且啊可以直达它的高级特性。

而最最关键的呢就是这些基础知识和原理性的东西和技术啊,都是经历过长时间的考验的。

所以呢这些基础技术啊,也有很多人类历史上的智慧结晶会给你很多的启示和帮助。

比如说TCP协议的状态机可以让你明白。

如果你要设计一个异步通信协议,状态机呢是一件多么重要的事儿,还有TCP拥塞控制中的方式。

它让你知道设计一个以响应时间来限流的中间件是什么样的当?学习算法和数据结构到了一定程度的时候啊,你就会知道算法不仅对于优化程序很重要,而且呢它会让你知道该如何设计数据结构和算法来让程序变得更为健壮和优雅。

有时候呢学习就像拉弓蓄力一样,学习基础知识呢感觉很枯燥,很不实用。

工作上呢用不到,但是学习这些知识呢是为了未来可以学的更快。

基础。

打牢啊却什么都快,而学的快呢就会学的多,学的多呢就会思考的多,对比的多,结果呢就是学的更快。

那这种感觉呢对于想速成的人来说啊,很难体会。

那这里呢我想再次强调一下,请一定要注重基础知识和原理上的学习。

另外呢你一定要学会使用知识图,我先讲一个故事,在两千年啊,我从昆明到上海啊,开始互飘的岁月,刚到上海啊,找不到好工作,只能大量的学习和看书。

Ceci加,还有java TCPIP、 windows编程、unix编程啊等等。

结果呢书太多了啊,根本看不过来,我想要更多的掌握知识。

结果呢我发现以死记硬背的方式啊,根本就是在使蛮力学习。

我很难在很短的时间内啊学习很多的知识。

于是呢我自己发明了一种叫做联想技法的方法。

比如说在学习c加加的时候,面对c加加primer这种厚的不行的书啊,我就使用联想记忆法,我把c加加呢分成了三部分。

第一部分呢就是c加加呀是用来解决c语言的问题的那c语言有什么问题呢?指针宏错误处理、数据拷贝啊等等,那CI加用什么技术来解决这些问题呢?那就是第二部分,CI加的面向对象特性,包括封装、继承多肽,封装呢让我想到了构造函数和析构函数。

而构造函数呢让我想到了初始化列表,想到了默认构造函数,想到了拷贝构造函数,想到了new啊等等。

而多肽呢,让我想到了虚函数,想到了RTTI. Rtti呢让我想到了dynamic cast,还有type ID啊等等。

那第三部分呢就是c加加的泛性编程。

我想到了template,想到了操作符重载,想到了函数对象,想到STL,想到数据容器,想到了iterator,想到了通用算法等等。

于是呢我通过顺藤摸瓜的方式,从知识树的主干开始做广度或者深度遍历。

于是啊我就得到了一整棵的知识树。

那这种顺藤摸瓜的记忆方式啊,让我记住了很多的知识。

最重要的是当出现一些我不知道的知识点的时候呢,我就会往这棵知识树上去挂。

那这样一来啊,也使我的学习更为系统和全面这种画知识图的方式呢,可以让你从一个技术最重要最主干的地方出发,开始遍利所有的技术细节,也就是画地图的方式。

那如果你不想在知识的海洋中迷路啊,你就需要有一份地图。

所以说学习呢并不是为了要记忆那些知识点,而是为了要找到一个知识的地图。

你在这个地图上能通过关键的路径找到自己想要的答案。

好了,我总结一下今天的内容。

首先呢我强调到挑选知识和信息源的重要性,因为优质的信息源啊可以让你事半功倍。

其次呢,我认为一定要注重基础和原理。

那基础打牢啊,学什么都快,而学的快呢就会学的多,学的多呢就会思考的多,对比的多,结果呢就是学的更快。

最后呢我指出学习时啊一定要使用知识图。

学习呢并不是为了要记忆那些知识点,而是为了要找到一个知识的地图。

那你在这个地图上能通过关键的路径找到自己想要的答案。

我相信啊只要掌握到了好的方法,你能做到的话,你的学习效率啊一定会提升的很快。

在下节课呢,我将接着介绍几个不错的学习方法,希望能对你有帮助。