认知资源
你是否有想认真掌握一门新技能,但一拿起各类技术书籍、文档,很快就放弃的经历?你又是否在做一些让别人“选择蛋糕”的事情?比如让别人阅读你自己编写的项目文档。
当你想要快速掌握一项技能的时候,你需要学会管理自己的认知资源。
学习方法
将你现在的技能分为三类:
- A - 还没有掌握,但需要掌握的
- B - 经过一定努力可以掌握的
- C - 已经掌握的
我们的目标其实是如何将AB的技能快速移动到C。在这个过程中我们会遇到两类典型问题:
- 没有进步
- 耗时太久
解决”没有进步”
第一类问题的根本原因在于你的认知资源不足以支撑技能的学习需求。我们不能要求自己有无限的认知资源,在资源极度有限的情况下,仍有两种解决策略:
第一种,将更多的需要掌握的技能放在A,将精力集中于少量的B类技能。但在日常工作中,需要掌握哪些技能,解决哪些问题,都不是自己可以安排的。对此,我们还有第二种策略。
第二种策略,就是将B中的技能分解为更小的粒度。这种策略,在有限的认知资源的情况下效果等同于一个需要处理多任务并发的CPU,上面运行的程序都采用了更加细粒度的锁机制,带来了程序性能的提升。
那么如何界定分解之后的技能足够“细”?Kathy给出了一个她的评判标准:从完全不会到十分熟练,最多经过3次练习,每次45-90分钟。
能满足上面的标准就可以认为分解到了合理的粒度。
解决”耗时太久”
程序员不但要学习很多技能,还需要快速学习。所以从A开始,我们最好能够绕过B直接到C。
关键点:高质量的例子
通过高质量的例子进行学习和模仿,有点类似机器学习一样,不断的进化。
当要学习某样特殊技术的时候,你是找官方的、正式的、长而无味的文档,还是去找一个精悍的例子?
当你能找到一个精确的示例来演示如何使用这样技术的时候,你几乎可以“瞬间”掌握这项技术。
你需要这些示例来让大脑自动地,潜意识地识别其中的模式。但现在的问题是,所有技术里又臭又长的文档很多,但短小精悍的示例很少。
所以是否可以利用社区的力量,将这些文档转换成一系列高质量的示例库呢?
Reference
https://www.youtube.com/watch?v=FKTxC9pl-WM
https://decodezp.github.io/2018/12/12/eng-talk1-fast-learn/#%E5%85%B3%E9%94%AE%E7%9A%84%E7%BC%BA%E5%A4%B1%E2%80%94%E2%80%94%E9%AB%98%E8%B4%A8%E9%87%8F%E7%9A%84%E4%BE%8B%E5%AD%90