学习
- 通过动手实践和教会他人,我们能学得更好
- 教育的首要目标,并不在于『知』而在于『行』
体系背后的逻辑
为了掌握一门技术,需要了解以下三个要点:
- 如何开始 —— 要想开始使用自己所学的,我需要掌握哪些基本知识
- 学科范围 —— 我现在学的东西有多宏大?在开始阶段,我不需要了解每个细节,但是如果我能对该学科的轮廓有大致的了解,那么将来我就能发现更多细节
- 基础知识 —— 不止在开始阶段,要想使用一项特定的技术,我需要了解基本的用户案例和最常见的问题,也需要知道自己学的哪 20% 就能满足 80% 的日常应用。
0.十步学习法
我觉得十步学习法的核心就是“全局观”与“集中精力学习一个问题”。
想起我最近学习rails的时候,二话不说捧着官方的guide就开始读,结果整个active record部分读完之后还没敲代码实践,结果过了几天都忘记的差不多了,尤其是一些很少用的细节,更是一点印象也没有,相当于没读。
下面以学习vue为例来说明十步学习法:
1.了解全局
- 通过Google了解到vue大致是干嘛的(mvvm框架,数据绑定,但是比angular更加简单轻量)
- 它提供了组件化(比angular要优雅)
- 基于getter和setter的方式,而不是脏检查的方式来处理绑定,效率更高(不理解官方说的getter和setter与数据绑定的关系也没关系,后面会更加深入学习)
目的是为了让我们不要打开书就从第一页开始翻到最后一页,不要只见树木,不见森林。了解自己将要学习的主题的全局。这个主题在宏观上是什么样?目的不是要掌握改主题,只是对这一主题的相关内容有一个全局性的了解。可使用网络搜索完成大部分。一本某主题的书,可只读一下介绍性章节,粗略浏览内容,不要在这一步花费太多时间。
2.确定范围
基于vue的优点,确定学习范围是:
- 组件化重点学习,组件如何定义,组件之间如何通信
- 数据绑定语法
先不学习的范围:
- 指令
- 过滤器
- vuex
- webpack以及各种loader
确定学习范围要把握住原则:
- 二八原则,vue的组件化和数据绑定足以让我应付大多数需求了。
- 对于不学习的东西要了解他是干嘛的,以后如果用到的时候知道自己要学习什么,比如这里我知道封装DOM操作的时候用指令,做单向数据流管理的时候使用vuex,做热加载,es6转义,局部css的时候可以使用webpack。
- 根据自身的需求,决定学习的重点和学习的范围,同时也需要阐述自己的学习理由来帮助自己界定学习的范围。
- 保持专注:结合从第一步中获得的信息,明确自己的学习范围,尽可能的保持专注
- 学习过程易犯错误:试图解决太大的问题而不堪重负。学习的范围务必大小适当,既能符合学习理由,有能符合自己的时间限制。
3.定义目标
目标要具体,没有二义性。
甚至可以根据目标推测出第二步中的学习范围。
任务描述:切忌含糊不清,要列出某一特定结果,或为实现目标自己能够做到的事情。
成功标准:取决于从学习经历中获得什么,确保能在学习结束后评估是否达成目标
这里我的目标就是设计一个分页表单(类似于金数据那样的)。(什么输出helloworld,列表操作,文件读写…),我要写出一个多线程的网络服务器(具体有些什么功能)
4.寻找资源
收集与所选主题相关的多样性资源( 不局限于书籍 ),而非只读一本关于这一主题的书, 此时无需考虑资源质量;
最好的方法:打开电脑开始搜索与主题相关的信息;
重点:找到各种不同的资源,单一来源的信息易产生偏见。尽可能的尝试多种渠道和方式获取尽可能多的和主题相关资源。
信息来源:
- 豆瓣、Google等、亚马逊、当当
- 图书
- 博客文章
- 在线视频
- 专家,或对你所想学习内容已经熟知的人
- 播客
- 教程
- 源代码
- 示例项目
- 在线文档
- 身边的人
5.创建计划
通读第四部找出的资源的目录结构,然后根据自己定义的目标拟定一个学习计划,我这里是:
- 跑起helloword
- 完成一个文本选择的数据绑定
- 把输入框和labelName,hintText封装成一个组件
- 添加其他组件和翻页
要点:
- 找出最短时间内从A到Z的正确路径,并到达沿途的重要地标。
- 观察别人是如何教你感兴趣的主题的。例如:可以翻看在上一步找来的图书的目录,如果几位不同的作者都把内容都分解为相同的模块和顺序,那就遵循这样的方法制订个人学习计划。
- 并不意味着只要复制一本书的目录就可以了,有的书的内容超出你的需求,还有的书结构很有问题。要综合考虑你收集来的资料来组织这些内容从而定制出符合你的学习计划。
6.筛选资源
从多本书和博客中挑选出适合自己计划的章节。
学习编程切记一本书走到黑,要组合不同的书的章节,博客来总结出观点,这样更加全面。
学习vue很简单,只需要看官方讲双向绑定和组件化的章节的document就好啦。
要点:
- 覆盖计划范围:把收集的全部资源浏览一遍,找出哪些内容能够覆盖学习计划
- 资源质量:看看评论,试着找出品质最高的资源
- 时间成本:将资源进行进一步的精简和压缩,降低我们的时间成本,提高学习的效率。
- 实际演练:挑选想要了解的一项课题,实际演练上述六个步骤,可从规模较小的课题开始,让自己习惯这一过程。
7.第7步到第10步:循环往复
目标:通过“学习—实践—掌握—教授”(LDLT)的方式真正领会知识。
注意前六步只做一次,后面四部对于每个学习模块都分别走一次
7.开始学习,浅尝辄止
这一步是为了避免在知之不多的情况下盲目开始,和行动之前准备太多(文档的细节都看完了)。需要我们大致过一遍文档,觉得看不懂的就先标注下,下面的阶段来解决。这里我们就是大致浏览下vue的实例和数据绑定语法部分的章节。
目标:获得足够多的主题相关信息,能让你开始学习,并在下一步中动手操作。
关键:过犹不及。
切忌犯两类错误:
- 第一类:在知之不多的情况下盲目开始,即行动太快;
- 第二类:在行动之前准备过多,即行动太晚。
要点:
- 要在二者之间取得平衡,掌握的知识要恰到好处,足以能让你开始学习,但又不会多到让你无力探索。这样学习效果最佳。
- 先快速的学习基础知识,让自己尽快的能进行实际的操作。
- 要专注于掌握所需的、能在下一步动手操作的最小量的知识:浏览参考材料,或每章摘要,或各种简介
8.动手操作,边玩边学
这一步是实际去做东西了,也就是我们创建的计划中的,比如实现数据框的双向绑定,写一个组件之类的,可能也会遇到问题,那么就把自己这个问题详细记录下来,一定说明白自己的思考过程,是到哪里卡壳了,也许在描述这个问题的时候自己就把问题搞明白了。
要点:
- 错误的做法:试图通过读书或观看视频来掌握某个主题;提前吸收很多信息,再付诸实践。
- 问题:读书或看视频时,并不知道哪些是重点,只是因循他人设计好的学习路径去思考问题。
- 前提:无需提前了解全部内容,在掌握操作动手最小量的知识的情况下
- 首要事情:亲自操作和亲身体验,通过探索和实践进行学习。
- 记录问题:操作过程中大脑自然地产生各种问题:它如何工作的?如果这么做会发生什么?该如何解决这个问题?
- 带领方向:通过自己的实践操作,通过了解和解决在操作中产生的问题引导你走向真正重要的方向;当回过头寻找问题的答案
- 记得更多:不只是这些问题等到解答,而且记得的东西比学习的东西要多得多,因为所学到的都是对你很重要的东西
- 先记下来:把那些暂时还没有答案的问题记录下来,在下一步中就会有机会找出这些问题的答案。
9.全面掌握,学以致用
学习一些更加细节或者难度大的东西,比如组件的嵌套啊,响应式组件的原理呀等,看不懂也没关系,暂时放下,知识是网状的,很有可能你学习了其他知识之后这边的疑惑就豁然开朗了。就比如我之前对于vue的响应式原理看官方的文档是不太懂的,直到后来我研究了mvvm框架的实现机制,现在不仅对于vue的响应式原理很清楚,而且对他的自定义组件的实现方式之类的也大致知道是如何来实现的。
要点:
- 目标:让你找回好奇心驱动的学习;
- 方式:有效利用先前收集到的所有资料,进行深入学习:
- 步骤:
- 为上一步产生的问题寻求答案,阅读文字、观看视频、与他人交流都是必要手段。这能让你沉浸在学习材料中,尽可能地汲取知识;
- 不要害怕回头再去操作,付出更多,因为这不仅能让你找到问题的答案,也能让你学到新东西;
- 给自己足够多的时间深入理解主题,阅读、实验、观察、操作均可。
- 注意:没必要把收集的所有资料全部仔细看一遍,只需阅读或观看与当前所学相关部分;不要忘了第3步中定义的成功标准,把学习内容与最终目标关联。这样所掌握的内容都将以某种方式推动你向自己的终极目标前进。
10.乐为人师,融会贯通
“你告诉我的,我都忘了。你看过的,我都记得。我教给了你,我就一定能学会。”
这一步中要求我们对所学的内容做个总结,讲给不懂的人,或者写博客。这一步中逼着我们去对知识深挖,而不仅仅是停留在表面。在这一步中很多你自己以为明白的知识点实际上是没明白的。
并且还有一个好处,在总结的时候我们会与大脑中已经有的知识做个碰撞,激发出一些新的东西,从而进一步扩大知识网,可以融会贯通。
要点:
- 想深入地掌握一门学问,做到融会贯通,必须要做到“好为人师”;
- 走出舒适区,将学到的知识教给别人:确定是否掌握,查缺补漏。
- 要切实剖析并理解自己所学的知识,将其内化到自己的思想;
- 用能够让他人理解的方式精心组织这些信息;
- 重点:花时间将学到的东西从大脑中提取出来,以别人能够理解的方式组织起来。
- 可以有多种方式将自己所学教给他人,可以写博客,这是大多数人的选择,也可以制作视频,还可以与自己的好友探讨。
- 经过此过程,会发现很多自以为明白了的知识点并没有摸透,此时将没太明白的东西联系起来,并简化大脑中已有信息,将其浓缩并经常复习。
10.最后的思考
“十步学习法”不能让你瞬间变得聪明伶俐,但可将学习过程更为结构化,而非漫无目的;通过利用人天生的好奇心来帮助吸收更多的知识,而大多数人正是在好奇心的驱使下才学到很多本领的。
如果此方法中有些步骤对你不起作用,或者你觉得某些形式完全没有必要,完全可以弃之不理。步骤本身并不重要,这一学习过程背后的理念才是真正重要的。重点是你要开发出一套适合自己的自学体系,一套可以持续不断地加以运用而获得丰硕成果的方法体系。 。