PS:一个人学习新东西的方法,会受到他解决问题的方式的影响。 就比如说,我解决问题, 我喜欢去找问题产生的原因,怎么解决这个问题, 怎么解决一类问题, 怎么解决一个从来没见过的问题一样。 我学习的模式也会潜移默化的被带入我解决问题的方式。
也是有一些人最近问我, 我的学习方法是什么, 我自己也是比较好奇不同的人, 详细说来, 就是不同行业的人,暂时不同层次的人会怎么去学一个东西,这种和不同的人交流的出发点,是上次我对象跟我说了一句话: 越是优秀的人,他的学习成本,就越低。我就在想,他是怎么变得优秀,又为什么成本会更低?
废话说得有点多了,我暂时总结我自己的方式吧。 和大家一起交流,也希望大家帮忙一起完善。
学习策略,分不同情况,我交流过一些人,主要得出的有以下几类:
A:遇到一个问题A,学习知识A,通过百度,博客,经验相传等方式,解决问题A
B:遇到一个问题B,学习知识B,通过百度,博客,经验相传等方式,解决问题B。然后,会去找到知识B的官方文档,更多的学习,获得类B知识,以及B的细化内容
C:遇到或者想学知识C,先找到知识C的官方文档,系统学习,上代码,遇到问题,重复B路线。
PS: 这里讨论的是时间充足的情况下,如果时间不允许,那必定是哪种方式更快解决问题,就用哪种。只是解决这个问题之后,不同的人,会重复ABC三种线路的一种, 或者就此结束,也或者有别的方式。 总
结说来,就是一个总-分-总;分;总-分;分-总之间的区别。
其实, 我最近比较懒,但如果非要给我自己归类的话,我应该是属于C类。或者说是总-分-总这个线路的。 从我解决问题的思路来看, 我是更倾向于知道这个问题出现的总体原因到底有什么的,所以,我在学东西的时候,会更倾向于先掌握宏观体系,再优化细节内容。
具体的例子: 如果我要学习redis,我会怎么学?
前提是:我为什么要学redis,是我自己单纯好奇,就是想了解一下,还是我遇到了什么问题,需要深入学习redis去解决? ——定义好这个问题, 会更容易的让我自己在钻牛角尖的时候,钻出来!
然后,当我决定,我就是要学redis的时候,我会怎么去学习呢?
- redis从哪里来,要到哪里去? redis的历史过程是什么,它是怎么诞生的,它的发展历程是什么......
- redis要找谁? redis究竟是要解决什么问题
- redis携带了什么?redis到底是什么,它的定义,功能特性,优缺点等等
- redis的最佳实践?别人都是怎么用redis的
- redis的可替代方案是什么?如果我不用redis,我还可以用什么?
- 细化分支4,我怎么去用redis,细化到某一行具体编码,细化到redis的源码实现,去具体的解决一个问题——这一点也很重要啊,要是漏了这一点,就特么成PPT程序员了,会死的比较难看!
- 总结分支6,常见的bug有什么,注意点有什么等等
- 将redis塞到我自己的知识节点上
最后,等我自己学完了,觉得大家都是个傻逼的时候,会尝试去跟身边的人讲讲,讲完了之后,又觉得自己是个傻逼。又去学! 忧伤呀,但这一步,其实蛮重要的!
对于我来说,大概就是这么几步吧。然后, 一般的方式, 是思维导图。先把我的这些分支放到一张导图上。前两天我同事还问了我一个问题,反正我就是装逼,我给大家分享一下吧:
同事:红霞,你觉得redis是不是中间件?MySQL呢?
我: redis是不是中间件? 我要都说是,你敢信不? 我的一般解决思路是: redis是什么?中间件是什么?什么样的东西可以称为中间件? 如果redis是, 它是属于哪种类型,解决了什么问题? 可替换方案是什么?如果redis不是,那它为什么不是? 你得自己去确认, 不管听谁说得,可能都不靠谱,自己要确认一下才可靠。
同事:嗯,现在网上定义都很不明确
我:可能说法儿还很多, 一会儿说是,一会儿说不是。 建议你看看官方怎么定义redis和中间件的, 就算你觉得不是, 那只要你拿出一个前提, 和一个能说得通的理由, 我觉得就很好!
学习的方式各有不同,但能快速的学会就好。但什么又叫做学会了呢?每个人都有不同观点,所以多交流,实践检验真理!
我最近对学英语是真的有乐趣,大家可以交流一下英语学习方法呀呀呀呀呀! 另外:接下来博客会记录英语学习感悟