小孩
我很有幸见证了我妹妹的长大,从最初的蹒跚学步、呀呀学语。人的学习靠的是不断的模仿,内化,有了学习能力之后有了自己的一套学习方法。不同的人有自己的一套学习方法,你学不来,他也教不会你。
成人
正如常说的,成功不可以复制一样。学习方法也不能被复制,也就是模仿。别人的学习方法是人家生活经历慢慢提炼出来的,你和人家完全不一样。世上没有两片相同的树叶,每个人都有自己的独立性,人们在小时候会不自觉的模仿,长大了就多了些思考。
庄子里这个小故事说的也是这个道理
1
2
3
4
5
6
7
8
9
10
轮扁论读书
桓公读书于堂上,轮扁斫轮于堂下,释椎凿而上,问桓公曰:“敢问公之所读者何方邪?”
公曰:“圣人之言也。”曰:“圣人在乎?”
公曰:“已死矣。”曰:“然则君之所读者,古人之糟粕已夫!”
桓公曰:“寡人读书,轮人安得议乎?有说则可,无说则死。”轮扁曰:“臣也,以臣之事观之。
斫轮:徐则甘而不固,疾则苦而不入;不徐不疾,得之于手而应于心;
口不能言,有数存焉于其问。臣不能以喻臣之子,臣之子亦不能受之臣于臣,是以行年七十而老斫轮。
古之人与其不可传也,死矣。然则君之所读者,古人之糟粕已夫!”
《庄子· 天道》
学会一样东西,不是依葫芦画瓢,而是心领神会。就拿技术来说,你会用某某框架,知道人家某某特性,用的得心应手。但是换一个类似的,你却不会用了。用前面故事里的话来说,那是人家的糟粕。
谈谈自己的学习
摸爬滚打了几十年,我发现自己花在模仿的时间很多。看别人博客,微信公众号文章,看学习视频。很多东西需要内化,只做表面的记忆,过一段时间就会淡忘。
俗话说,授人以鱼不如授人以渔,学东西也是。当你从事一项工作很长,它的技能会和你骨子契合,比如骑自行车,几年不骑依然很快就可以溜达。而我发现,世间万物,不同的学科,不同的技能,有着非常大的相似性。道德经说,一生二,二生三,三生万物。了解了事物的本质,同类也就触类旁通。
比如编程语言,我会很多种,前端的声明式css、html,命令式shell脚本,高级语言Java、C#、Python、Scala、Rust。它们都有自己的类型系统,不论动态还是静态语言,这些类型都有,数字型、布尔型、字符型。它们都有条件控制if-else, foreach,都有集合,有数据结构,有多线程、锁。面向对象的特性,抽象、多态、继承,在它们身上都有影子。我以前写过一篇文章讲面向对象的,我认为在哲学上来说,是对于事物的抽象,面向过程是对行为过程的抽象。编程其实就是对现实世界解构,首先有一个概念,然后编程里面就会出现各种实现。比如单通道复用,是物理里的概念,打电话会用到,同一个信道可以让几个用户使用。这个概念被移植到了系统的io层,Java对其封装1.4出现了NIO,它是同步非阻塞的。nginx也使用了它。如果盲目的学习NIO类库的使用,对于其他语言的类似类库,会不会学完似曾相识,不知其所以然呢。
不同的语言一直在相互学习,Rust吸收了很多语言的优秀特性,比如Go的简洁,Optional,Future,async/await来自于其他语言早就有的东西。Java spring框架也是抄了很多类库,很多框架的东西。Java的Optional概念来自于Google的guava库。追本溯源,探究技术本身,才能学得更远。
最后总结一下,不要停止思考,培养自己的学习方法。别妄想7天学会c++,21天掌握Linux。别人的任何东西都不可以复制。