上一次关于初学者与老司机的文章,有读者评论说,能不能介绍一下初学者应该如何做,才能让自己变成老司机,所以这篇文章就介绍一种我一直都在用,且每次使用结果都非常好的方法。
今年三月份,我的英语水平可谓是上了一个台阶,听一些网易公开课突然发现自己不用字幕也可以听懂了;同时,看英语的原著也不吃力了,虽然还是有一些词不认识,但能大概猜出来是什么意思。
但有一个痛,一直都存在。就是我的家乡口音,直接影响了我的英语口音。
这是个悲伤的故事,在此不细讲。
就在那时候,我发现英语歌是个非常不错的东西,里面的连读,略读等语音技巧非常多,发音也非常纯正。
当时我就想能不能模仿他们的声音,包括一些细节。
当然,事情没那么顺利,因为英文歌实在是太快了,根本跟不上。
又过了几天,想想,不就是太快了嘛!想办法把它变慢不就行了吗?
在手机应用商店一搜,还真找到了好几个可以放慢语速的app,随手下了一个,发现放慢之后,几乎每一个发音技巧,在细节之处都能让自己听到,并且可以跟上。
到目前为止,没有花太多时间在这上面,但我的英语发音得到了非常大的改善,令你不敢相信的是,我一共就学了十来首英文歌。
由此,我们看到一个事实:对于初学者来说,模仿可能是最好的入门方法,且人人都能做到。
为什么这么说呢?
对于初学者来说,最大的弱点就是没有经验,因此企业招人也不喜欢招刚毕业的大学生。
那怎么得到经验呢?谁有经验呢?
答案很明确,在你所在领域摸爬滚打了十几年,甚至几十年的老司机有经验。
那问题就转化为如何拿到老司机的经验了?
对的,就是模仿。因为每个老司机都有自己的小套路,比如作家会有自己的写作框架,篮球教练会有自己的教人方式,演讲会有自己的话术。
模仿他们,就是在学习他们的经验,让他们的经验转化为自己的经验。
甚至,我们还可以得到另一个重要结论:模仿得越像,你的进步就越大。
不管过程如何,最后我们在乎的是结果。
因此,我们可以得出一个基本的结论:初学者确实可以通过模仿,达到初级到中级的进阶。
我知道听到这个你可能会很激动,我见过。
事实上,你可能激动得过早了,因为我还有更深一层的翻译:模仿别人的思考过程能让你变得和别人一样聪明,甚至更有创造力。
因为别人的作品,创意都是由他深入思考后做出来的,也就是说,高手产出作品的上一层结构是:思考过程。
使用第一性原理想想,我们是否可以理解为:如果我也可以那样思考,那我是不是也可以创造同样水平的产品呢?因为产品来源于思考的结果。
对比一下两个模仿的对象,可以发现前者模仿的更像是一些静态的东西,他们是可以看得到的;后者模仿的更像是一些动态的东西,他们的看不见,但却是更为重要的。
用一句话来说就是:前者模仿了形,后者模仿了神。
总结一下:
初学某一技能,是可以通过模仿老司机的小套路来让自己获得经验的。
达到中级之后,模仿高手的思考,创造过程可以让自己也变成高手。
但是达到高手之后,要变成专家,需要自己构建自己的思维框架。
你可能会问,那我具体应该怎么做呢?
在《黑客与画家》里,作者曾说:创造优美事物的方式不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合在一起。
画家学习绘画的方法主要是动手去画,那黑客学习编程也理应通过范例,即优秀的程序来实践。
由此可见:学习一项技能是在前人基础上融入自己新的东西。
但事实是:很多人连前人的基础都够不到。
那怎么才能利用好前人的成果,让自己加速成长呢?
对的,就是“模仿”。而且模仿也是有套路的,以练习编程为例:刚开始学习编程,应该利用好前辈们的优秀程序,所以模仿他们写程序最佳。
那怎么模仿呢?
第一步应该复制代码在自己电脑上跑一下,第二步再跟着前辈的代码手敲,第三步是按照自己的记忆复原代码,第四步是拿自己的代码与前辈的代码对比。
事实上,他对应着模仿的四个阶段。
1. 目标
第一步是复制代码,也就是我们要完成的目标。
在这一阶段最重要的是选好自己的方向,在学习某一技能时,便是要选好领域大牛的作品。
但现实是:很多人的目标往往不止一个。有人希望天天吃美食,同时保持非常好的身材;有人希望不用努力,就可以拿到高薪的offer。所以,面对众多的选择,最好是能按照重要性,排个优先级顺序,让自己有序的执行。
在这一阶段,还有一个很重要的事要做,那就是“目标拆分”。
如果你选定了一个目标,那这个目标一定是由很多小技能组成的。比如你要学习英语,那对应的小技能就是听-说-读-写-译。
如果你觉得听说更重要,读写没那么重要,你就可以把大部分精力都放在听说上,把小部分精力放在读写上。
同时,“听”也是由单词-短语-句子-句型结构组成的,再往下拆分就是单词的音标和语法了。
我们可以得到:目标代表着我们的方向,而每个目标都应该拆分成小目标执行。
2. 模仿
选好目标后,下一步就是我们正经的模仿。
如果初学者想要提高自己的编程能力,只有自己动手去敲代码,才会有可能提高,而仅仅看代码,很难有质的飞跃。
夏洛克福尔摩斯曾说过:你只是在看,而没有在观察。
只有自己动手去做的时候,才会发现细节里隐含的信息。
这一步其实就是学习的过程。
最重要的一点就是观察模仿对象的高明之处,并总结出来。
3. 提取
掌握知识的多少,不在于你看过多少,而在于用的时候你能提取多少。
在模仿代码里,则是看过那一段代码,自己理解之后,能不能再按照思路重新复原代码。这个过程就是对所学东西的提取过程,也就是用。在提取过程中,你会发现还是有一些不太会,这时候你就知道自己哪里没有学会了。
通过这个过程,我们可以非常清晰地知道自己哪里真懂了,哪里不懂。
同时,这也是我们第一次模仿学习的成果。
4. 对照反思
知道结果之后,就可以和目标比较了。
在和目标比较的过程中,可以发现自己和目标的差距,这就是即时的反馈。
拿到反馈也就意味着自己知道自己哪里不足,哪里可以改进了。
这时候就应该反思一下自己为什么这里不足了。
在反思的过程中,自己会慢慢形成新的认知,同时对不足之处作出新的调整,调整方向后再重新出发,优化自己的结果。
这就是模仿的四部曲。
其实这和现在很火的机器学习很像,因为机器学习也是基于模仿的。无论是模仿人类写诗,还是模仿人类写菜谱,创作歌曲,都是通过对历史数据的模仿,进而形成新的东西。
以线性回归模型为例。
如果要预测某一地区的房价是多少(机器要学习的目标),就要利用历史数据拟合出一条直线或曲线,数学表达式为:Y = a1*x1 + a2*x2 +b。其中x1,x2就是房屋周边的条件,比如房屋的面积,房屋的朝向等。
当已经知道x1,x2,Y的时候,就可以把大量数据传到这个方程里,让计算机找到最好的参数a1,a2,b,来拟合最好的直线。把数据传给计算机的过程就是学习的过程。
当来了一组新的已知结果(房价Y)的测试数据x1’,x2’,就要用已经学习好的参数a1,a2,b计算出它对应的Y(房价)。用新的参数就是提取的过程。
计算Y 之后,和真实的Y 比较,发现之间的误差,这不就是真实的反馈吗?
那知道反馈(误差)之后,在机器学习领域设计了一个叫损失函数的东西,其实它就代表了误差,通过这个函数,计算机可以发现自己哪些参数没学好,从而迭代优化参数配置。这就是对照反思的过程。
这就刚好与我提出来的模仿四部曲一致了。
仔细思考一下,Y = a1*x1 + a2*x2 +b 这条公式中的x1,x2不就是与目标相关的小技能吗?通过很多小技能的组合,最后可以组成一个大技能,这也验证了第一个步骤的猜想:把大技能拆解成小技能,然后各个击破。
总结:
通过与编程做类比,我发现了模仿的四个步骤:
1. 定好目标,同时把目标拆解成许多个小技能,便于有针对性的学习。
2. 学习先前已经定好的目标,自己亲自动手去做才能发现其中的细节。
3. 学完之后还要检查一下自己学得怎么样了,这可以看自己能提取多少知识。
4. 在提取的过程中发现自己的不足,进而在不足之处作出调整。