谈谈我所理解的学习

前几天在地铁上时看到一对母子,听到他们的谈话。
母:“你为什么总不写作业”
子:“作业我都会,让你天天重复写 1 + 1写100遍,你写吗”
当时很多人都笑了,我也笑了。但是当我仔细一想,发现背后有许多有趣的东西,在这我把我想的与各位分享一下

学习到底是在干嘛

学习一般来说是我们在学习知识,学习生活技能的过程。
从生物学上来讲,学习其实是在改变大脑的神经元结构,构建新的神经元连接的过程。
从现代科学来看学习一般经历两个过程,第一是接受新事物,这个过程会产生一些刺激,但是不会形成新的神经元(具体的生物学原理,我也不太知道,这些东西是在我高中时的生物课本上的内容,具体的我也记得不太清楚),经过长期的刺激,反复的练习、记忆,最终会形成新的神经元,成为长时间的记忆,最后通过反复的复习,记忆最终形成永久记忆。学习的过程其实就是神经元的建立的过程。
回到上面母子对话上来,大量重复的做 1+ 1的题有意义吗,我的答案是:有!从学习的生物学原理来说,现在我们知道1+1 = 2,但是这个在某种程度上是一个短期的记忆,而我们在学习的过程中需要将其转化为长期记忆,因此就需要长时间的,大量的练习,记忆、从而将其转化为长期记忆。在《塔木德》中有一句话:“只要把一本书念100遍,你就有能力读懂世界上任何一本书”。学习是一个重复,重复,再重复的过程。在重复中它会将某些知识深深的印在你的脑子里,甚至印在骨髓中。甚至可能会产生条件反射。比如我自己现在码字多了以后让我正儿八经的背下键盘上的每一个键我可能背不出来,但是当我的双手放在键盘上时,发现我能很快将我的想法变成文字,打出来,这就是长期练习导致的结果。
据说运动员在训练时会经历这样的过程,将一系列动作分解为各种子动作,直到不能再分,然后针对这些子动作做大量的训练,然后一气呵成完成对应动作。经过大量的训练形成条件反射,这样在赛场上,他们可能很多动作都是下意识的,可能并不会通过大脑思考。这样只算一般的运动员。优秀的运动员,会在此基础之上再次训练,再让这些动作由大脑控制,让大脑通过快速的思考,做出最适合的判断,然后由条件反射来执行最优的操作。这让我想起来禅宗里面的一句名言说我们在修炼禅宗之前,山脉就是山脉,河流就是河流,我们在修炼禅宗的时候山脉不再是山脉,河流不再时河流,等我们修炼完禅宗后,山脉又复为山脉,河流又复为河流。起初我一直不太理解这句话的意思,但是想想在学习的时候不就是这样吗,比如我们在开始学习英文时,看到单词mountian时,它是山,然后脑海中浮现出山的样子。学过一段时间后再看到这个单词,脑海里立马会浮现出山这个形象,不在需要借助中文“山”这个媒介。这是学习的不同境界,学的越多越接近事物的本质。只有当经历大量的练习,才能在脑海中反映出大量内容,才能看山还是山。

如何学习编程

为了要说学习这个话题?主要是为了引出学习编程的话题,还有就是为了骗流浪^_^。
如何学习编程?答案就在上面关于学习的讨论中——练习。学习任何东西都少不了大量的练习。大量看书,看资料,看视频,然后做大量的练习。不要觉得反正就就这么几句代码很简单的,或者这么多代码一行一行的敲很耽误时间的,反正我只要了解他的思想就好了。或者这段代码我以前写过,就算写我也能写出来,或者这个有开源库不需要我写。千万不要有这些想法,看书的过程中老老实实写代码,即使书上没有代码,也可以根据书上的思路编写一个测试代码。我自己感觉,编程能力的提升主要靠的是一行行的敲代码,在写代码的过程中会有许多新的体会,会发现自己的很多问题。
什么时候能达到根据算法在头脑中出现完整的代码或者根据代码能在头脑中运行,也就是将自己变成机器的时候,编程的功力就大成的。为了这个目标需要反复大量的练习。
最后以此目标与各位共勉。