左耳听风_099_98_高效学习深度归纳和坚持实践
你好,我是陈浩网名猪耳朵耗子。
在学习某个技术的时候呢,我除了会用到上节课中提到的知识图,还会问自己很多个为什么?于是呢我就形成了一个更高层的知识脑图。
那接下来啊我会把这个方法分享出来。
当然学习一门技术的时候,购物员好,docker也好,我都有一个学习模板。
那只有把这个学习模板中的内容都填实了,我才罢休。
那这个模板呢是这个样子。
第一呢就是这个技术出现的背景初衷要达到什么样的目标,或者是要解决什么样的问题。
那这个问题呢非常关键。
也就是说你在学习一个技术的时候啊,需要知道这个技术的成因和目标,也就是这个技术的灵魂。
那如果不知道这些的话,那么你就会看不懂这个技术的一些设计理念。
第二呢,就是这个技术的优势和劣势分别是什么?或者说这个技术的trade off是什么?任何技术呢都有其好坏,在解决一个问题的时候呢,也会带来新的问题。
另外呢一般来说啊,任何设计都有垂倒伏。
所以说你要清楚这个技术的优势和劣势,以及它带来的挑战。
第三呢就是这个技术适用的场景。
任何技术呢都有它适用的场景。
那离开了这个场景啊,这个技术可能就会有很多的槽点。
所以说学习技术啊不单要知道这个技术是什么,还要知道它适用的场景。
没有任何一个技术是普世的。
注意啊,这里所谓的场景呢一般分为两个,一个是业务场景,一个呢是技术场景。
第四呢,就这个技术的组成部分和关键点。
那这个呢就是技术的核心思想和核心组件了,也是这个技术的灵魂所在了。
学习技术的核心部分呢是快速掌握的关键。
第五呢是技术的底层原理和关键。
实现任何一个技术呢都有它底层的关键基础技术。
那这些关键的技术啊很有可能也是其他技术的关键基础技术。
所以说呢学习这些关键的技术,底层技术啊,可以让你未来很快的掌握其他的技术啊,你可以参看我在酷shl上面写的docker底层技术。
那一系列的文章。
第六呢就是已有的实现和它之间的对比。
那一般来说呢任何一个技术啊都会有不同的实现。
那不同的实现呢都会有不同的侧重学习,不同的实现可以让你得到不同的想法和思路。
对于开阔思维,深入细节啊都是非常重要的那基本上来说呢,如果你按照我前面所提的这六个大点来学习一门技术啊,你一定会学习到技术的精髓。
而且学习的高度呢在一开始啊就超过很多人了。
那如果你能这样坚持两到三年啊,我相信你一定会在某个领域成为炙手可热的佼佼者。
那接着呢我想讨论一下举一反三的能力,举一反三的道理呢人人都知道。
所以在这里呢我并不想讨论为什么要举一反三,而是想讨论如何才能拥有举一反三的能力。
我认为呢人与人最大的差别啊就是举一反三的能力,那些聪明的或者是有经验的人,举一反三起来真是太令人惊叹了。
我觉得一个人的举一反三能力啊可以分解成三种基本能力。
那第一呢是联想能力。
这种能力的锻炼呢,需要你平时就在不停的思考同一个事物的不同的用法。
或者呢联想与它有关的其他事物,那对于软件开发和技术学习呢也是一样的。
第二呢是抽象能力。
抽象能力呢是举一反三的基本技能。
那平时你解决问题的时候啊,如果你能对这个问题进行抽象,你就可以获得更多的表现形式。
那抽象能力呢需要找到解决问题的通用模型。
比如说数学啊,就是对现实世界的一种抽象。
只要我们能把现实世界的各种问题建立成数据模型,我们啊就可以用数学来求解。
那这个呢也是机器学习的本质。
第三呢是自省能力。
所谓自省能力呢就是自己啊找自己的难看。
当你得到一个解的时候啊,要站在自己的对立面来找这个解的漏洞啊,有点像左右守护国。
那这种自己和自己辩论的能力呢,又叫做思辩能力,将自己分裂成正反方左右方,甚至多方站在不同的立场上来和自己辩论,从而做到不漏过一个case,从而获得完整、全面的问题分析能力。
在这方面我对自己的训练是这样的。
呃,第一呢就是对一个场景制造出各种不同的问题或者难题。
第二,对于一个问题,努力寻找尽可能多的解,并比较这些解的优点。
第三,对于一个解努力寻找各种不同的测试案例来让它更加健壮。
老实说啊要获得这三种能力啊,除了你要很喜欢思考。
还有找其他人来辩论或者讨论以外,还要看你自己是否真的善于思考,是否有好奇心,是否喜欢打破砂锅问到底,是否喜欢关注细节,做事呢是否认真,是否严谨啊等等。
那这一系列的能力呢,最终能够构建出你强大的思考力,而这个思考力啊会直接转换成你的求知和学习能力。
那其实呢我也一直在不断的加强自己的这些能力。
那接着呢就是要对知识啊进行总结和归纳,对自己的知识进行总结和归纳呢,是提高学习能力的一个非常重要的手段。
那这个呢就是把一个复杂的问题,用简单的语言来描述的能力。
就像我小时候上学的时候啊,老师让我们写文章的中心思想一样。
这种总结和归纳能力呢会让你更好的掌握和使用知识。
也就是说呢,我们把学到的东西,用自己的语言和理解重新组织并表达出来。
那本质上呢就是对信息进行消化和再加工的过程。
那这个过程呢可能会有信息损失,但是呢也可能会有新的信息加入。
本质上呢就是信息重构的过程。
我们积累的知识越多呢,在知识间进行联系和区变的能力啊,就越强对知识进行总结和归纳,也就越轻松。
而想要提高总结归纳的能力呢,首先要多阅读,多积累素材,扩大自己的知识面,多和别人讨论,多思辨,从而见多识广。
不过呢我们需要注意的是,如果你只学了部分知识,或者还没有学透,就开始对知识啊进行总结和归纳。
那么总结归纳出来的知识结构啊,也只能是混乱或者幼稚的。
因此呢学习的开始阶段可以不急于总结归纳,不急于下判断做结论,而应该保留部分知识的不确定性,保持对知识的开放状态。
当你对整个知识的理解更深入,自己站的位置更高以后啊,总结和归纳才会更有条理。
总结归纳呢更多是在复习中对知识的回顾和重组,而不是一边学习一边啊就总结归纳。
我们来总结一下做总结归纳的方法,把你看到和学习到的信息呢规整好、排列好,关列好。
总之呢是把信息碎片给结构化掉。
然后在结构化的信息当中呢找到规律,找到相通之处,找到共同之处,进行简化归纳和总结。
最终呢形成一种套路,一种模式,一种通用的方法。
要想训练自己这方面的能力呢,你需要多看一些经典的方法论图书,看一看别人是怎样总结和归纳知识的。
你可以在一开始啊模仿并把自己理解的知识给写出来,那写博客呢会是一种很好的方式。
而另外一种更好的方式呢是讲一遍给别人听。
总之呢你需要把你总结归纳的知识啊公开出来给别人看,接受别人的批评和反馈,那这样呢你才能成长的更快。
那其实啊我也一直在锻炼这样的能力。
那如果你在cooell上看过我的TCP的那些事儿啊,你就能知道我对TCPIP详解这本这么厚的书和一些日常工作经验的总结。
我写了两篇比较简单的博客,你需要像我一样扩大自己的知识面,然后呢学会写博客啊,就能慢慢的拥有这种能力了。
这种将信息删减、精炼和归纳的方法,可以让你的学习能力得到快速的提升。
那当你这么做的时候啊,一方面是在锻炼你抓重点的能力,另一方面呢是在锻炼你化繁为简的能力。
这两种能力啊都是让你能高效学习的能力。
最后呢我还是想说一下,一般来说呢拥有这样的能力的人啊,都需要有在更高维度上思考问题的能力。
比如说一些名人的金句啊,就是这种能力的体现。
这种能力呢需要你非常深入的思考,需要你的阅历和经验。
当然和聪明人在一起也是提升这种能力的最有效的选择。
此外啊,你还要明白这样一个道理,就是实践出真实。
所谓的实践出真知呢,也就是学以致用,不然呢只是纸上谈兵,误国误民。
只有实践过,你才能对学到的东西啊有更深的体会。
就像我看eeffective c加加more effective c加加这两本书一样。
在一开始看的时候呢,我被作者的那种翻来覆去不断找到答案,又否定自己的求职精神啊所折服。
但是作者这种思维方式啊,只有在我有了很多的实践和经验以后,才能够真正的体会到为什么是这样的那这两本书呢不是很厚。
但是呢我看了十多年书中的很多章节呢,我都可以背出来。
但是呢我想得到的不是这些知识,而是这种思维方式。
那这个呢就需要我做很多的编程工作,才能真正明白,才会有斯科特曼耶斯那样的思维方式。
那这个呢才是最宝贵的。
另外呢实践出真知,也就是英文中的一条own dog foot吃自己的狗粮啊,你才能有最真实的体会。
那些大公司里的开发人员啊,写完代码自己不测试,自己呢也不运维。
我实在不知道啊,他们怎么可能明白什么是好的设计,好的软件,不吃自己的狗粮,不养自己的孩子,那他们呢就不会有痛苦,没有痛苦呢就不会想改进。
那没有改进的诉求呢,也就不会有学习的动力。
没有学习呢就不会进步。
没有进步呢,就只会开发很烂的软件,不断的恶性循环下去。
实践呢是很累很痛苦的事儿。
但是呢只有痛苦才会让人反思,而反思呢则是学习和改变自己的动力。
Grew up through the pain是非常有道理的。
最后呢你一定要始终坚持不懈,坚持不懈呢是一句正确的废话。
前段时间呢我在我的读者群中啊发起了一个名字叫ARTS的活动,每人每周写一个ARTS,其中呢a hgorithm是一道算法。
题二,review是读一篇英文文章,t techniical或者tips是分享一个小技术。
S shell是分享一个观点,我希望大家啊可以坚持一年。
但是呢我也相信能够坚持下来的人啊一定很少,绝大多数人呢都是虎头蛇尾的。
但是呢我依然相信会有人坚持下来的,坚持呢是一件反人性的事儿,所以他才难能可贵,也更有价值。
我从二零零三年写blog到今天十五年了,看书、学习、写代码我都会一点一点的坚持。
人不怕笨,怕的是懒,怕的呢是找到各种理由放弃。
那这里呢我想鼓励一下,你现在很多国外的在线视频课呢都是三到五分钟一节课,一共呢二十节课,总时长不到两个小时。
但是呢你会发现就算是这样,能坚持看完的也不到千分之一。
当年lead code只有一百五十一道题的时候呢,一共有十几万人上来做题,但全部做完呢有十几个万分之一。
所以说只要你坚持啊,就可以超过这个世界上绝大多数人。
想一想,如果全中国有一百万个程序员,那只要你能坚持学习技术两到三年,你就可以至少超过九十九万人了。
当然呢坚持也不是要苦苦的坚持有循环,有成就感的坚持啊,才真正可以持续的。
所以说一方面呢,你要把你的坚持形成成果晒出来,让别人来给你点赞。
另一方面呢,你还要把坚持变成一种习惯,就像吃饭喝水一样,你感觉不到太多的成本付出。
那只有做到这两点啊,你才能够真正的坚持,希望我的这些话可以让你有足够的动力坚持下去。
好了,我总结一下今天的内容,我分享了系统学习,举一反三、总结归纳、实践出真知和坚持不懈等几个方面的内容。
首先呢在系统学习中啊,我给出了我学习时用的学习模板。
它不但有助于你学习到技术的精髓,更能帮助你提升你的学习高度。
坚持几年啊,你一定能在某个领域成为炙手可热的佼佼者。
其次在举一反三中啊,我分享了如何获得这种能力的方法。
然后在总结和归纳中呢,我指出积累的知识越多啊,在知识间进行联系和曲面的能力就越强,总结归纳的能力呢就越强,进而逐渐形成在更高维度上思考问题的能力。
另外呢在实践出真知这一节啊,我阐明了实践的重要性,并认为只有实践过才能对学到的东西啊有更深的体会。
最后呢我强调虽然学习方法很重要,但是坚持不懈更为重要,并给出了怎样做才能让自己对学习这件反人类的事儿。
坚持不懈。
下节课呢我将分享一些学习技巧啊,也是我这么多年来行之有效的,希望能对你有帮助。