学习「怎样学习」
对於软件工程师来说,是至关重要的。
除了技术的持续演进以外,在面试时,没有一两个技能可以展示,还会被怀疑是不是能力不够。
现在的职场 :
优秀的工程师具备多个「 技能 」 已是常态。
学习全新的技术时,时常感到 :
有时甚至出现乾脆放弃的念头
不是是「意志力」的问题,而是「学习方法」的问题
软件设计有前人的经验可以借监,软件工程师学习新技能的方法,也是有经验可循。
作者自创的「十步学习法」,它有非常好的参考价值,不一定要完全照它的方法实行
但它的思维与逻辑,是合理且有系统的。可以依据个人的习惯,精简与改良。
除了,作者提供的「十步学习法」,也分享经过我调整後,个人正在使用的程序技术学习方案。
这个方案会需要三种技术支援:
在说明每一步骤的概念时,会使用我的作法,当作范例。
同样的,也不需要完全依照我的方法实行,这只是个抛砖引玉,
也许可以激发你 创建最符合你习惯的学习框架。
从字面上来理解,就是将学习这个动作,拆解成十个步骤
具体来说,分成两大部分:
是因为「自我学习」,并不像是学校或补习班,有完整的教材大纲,可以由浅入深的逐步进展,
为了避免教材的内容,一下子太过深入,导致出现挫折感。
「研究」就是在设计「教材」
完全依照个人
规划一个最符合自己的课程内容
在第二部分「学习」时
才能从「入门到精通」,而不是「入门到放弃」
对於,要学习的知识领域,进行一个「概略」的了解。
不需要很清楚的知道,背後的理论 与 实作的方法。
只需要知道 「有这个东西」,大脑中先有个模糊的形状,就是这一步骤要的目标。
未知的未知:
先去知道自己还有什麽不知道,才会知道自己需要知道什麽。
我的作法
我通常会把搜寻到,看起来可能有价值的网站,记录在分类的资料夹内
编号 000-2 结尾为 ref 的 Markdown 文件
ref 代表的是 reference 参考资料
当下次需要使用时 就可以打开档案 快速访问
第一步的延伸,「概略」了解了整个知识领域的内容後,再来就是要界定学习的「范围」。
因为,一个主题的背後,通常还会有更多延伸的子项目,如果打算全部学下来
除了很困难以外 在实务上也没有必要
「快速」学习的原因
80 / 20 法则 :
只先学习最重要的 20 %
就能完成 80 % 要达到的目标
速度
教材少了 80% 速度也会快了 80 % (学习不要从封面到封底)
我的作法
将先前查找资料时,发现看起来是重要的 20 % 关键字词,
记录在 编号 000-3 结尾为 data 的 Markdown 文件 :
data 代表的就是资料
以供後续资料查找时可以快速浏览。
会去学习新的知识或者新的技术,一定是有一个想要达到的目标
这个最终目标,一定还能再拆解成各个小目标:
里程碑的意义
人类是一种...
需要反馈,才能继续的生物
如果,遥遥无期 . . .
没有反馈,容易放弃
我的作法
我会将我要达到的目标,纪录在 编号 000-5 结尾为 task 的 Markdown 文件
task 代表的就是任务
我会用多选框的语法,来追踪我目前任务的达成率。
类似於第一步
我的作法
通常在官方网站或者技术教程网站,可以找到想要的资源。
Example:
印度人架设的技术教程网站,里面涵盖的技术资源非常广泛。
另外一个最常见的,就是买一本有附范例的技术书籍
书籍的选购,也是依据第一步的资讯搜集,以及第二步与第三步的分类所决定的。
安排教材资源的学习「顺序」
「顺序」
不一定要依照网站的大纲或者是书籍的目录,
可以互相参考,根据需求自行决定。目的是为了将各个章节,碎片化的知识有系统地组合起来。
支撑
学习计画也将会是「学习」部分的重要支撑,每当学习到有些疲累,快要撑不下去的时候。
看到当初花了不少心血制定的计画,「不甘心」的情绪以及完成计画後可以达成的「未来」,多少又可以带来点动力。
我的作法
我会将我的学习计画,纪录在 编号 000-1 结尾为 list 的 Markdown 文件
list 代表的就是「待办清单」
同样使用多选框的语法,追踪目前计画的达成率。
第四步的延伸,为了更符合第五步的学习计画,要再更精简。
删除那些已经有重复内容的资源,删除的标准就是两者相比较 :
我的作法
有时候会省略,因为第四步骤时,有可能就已经完成了。
「研究」对於一个新的知识领域来说,只会做一次,做完之後,基本上不会再做更大的改动。
第二部分的「学习」: 第七步到第十步
「第二部分」是一个循环,每一个章节的内容,都会套用这个流程,进行学习。
而且可能不仅进行一次循环,对於特别重要的章节 -> 循环往复
不断的「迭代」
直到,融会贯通完全掌握,能够教导别人为止。
学习中,有两种容易犯的错误 :
为了在这两者之间取得平衡,当掌握了最小可以动手操作的知识,就应该马上进行实际操作。
如果先消化完所知的知识,然後再进行操作,
有些不熟悉的知识,会忘记,然後又回头察看。
如此情况
不如就像玩新的游戏时一样,先稍微阅读下说明书,然後就开始。
当遇到不懂时再回来察看,如此就能在两者之间达到平衡。
我的作法
我会在 gitlab 的站台上,建立一个全新的专案,以 SE 结尾命名
SE 代表的是 Sample Example
以此类推
所有初期,类似於 Hello World 的这种基本的语法测试,都会涵盖在 SE 系列的专案中。
非常相似於第七步
核心概念
在实作中学习
实作时,无须你刻意寻找,很多问题就会自然而然地从脑海中浮现。这些问题会引导你走向正确的方向。
当回头寻找问题的答案时,除了解决问题本身以外,还会比先看教材在实作的流程,理解的更加深入。
我的作法
我会将我发现的问题,纪录在 编号 000-4 结尾为 issue 的 Markdown 文件
issue 代表的就是「议题」
解决第八步时,遇到的问题,方法可以是查资料、看影片、问别人...各种方法都可以。
目的是在你界定的范围内,没有模糊且不确定的地方。
我的作法
我的专案名称,就会扩增到:
有了这些「工具专案」,要开发新的应用程序时,就不会是从头开始。
甚至一些简单的功能,使用复制贴上大法,就可以直接搞定。
一般的学习,通常到了第九步骤,就会认为自己已经学会了。
但要检验是否真的学会,最好的方法:
将所学到的知识教给别人。
唯有此时,才能发现有些地方:
你以为你懂,但其实还没摸透。
而且,要将理解到的知识,组织成别人能够听懂的语言:
一定是对於这个知识,有了更深刻的理解才能办到。
我的作法
除了偶尔 技术简报 以外,还开始做了 Youtube 影片。
Gamma Ray 软件工作室
Youtube 影片 确实也是他书中的方案之一
其他的还有
这些方式,除了能够收到反馈,也能互惠互利,一起成长。
上述的「十步学习法」,是一种「快速入门」学习新技能的方法,但并不是一种「快速精通」新技能的方法。
80 / 20 法则
剩下 20% 进阶的技术,需要去了解 80% 其他的知识。
想要「快速精通」
唯有走得「稳」 才能走得「快」
我还有另外一种理解 :
「学习是一种类比行为」
不同种类的事物做到极致,背後的道理都是相通的
例如
要学习的东西肯定是越来越多,如果能够驾轻就熟的使用这项技能,那麽面对未来的挑战 肯定是无所畏惧。
因为 「不会就学」,而且除了「学」 你还知道「怎麽学」!
信念决定思想,思想决定言语,言语决定行动,
行动决定习惯,习惯决定价值,价值决定命运。
-- 圣雄甘地
>>: Electron/Nginx/NodeJS/MongoDB开发HIS之架构概述
前情提要 除结尾倒数两篇 (゚∀゚) 来看看能不能在今天一次性写完w 现在时间 10/11 aka....
在做完了程序之後,就要来测试一下是否正常运作对吧。不过当你做完了数十个 API 之後,我相信你一定不...
为什麽会参加铁人赛 因为工作关系需要从零开始接触php,并学习其框架laravel,当时主管问我有没...
前言 前面有花几篇介绍了,原型链以及使用建构式、以及使用 Object.create() 建立多层原...
今天要来讲的是,读取送出 Request 後拿回来的 Response。 读取 Response 以...