刻意练习:从新手到专家
前几年看过一本书:《刻意练习,如何从新手到大师》,里面提到的关于学习和成长的方法,让我很是受用。最近看完了另一本关于学习技能和个人认知成长的书,其中也提到了刻意练习的方法。
很多同学咨询我,如何提升自己的专业技术能力,我其实很推荐大家看看《刻意练习》这本书,按照文中提到的方法去刻意练习,提升自己的能力。
下面是关于刻意练习最核心的几点方法,我按照自己的理解和实践进行了梳理。
有明确定义的目标
如何理解明确定义的目标呢?以学习一门编程语言为例,我个人认为明确的目标必须满足如下几个特质:
- 目标可以被量化:比如独自用学到的方法实现一个简单功能,而不是照着demo敲一遍;
- 目标以解决问题为导向:比如遇到了某个问题,有一个三方库可以解决,而不是因为有很多三方库,我统统看一遍;
- 目标一定要拆的足够小:一门编程语言,主要包含如下的一些知识点:
- 基本数据类型、语法和语言构造;
- 数组、集合、字符串处理、面向对象或函数式编程特征;
- 异常、断言、日志、调试、错误处理等日常需要掌握的技能;
- 代码的组织机制、模块加载、符号查找机制等;
- 输入输出、文件处理、事件驱动、callback等;
- 序列化和反序列化、进程、线程、并发和异步调用机制;
- 动态编程、反射、元数据处理、编译和解释执行机制;
在定义目标和拆解目标时,目标越具体,颗粒度越细,学习的感知度就会越高。
以上述编程语言的重点知识为例,在定义和拆解学习目标时,将要学习的重点罗列出来,做好目标计划并且坚定执行,庞大的抽象的目标也会在拆解和学习的过程中变的更容易理解和具体。
练习时要极度专注
大家都知道做一件事需要专心投入和耐心,但我们往往会被身边的很多其他信息所打扰。很多时候看似你花了半天时间做一件事,但其实这些时间都是碎片化的,你真正投入练习的时间反而很少。
在一定的时间内,投入100%的精力比长时间的投入70%精力,结果会更好。《番茄工作法》中提到的方法,重点就在于极度的专注投入去练习。
- 选择一个具体的目标,专注投入25分钟,然后休息5分钟,这个时间不可分割;
- 每四个专注时间后休息30分钟,完成一个目标的学习后就将其从学习列表中划掉;
专注的本质,是瞄准关注点,在不受打扰的情况下去发现实践过程中的差异,感知这个过程中每个目标被达成后自我的那种喜悦。
我工作时有个习惯,将每天要做的事情按照优先级排好顺序和预期投入时间,在日历上标注好自己的时间安排,尽可能将沟通和会议安排到一个时间段内。
这样其他时候我会带上耳机,专注做自己该做的事情,这样反而工作效率很高。对应在学习中也是一样的,时间自制,不要被打扰。
能获得有效的反馈
很多同学告诉我,他们看了很多技术书籍,也自己实践了很多,但就是无法在工作中解决问题,很受打击。和他们沟通后才发现,他们的问题不在于智商或者学习方法上的差异,而是学习没有闭环。
如何理解闭环呢,如果只是将书本或者视频中的知识自己重复几次,但没有去真正的尝试解决问题,没有获得正向的好的结果,其实这只是有进没出的低效努力罢了。
学习的本质是探索自己的未知区域,是利用学到的知识去解决已知的问题,在这个过程中是需要一种自我反馈机制来识别出自己在哪些方面存在不足,为什么不足,然后去加以改进。
反馈很重要,但正向的有效的反馈更重要。下面是几点我个人认为比较有效的反馈方式:
- 尝试利用学到的知识去解决问题;
- 尝试将学习的收获和思考过程记录下来并输出;
- 尝试将自己学到的知识以及对其的理解分享给他人;
解决问题是真正的练习实践,记录输出是温习和整理的过程,给他人分享则是重构自己知识体系的必经之路。
为什么工作中评价一个人的能力,是通过他解决问题和拿结果的能力?
因为解决问题就是在考验你的学习能力和实践能力,好的结果是一种正向的反馈,这种反馈才能促进一个人的快速成长。
在拉伸区进行练习
不知道大家有没有跑步的习惯,有过这种经历的同学其实对于拉伸区练习应该都有体会。
如果很久没运动,突然让你跑十公里,并且对配速有一定要求,那大多数人是无法按目标完成的,因为这是一个从低水平向高水平直接跨越的过程。
直接跨越并不是说一定无法达成,而是这个过程很痛苦,难度也很高,太难的挑战容易让人感觉到挫败感,进而放弃。正确的方式则是先设定一个稍微有点挑战但是努努力就可以完成的目标。
比如刚开始的目标是25分钟内完成3公里,这个目标对于一个体质正常的成年人来说并不是太难的目标。完成后可以逐步加大运动量,觉得过程太过困难就适当下调目标,直至可以顺利过渡到更高的目标。
但也不能一味重复低水平的练习,因为重复掌握的事情是没有太多正向反馈的,反而会陷入舒适区的陷阱。
为什么很多公司现行的很多所谓OKR目标管理法,也会提倡在设定目标时制定一个需要稍作努力才能完成的目标,因为这样,可以不断提升员工的能力,也能激发学习和解决问题的心态,最后拿到一个比较好的结果。
对技术同学来说,想要提升自己的技术能力,基本都需要遵循这个输入和输出的过程。选择合适的目标,长时间的专注练习,练习的过程中不断去解决问题,获得反馈,不断提升学习的难度,最后才能提升自己的能力。