若是你按照我上一篇文章所展现的学习方法去学习一门新技能的话,无论是区块链,仍是一门新编程语言,一周时间足以让你上手。我学习区块链从不会到学会就是用了一个星期左右,天天上下班路上学一个小时左右,晚上学两个小时左右,周末天天也是差很少三个小时,总共就是用了差很少21个小时,从0到1入门了区块链领域,以后就是不断精进了。并且我是从全局视角去学习区块链的,比一些片面地学了区块链开发半年的人更具备前瞻性。前端
固然,你也不必定要按照这套学习方法去学习,若是你已经长期在实践另外一套成体系的学习方法并且也一样很高效,那就继续按你原来这套学习方法去学习便可,好比@大头龙 同窗的反馈式学习法。若是你的学习方法还不够高效,那我建议仍是能够尝试下这套方法,毕竟我本身实践过,比我之前的学习方法的确高效不少。编程
不过,前面几篇文章讲了那么多,主要仍是偏向于如何从0到1地学会一项新知识,这方面的学习方法仍是比较容易掌握的,操做起来也相对简单。但如何从1到N——即从学会
到精通
,这方面的方法论则不太容易理解透彻,操做起来也更难,因此不少人即便努力了好久,依然很难达到精通的程度。本篇文章主要是梳理方法论,帮助你们先在脑海里造成正确的认知;下篇文章再来探讨,在进阶全栈的路上,咱们将要如何实践。微信
从学会到精通的方法论,简单来讲,也就只有两个:一万小时定律和刻意练习。可是,不少人对这两个方法论并无理解到核心部分,甚至存在理解误区。下面咱们就来聊聊这两个方法论。架构
相信每一个人都应该听过一万小时定律,但却不是每一个人都对其有正确的认知,很多人其实都存在一些理解误区,下面我会讲几点比较常见的。app
一万小时定律是格拉德威尔在《异类》一书中提出来的,简单来讲就是:一我的在某个领域想达到专家水平,须要持续通过至少一万小时的练习。一万小时是多久呢?若是天天工做8小时,一周工做5天,那么至少须要5年。而对于一些很是努力的人,则可能3年也能够达到专家水平,即平均天天投入10个小时,包括周末。编程语言
对一万小时定律理解的第一个误区就是:只要持续练习一万小时,就必定能达到专家水平。这是将练习一万小时只是成为专家的必要条件错误理解成了充分条件所致。想达到专家水平,至少须要努力一万小时;但不是说只要努力一万小时,就必定能成为专家。若是你老是在作低水平的重复,那你就算重复十年,也没法达到专家水平。不要成为一个“一年工做经验用了十年”的人。想成为专家,这一万小时是须要持续不断地进行刻意练习才行的。刻意练习不一样于普通的练习,这个后面再说。ide
第二个误区就是:想精通每个细分领域,分别都须要投入一万小时。好比,你努力了一万小时成为了Android技术专家,那么,想再精通iOS开发须要再多投入一万小时吗?答案是否认的。Android和iOS开发都只是工程师的细分领域,有不少细分的能力是通用的,好比编码能力、设计能力和架构能力。你用一万小时已经达到了Android工程师的专家级别,也说明你已经掌握了做为一名工程师的通用技能,再扩展学习iOS,只需再掌握iOS的差别性技能便可。一样的,你已经精通了Android、iOS或H5前端开发,如今要进阶全栈,也并不是必定要再努力多一万小时才能达到。工具
第三个误区则是:将一万小时理解成了绝对值。一万小时只是个平均值,至于具体到我的须要多少时间,还涉及到不少其余因素,好比你的学习方法是否高效、遇到瓶颈是否很快就能突破等。若是学习的方法不得当、效率低,那须要多付出一倍的时间也属正常。学习
关于一万小时定律,引用《刻意练习》一书对其的描述,其实最重要的就是:在任何一个行业或领域,要想成就一番事业,致力于变成业内的杰出人物,须要付出多年坚苦卓绝的努力。区块链
一万小时定律只是指出了一我的要作到出类拔萃,须要投入大量练习的时间,但应该如何练习,则没有说明。不知道如何正确练习的人,我的能力提高就会很是缓慢,那么就算努力了好几年,依然没法达到精通的程度。知道如何进行正确的练习并持续实践的人,就会不断精进,持续大概一万小时后,终将达到目标,成为卓越之人才。而根据安德斯·艾利克森的研究结果代表,最有效的练习形式就是刻意练习
。
不少人对刻意练习广泛存在一个很大的误区,就是当你的能力已经达到了“可接受”的水平以后,觉得只要再多“练习”几年,就必定会愈来愈出色。就好比说你是个外包程序猿,如今你已经能够高效地独立完成一个外包项目的开发工做了,那你可能以为再多作几个外包项目,就必定会愈来愈优秀。但实际上,稍有经验的人都知道,其实你已经中止进步了。这种“练习”,安德斯·艾利克森将其称为“天真的练习”,即基本上只是反复地作某件事情,并期望只靠那种反复,就能提升表现和水平。
刻意练习首先应该是有目的的练习。有别于上面所说的“天真的练习”,有目的的练习更有目的性,考虑更周全,并且更为专一。它具备四个特色:
1.具备定义明确的特定目标
咱们在前面的文章也已经说过,高效的学习必须是具备目标导向性的,目标应该要很是明确,无论是在哪一个学习阶段,这一点是亘古不变的。有目的的练习,主要也是“积小胜为大胜”“积硅步以至千里”,最终达到长期目标。所以,每一次特定的练习,都应该有一个定义明确的具体目标,要将较大的目标逐步分解成一个个小目标,而后各个击破。具体的分解作法其实能够和我在前一篇文章《002|我是如何学习区块链的》中所作的同样。
关于如何制定目标还有一个SMART原则:
Specific:具体的
Measurable:可衡量的
Attainable:可达到的
Relevant:与其余目标具备相关性的
Time-bound:有时间限制的
2.需保持专一
练习的时候必须保持专一,达到所谓“心流”的状态。关于心流,是这么定义的:“对所作的事情全身心投入的感受,心流产生的时候,会有高度的兴奋感和充实感。”怎样才能进入心流,古典在《超级个体》也有提到三点:清晰的目标、即时反馈、技术与挑战的平衡。这三点也是有目的的练习的特色,就不另外再展开了。
3.包含反馈
反馈最好是即时的,直接告诉你是对仍是错,根据反馈来准确辨别本身在哪些方面还有不足,以及怎么会存在这些不足,这样才知道如何改进。@大头龙 同窗的反馈式学习法之因此高效,主要缘由也在于此。
对于编程来讲,代码执行的结果就是最即时有效的反馈。不过,对于一些认知复杂度更高且更抽象的技能,好比架构设计,反馈则没那么直接了,这时候最好仍是有个导师能够提供指导。毕竟,你本身很难判断所设计的架构是否合理,但优秀的导师则有着清晰的评判标准。
4.须要走出温馨区
前面文章就已经说过,学习的知识,能够分为三个区域:温馨区、学习区和恐慌区。若是是在温馨区练习,你的技能水平是没法得到提升的。要持续不断地进步,最佳的学习方式就是持续不断地在学习区练习。在学习过程当中,当你不断将学习区变成了温馨区,就证实你的确在不断进步中。
另外,走出温馨区后,由于都是作之前没作过的事情,不免会遇到一些瓶颈,很难逾越。这时候,一般的解决方案不是“试着作更难的事情”,而是“试着作不一样的事情”。就是要换个角度、换个方法,从新思考和解决问题。不过,最佳的方式仍是有个导师或教练给你提供指导,而不是靠本身摸索。
还有一点也比较重要,那就是要想办法保持动力。长时间在温馨区外进行大量练习,并非一件愉快的事情,若是不能一直保持动力,则很难坚持。
所以,简单总结,有目的的练习就是:走出你的温馨区,但要以专一的方式制定明确的目标,为达到那些目标制定一个计划,而且想出监测你的进步的方法,还要想办法保持你的动机。
刻意练习在有目的的练习基础上,还多加了三个特色:
1.刻意练习发展的技能,是其余人已经想出怎样提升的技能
已经想出怎样提升的技能,便是已经拥有一整套行之有效的训练方法的技能。并且,对这些技能也应该存在客观的标准来评价卓越的绩效。在刻意练习的过程当中,随着技能的不断提升,相应的训练方法也须要不断升级。
2.刻意练习须要一位已经达到必定水平的导师
优秀的导师本身已经有成功的经验,他不只知道如何才算卓越,并且也知道如何才能达到卓越。若是你能找到一位优秀的导师指导你进行刻意练习,可让你避免走不少弯路,无疑能帮助你加速成长。刚才上面也说了,若是你遇到了瓶颈,有导师提供指导是能帮你突破瓶颈的最佳方式,并且导师也能提供即时的反馈。
对于本专栏来讲,我就是大家的导师。不过,对于工程师领域,很难一直有一位稳定的导师。其实,还有一位不错的导师就是互联网,经过互联网能够找到各类学习资料和工具,还有各类学习社群。
3.刻意练习包括建立更有效的心理表征
心理表征这个概念不太好理解,按照定义:心理表征是一种与咱们大脑正在思考的某个物体、某个观点、某些信息或者其余任何事物相对应的心理结构,或具体或抽象。一个最简单的例子就是视觉形象。例如,一提到蒙娜丽莎,不少人立刻便会在脑海中”看到“那幅著名油画的形象;那个形象就是蒙娜丽莎在他们脑海中的心理表征。
心理表征也能够理解为对一些概念模型的理解。高质量的心理表征就会更详尽、更准确。好比,对MVC/MVP/MVVM等概念模型的理解越深,心理表征则越强。
刻意练习其实最核心的目的就是建立更多更有效的心理表征。
简单来讲,想作到从学会到精通某一领域,就要持续不断地进行刻意练习,努力个三到五年。时间因素虽然也重要,但更重要的仍是练习的过程。要走出你的温馨区,并要以专一的方式制定明确的目标,为达到那些目标制定一个计划,而且想出监测你的进步的方法,还要想办法保持你的动机,并且最好找一个优秀的导师提供指导,遵循一整套行之有效的训练方法。最后要记住,刻意练习最核心的目的是建立更多更有效的心理表征。
快速学习的方法和今日所讲的方法有哪些共通的地方?有哪些差别性?你是如何逐步精进的?今天的方法论具体应该如何实践?