入学手册知识汇总
条评论课程如何运作
大家好,这里是全栈营学习的主课时间表:
课前作业期(3月8日–4月2日) 我们会在直播室举办课前直播(回放的视频第二天会发布在”往期直播”里) 时间:3月22日晚八点
首先要完成: Mac电脑的购置; 科学上网的配置;
4月3日前需要完成: 第一课:环境建制 第二课:初级练习 第三课:rails101(三遍) 建议每周留出20小时用在全栈营的学习上。
学习资源: 请尽快熟悉和使用以下资源
学习中心:进入课程学习的入口、显示重要的通知
帮助文档:新手入门与知识点解说
交流论坛:线上学习交流园地
Slack:提问助教的好地方(如何提问)
Meetup:同学们定期聚会,共同成长
Logdown:记录成长历程的自留地
VIP微信群:即时和同学交流的平台
正式开学 主课程(4月–6月):
第一阶段: 初级项目实战:4月3日-4月26日; 招聘网站比赛:4月末到5月初;
第二阶段: 中级项目实战:5月初到6月初; 商店网站比赛:5月末到6月中旬。 求职辅导:6月 注:以上时间表可能会按实际情况进行微调
每周如何进行
每周一:课程上新,一部分的录像、一部份的文字教程。
每周四:Xdite老师「编程豆知识」答疑直播或录像,以及助教示范写出功能。
其余时间 14:00 - 24:00 助教会在 Slack / 论坛上解答大家编程的疑惑。
尽可能持续参加当地的meetup聚会,和同学们一起跟上进度。
请尽量跟着这个课程的进度走,也不建议同时学第二门技术,否则各位同学将会严重的感觉时间不够用。
编程比赛 为了让大家在学习的过程当中,能够马上学以致用。我们将在三个月的课程当中穿插编程比赛,让大家体会编程以及竞赛的乐趣。 招聘网站魔改 PK 大会。 商店网站创意 PK 大会。
大脑记忆运作原理
为什么要采纳这样的学习方法呢? 一般人学习之所以低效,是因为不了解自己的大脑怎么运作。一旦你开始了解自己的大脑是怎么运作的,很快的,你就会发现学习是有套路的,而且你可以利用这套方法,大幅拉升自己的学习初速度。 在这里我先告诉各位五个结论:
大脑并不擅长思考,而且大脑的思考是很缓慢的
多数的思考,并不是真的思考,而是调用过去记忆所组成的结果
人是利用已知的事务理解新的事物,但「理解」其实是「记忆」
没有重复的练习,不可能精通任何脑力活
题海战术以及填鸭教育,有时是必须的
1. 大脑并不善于思考 在这社会上我们最常嘲讽的一个现象:「大多数人是不用脑子思考的」。其实这真是事实! 你仔细想想,其实大脑真是用来思考的吗?如果你叫大脑随便做一则演算,其实大脑的演算,往往是比我们现在所发明的计算机来说,效率是极其低的。做个 7 8 的数学还行,但要是改个 177288 的快速演算。就瞬间就当机了。
蜡烛、火柴、图钉 在这里,我举一个「大脑其实不善于思考」的例子。 一个空屋子里有一支蜡烛,一些火柴,和一盒图钉。目标是让点燃的蜡烛离地五英尺高,你已经尝试把蜡烛底部沾上蜡液,但还是沾不到墙上,怎样才不用手扶,让点燃的蜡烛离地五英尺高? 这一个题目,正常一般人在看到题目后,很少能在 20 分钟内给出解决答案。 但是如果你把这个题目「具象化」,也就是真的生出这些设备,放在眼前。 你就会发现这道题目的答案其实并不难。你只要把图钉倒出来,把盒子用图钉钉在墙壁上,再把蜡烛黏在盒子里,就完成了这个任务。
大脑的「思考」特性 这个例子解释了「思考」的几个特性。
首先,大脑的思考是很缓慢的。
接着,思考是很费力的。大脑很难凭空想像出这个场景并运算出解答。甚至可能「完全答不出来」。
但是如果把大脑接上视觉系统与触觉系统。因为视觉系统与触觉系统进行了可靠的回传,大脑实质上是调用了其他地区可用的资源做了运算。就能迅速得出答案。 那么,既然思考那么费力。我们平时是怎么样不费工夫的做出日常生活中的各样决策?
习惯 答案是:习惯。 「习惯」就是「我们做过某件事的记忆回路」,大脑调用「过去的记忆」,让身体自动做出判断。 所以,在这里,我们要引出今天要介绍的第二条认知学事实: 大部分人做的决策,其实真不是基于大脑所做的思考,他们是「记忆」组成的结果
2. 多数的思考,并不是真的思考,而是调用过去记忆所组成的结果 大脑的运作原理是这样的: 接收到环境刺激 => 然后把决策放到工作记忆上=> 熟练之后烧到长期记忆中(事实性知识、过程性知识)。
工作记忆就是我们当前正在意识、思考的「工作区域」。
(以计算机比喻,就是电脑的内存。容量小,资料存在时间短,重开机就不见了。)
长期记忆就是我们长久以来储存的事实性知识、经验。
(以计算机比喻,就是电脑的硬盘。容量大,资料存在时间长,可以长期复用。) 而长期以来,我们日常遇到的大量决策,事实上是调用了长期记忆(经验以及不变的科学事实),自动完成。 而所谓的解题与思考,是复用了短期记忆以及长期记忆而成。 比如说以 177 * 288 这个例子
7 * 8 是长期记忆,是我们小时候背的九九乘法。
接下来我们要算 170 * 280。接下来 ….
好了。你知道这有多难了。 人类几乎很难凭空展开这个算式。 这是因为人类的大脑工作记忆中只能暂时存 7 ± 2 个结果(对人类无意义的结果)。人类事实上很少在思考,更多的是调用「记忆」在做决策。
3. 人是利用已知的事务理解新的事物,但「理解」其实是「记忆」 人是利用已知的事务理解新的事物,但「理解」其实是「记忆」。 「理解」其实不是一个调用大脑思考的过程,而是一个匹配「记忆」的过程。 很多行业为什么不喜欢招小白,事实上就是因为小白经验过少,缺乏太多相关记忆,可以直接匹配学习。 又或者是为什么一般人难以上手编程,而且对于学习编程,感受到痛苦。 这事实上就是因为「编程」里面的知识,跟过往几乎所有的生活环境运作原理几乎是不匹配的,所以造成「无法理解」,而大量调用大脑资源匹配、思考,结果却一无所返的情况下,造成意志力崩溃。 很多人学习编程事实上是被一堆所谓枯燥的「基础知识」,所吓跑的。 老手觉得「基础知识」是很重要的,但「基础知识」恰恰对许多新手来说,是「无法理解的」。
编程书反例:Git 如何运作 比如说,我引述一本所谓程序员界的 Git 初学指南,来谈谈: 「Git 如何运作」。 『那么,简单地说,Git是一个什么样的系统?这一章节是非常重要的。若读者了解Git的本质以及运作的基础,那么使用起来就会很轻松且有效率。在学习之前,试着忘记以前所知道的其它版本控制系统,如:Subversion 及 Perforce。这将会帮助读者使用此工具时发生不必要的误会。 Git储存资料及运作它们的方式远异于其它系统,即使它们的使用者介面是很相似的。了解这些差异会帮助读者更准确的使用此工具。 Git与其它版本控制系统(包含Subversion以及与它相关的)的差别是如何处理资料的方式。一般来说,大部份其它系统记录资讯是一连串档案更动的内容。这些系统(CVS、Subversion、Perforce、Bazaar等等)储存一组基本的档案以及对应这些档案随时间递增的更动资料。 Git并不以此种方式储存资料。而是将其视为小型档案系统的一组快照(Snapshot)。每一次读者提交更新时、或者储存目前专案的状态到Git时。基本上它为当时的资料做一组快照并记录参考到该快照的参考点。为了讲求效率,只要档案没有变更,Git不会再度储存该档案,而是记录到前一次的相同档案的连结。 Git的工作方式如图1-5所示。』 「若读者了解Git的本质以及运作的基础,那么使用起来就会很轻松且有效率」,听起来是多么讽刺啊。 绝大多数需要学 Git 如何入门的人,是一无所知的小白。 Git / Subversion / Snapshot / 参考点,这几个名词,对一般人来说是无意义的。不只是一般人,甚至是一辈子都在使用 FTP 部署代码的的程序员来说,他也不了解你在说什么。
正确比喻:时光机 所以呢,一般要怎么让「读者了解Git的本质以及运作的基础,使用起来很轻松且有效率」。
1. 告诉他 Git 是个时光机
2. 你可以用一套图形化的工具操作这个时光机,任意回到希望回朔的时间点。之后你可以在任意时刻检查你之前所写的代码,并检查变化。不仅是开发团队,甚至是很多写作团队,也开始利用这套工具实行协作。
3. 因为绝大多数的人看过小叮当或者是科幻电影,所以他能够理解时光机是什么,也知道时光机能带来的好处。进而愿意接触以及使用这个工具增进工作效率。甚至可能在听完我讲这个例子时,就已经对 Git 这套工具产生兴趣,实际去使用了。 而等到使用者理解了Git 可以帮他做什么之后,且想控制更多细节时,就会愿意使用命令列,操作更高级的命令与效果,进而去研究Git 的底层运作,学到更多奇技淫巧,从而「使用起来更轻松且有效率」。 所以之前这份 git 入门教程到底是写给谁看的?我只能这样说,我认为这不是写给入门者看的,即便这章叫做「Git 基础要点」。这就是一般编程书的坑。 我们话题扯得有点远了。总之呢?你得记住这样一个结论: 人类只能利用已知的事物理解新的事物 而这是许多教育界圣经,如教育七律,反覆提及的教学要点。 人类的「理解」,实质上是一道不断在旧有记忆上不断叠加累积的过程。
4. 没有重复的练习,不可能精通任何脑力活 如果一个人,带球的同时还要思考踢球的角度和速度,不太可能成为一个优秀的足球选手。像这样的低层次过程必须不假思索,才能给更高层次的过程,比如战术策略提供足够空间。 正因为我们的工作记忆之狭小,如果你将大量需要调用的资源放在工作记忆,那么大脑就会瞬间寸步难行。就如同这个足球选手来说,如果他要一边思考踢球角度和速度,那么下场不但不只是「无法射门」,甚至可能是「跌倒」。多半优秀的足球选手进行射门,往往是凭「直觉」判断,「感觉」角度对了,场上有空档,直接踢出一个漂亮弧度的球,射门成功。 这个直觉,往往就是 深焊在肌肉里面的长期记忆。 而一般人所谓的学习,事实上是在将新东西存在短期记忆中,进行「理解」的连结。再透过反覆的练习,往下放置在长期记忆中。
5. 题海战术以及填鸭教育,有时是必须的 在过去我们的应试教育中,因为我们大量的被灌输填鸭教育以及题海,以至于我们痛恨「题海战术」以及「填鸭教育」。所以,往往对于「肌肉的记忆」练习术这件事十分不苟同。 甚至是,因为我们对于「题海战术」过于痛恨,甚至得到了相反的结论:「我们未来教育学生,必须使用理解型教育」这个甚至看似正确,但事实上是谬误的决策。 注意啊。在前面我讲了「理解」实际上是「记忆」的相关连结。 如果你的大脑,从来未曾存在相关记忆,那么又如何「理解」。又比如说,你如何让幼儿理解 7 * 8 = 56;中学生理解 e = mc²;想学编程的大学生,理解 git 的 repositroy 机制。 答案是:你不能。 因为事实上他们就没有这样的相关记忆可以去做链结。所以你只能让他们硬背,直接先锁在记忆区里面。等待将来更有意义的相关材料,进一步的将这些硬背的东西,锁到更深的地方。
6. 右脑模式开始探索整体框架 如果「编程」是你这辈子从未碰触过的学问,那么按照大脑最容易入门的方式,其实就是: 不要强求自己用眼睛,甚至不用大脑去理解,把左脑模式关掉 尽量的摸索一个外围框架,在大脑深处种下记忆点。 (比如说你只要知道「输入什么」,然后可以「得到若干输出」就好了。(如果你连什么是有效的外围框架都不知道。不如直接付费去上新手班,从教练身上学一个一个外围高频套路,可以少掉很多坑) 透过肌肉的练习,把这些记忆点种到肌肉里面。 (打错字不再犯,无法理解但常用的都先背起来) 形成了一个防摔记忆层后,再用左脑去分析自己未来想知道更多的东西 一层一层的用「已知解释已知」。 当然,在这当中要保持「开心」、「有成就感」,不妨完成一个小作品后,就扔上网给那些也不懂编程的朋友看一下,得到他们的赞美。唯有充满成就感的学习,才是初学状态最重要的。有成就感的进步,才容易形成习惯回路。 这一路写下来,相信你开始可以理解,为什么社会上「政治正确」的这些「常识」:
学习编程必须要有天赋
必须在学习编程中「看」懂每一个步骤
学习必须要扎实,要从技术基础原理学起
学习当中禁止使用捷径,如复制代码 是有多么毒的吧!如果按照社会上这套「常识思路」,「编程初学者从入门到放弃」根本就是 99% 可以预期的结果!
破解学习金字塔
「学习金字塔」是美国著名的学习专家,爱德加·戴尔1946年首先发现并提出的理论。 他指出其实大多数课堂上我们最熟悉的学习方法,其实都是属于「被动学习」。 这种学习方式,在经过学习 24 小时候的平均保持率,却是最低的。 不管是「听讲」、「阅读」、「声音」、「影片」的残存记忆效果都是极差的。 所以我们干脆也不打算在线上采取「大量影片」示范的这样方式。
教学格式 传统的 MOOC 都有几个典型的大坑,就是:
以为影片示范教学编程是最有效的。
不给学生「复制」示范代码与步骤,以防盗版。
学生花了许多时间敲了代码以后,有许多错字。又不知道如何 Debug。
影片太消耗学习者的注意力,专心的看了七个影片之后睡着,从此不想再打开。 结果迅速的 从入门到放弃。 其实不只各位同学有这样的困扰,如我这样的程式语言精熟者,在学习其他语言时也有相同的困扰。 所以我们打算在这门课这样做:
每一周只放出小部分的视频介绍重要观念
每堂课有完整的代码可供复制步骤
有小的加分练习题,必须自己思考「动手」解出来
之后会有助教示范写出功能
练习方法 同学们在上正课时,也使用作业期我们推荐的方式:
请同学第一步先复制练习代码步骤
第二遍手打代码
第三遍自己写出来 这其实是学习写代码最有效的方法。
作业格式 同学们必须要交以下作业
Github 代码
博客 ORID 日记
指定知识点的题目的 Google 搜索整理结果 这样的方式,是协助将各位的被动学习状态,积极的转为「知识残留率高」的高效主动学习法。 期待看到各位在这三个月中,飞速成长!
提取练习
如何让自己的学习更加牢靠呢? 我在 The science of learning 学到一个简单的技巧,就能让各位的学习更加地牢靠。这个方法是这样的:
Before 大多数人读书复习时的方法:打开课本,画重点、抄笔记,然后复习时,重读这些重点以及笔记。
After 改良的版本是:
当要复习时,禁止打开课本重点与笔记
拿一张全新的白纸,回想你之前划了哪些重点,以及为什么要划这些重点,写下来。
打开当初的课本重点与「回想笔记」对照 这叫「提取练习」。这个方法会让你在记新东西时,记得非常牢。
提取练习原理 我们的大脑存取知识时,其实存取的方式不是读取一块一块的小音频与小视频,而是另外再创造一块新的记忆提取出来。 但是这个方法会让一般人感觉到非常不舒服,若要精确形容这个感觉,叫做「酸麻的挣扎」。 也因为太酸麻了,也需要一点时间。所以一般人会下意识地放弃这个做法。 但事实上这个方法却是最有效的深刻记忆的方式。 「提取练习」之所以有效,是因为在一般人以往的学习,其资讯是放在外部资讯上(如书本、影像)。在读书时,你以为自己欣快地学会了很多东西,但事实上并没有。 而因为大脑并没有「有效的记忆轨迹」连到这一段资讯上。所以黏着度非常低。两三天就忘记了,要回朔时变得很困难。 而提取练习,事实上做的是让这段资讯,在大脑反覆创造「记忆轨迹」。所以将来提取这段资讯时,就会非常迅速。
「教就是学」 为什么我们常常反覆地讲「教就是学」这个观念呢? 其实正是因为「教」,事实上就是「提取练习」的一种形式。要把一个概念教给别人,这其实「就是在大脑里面提取一份资讯,并且创造一段新的记忆,转成音频输出」。 当你重复这个动作越多次,你就越了解也越记得这段内容。
很多人以为认真听老师讲课就可以造成有效的学习,这是错的
有些人也以为只字不差的阅读是有效的,这其实也是错的 真正有效的学习是:学习时写下笔记,复盘时讲授给别人听。
有效的反馈 提取练习的另外一个重点是:当同学进行提取练习完,必须收到准确的反馈。这个反馈可以是老师给的,或者是同学一起对照的反馈。这样就可以让自己知道,这是不是有效的练习。
总结
每日练习完毕,请写下自己当日的练习「ORID」。
观看同学的 ORID,对照自己提取方法是否正确。
复盘总结,积极辅导班上落后同学,是学习进步的最快方式。
太多人在「酸麻」这个阶段放弃了。以为懵与酸就是「学不会」,事实上「学不会」的感觉是「关我卵事」。
「酸麻挣扎」代表正在前进,而且正在有效的形成记忆。 「酸麻」并不表示学不会,相反的你只要不放弃,就赢了一百个人。
元学习框架
在第一周开始学习编程之前,我想跟各位分享这套课程背后的学习原理。 在变成全职 Rails 教练前,我是 10 年开发经验的超级资深程序员。当然,在行业里面,很多人知道我甚至自己不仅程序写得好,我还擅长培训出优秀程序员。 关于训练程序员,一直以来我有一套自己的方法。我用这套方法过去几年来训练出了几十个一流的徒弟。这套方法总的来说有点反程序员界的「直觉」与「政治正确」,但却非常的有效。后来我将这套方法改良,做成了公开班。 我的公开班学员背景组成非常多元:有司机、烘培师、药师、医师、建筑师,等等……各式你想像不到的背景,但他们共同的特征就是:这辈子从来没有写过代码,最后他们却学会编程了。
学习编程失败的原因 不过,这套学习方法虽然有效,虽然不论背景都能学会,但是成功机率却不是百分之百。于是我也花了很多时间去分析学生的样板,想找出:
为什么有人学得会编程,为什么有人死都栽在同一个坑里面
学会一套编程语言并且独立开发程序,需要多久的时间
及一般人自学编程为什么低效 我发现来来去去,学习低效甚至失败者,无非栽在对于入门编程的四条错误认知上,他们是这样认为的:
学习编程必须要有天赋
必须在学习编程中「看」懂每一个步骤
学习必须要扎实,要从技术基础原理学起
学习时复制代码是可耻的 这样的认知造成了「学习初速度低下」。 一旦学习者不能快速地进入「小获胜」状态,找不到成就感,很快的就放弃了。其实这四条固有认知,都是没必要的伪概念。
「初学」方法绝对与「进阶」方法不同 当然,有些程序员朋友,听到这样的理论,应该会反口说这是我编出来的胡说八道。但是你也许不知道:
必须在学习编程中「看」懂每一个步骤
学习必须要扎实,要从技术基础原理学起
学习当中禁止使用捷径,如模仿以及复制代码 这些是「进阶」「学习编程」应该要有的认知啊!是在「熟悉基本框架」后的「复习」方法,而非「初学编程」时用的。
该如何「初学」编程? 那么,该如何学习编程呢?
Step 1: 建立自信 进入陌生的领域,第一件事就是要建立自信,相信你自己学得会,而且并不孤独。所以我们安排了作业
第一课:环境建置
第二课:初级练习 让各位第一时间,就感受到进入编程,搭个小网站,你也能迅速上手!
Step 2: 在大脑内建立足够的基础框架 刚开始学习一门程式语言
这时候就算有前辈,拼命想解释让你理解
或者是自己尝试上网 Google 找资讯 但还是感到「一头懵」,这绝对是绝对正常的,因为大脑无法以「未知解释未知」。 而这往往却是一般人「从入门到放弃」当中的最大一个关键点。 正常人一般人来说遇到「很多知识不懂」的解决方法,是「花更多时间想办法解释弄懂未知的知识」,或者是「想办法去补自己都看不懂的基础知识」,直到自己筋疲力尽放弃为止。 但是,其实最好的方式,是找到行业中「好的高频小套路」,背下来。即使很多不理解也没有关系。 只要了解「输入」什么,可以「输出」什么就行了。 只有在大脑内储存了够多的已知资讯,其他的资讯才能够有效附着,进而用「已知解释已知」。 这也是我们在课前让各位练习背颂:
第三课:中级练习( Rails 101 的最新版) 的原因。 这套课程其实是写 Rails 程序内,最常见的 101 个场景的共有模板。以足球来比喻,就是射门基本动作。
Step 3 :小迁移 (二周) 而开学之后,我们的第一套课程
「招聘网站」,将会是第一个「小迁移」练习。 所谓的「迁移」,就是我们将会带领各位脱离「只会抄模板」的新手学步车,带领各位搭建出类似场景的第一个小应用。 这一个课程,将会慢动作重放,一个小网站是如何被构思制作出来的。而且,你在日常生活中就能具备这个能力。 招聘网站的结构,会与课前的中级练习,非常的类似。甚至你自己就可以依样画葫芦模仿造出来。
Step 4 :中迁移 (三周) 而第二套课程:
「购物网站」,将会是第二个「中迁移」练习。 在这个阶段,难度将会比小迁移复杂上数倍。但是各位将可以在这个项目体验到,程序员
是如何从零到有,将一个网站灵感,拆成数十条执行细项的
如何按部就班,把这些执行细项化为程式码
并且一步一步找到资源,写出未知的功能 各位将会在中迁移中有极大的进度进展。
Step 5:提取练习(代码) 在开学前,我有请各位做几件事,以这样的方式学习:
第一遍复制代码。 (观察输入与输出)
第二遍手敲代码。 (观察自己哪里错误)
第三遍以后,凭自己的记忆写出代码。 (提取练习) 其实,这完全是有科学根据的。这样做的原因是:
复制代码,就不容易有错误。同学可以观察到「输入」是什么,「输出」又是什么。
手敲代码。你就可以比较出「自己打了什么」,又「为什么这样错了」。 (但也不容易掉入坑里,因为你不需要去理解太多的知识)
凭自己记忆写出代码。目的是为了让常用功能直接进入人类的「长期记忆」。 但是,如果各位在这当中,还是蛮横地去查太多未知的东西,就会把自己带入恐慌的坑里。所以千万不要跳入这个坑里。
Step 6 : 提取练习(文章 / 错误修正) 在这三遍里,我们还要求各位写日记。日记是一套科学模板( ORID)。 这套科学的模板,是为了让各位近距离观察自己的情绪。写了几天之后,你就可以「客观」的观察到,自己的学习进度其实有很大的进展,而不是「懵懵懵懵懵懵懵懵懵懵」。 不会再被自己的「情绪」影响「进步」。
Step 7 : 提取练习(错误修正) 再来呢,「错的部分」是一定要记下来的。也要写到博客中。 虽然刚开始,你可能觉得「记错的」而「不记对的」是很傻的一件事。 但是,这其实是一套非常科学的「进步方法」,当你试着这样记了五六个错误以后。你会发现自己傻逼的错误,不可能再错了,进步的效果会变得非常非常的明显。
Step 8: 提取练习( 教就是学) 各位应该在 Slack 上看到,有些进展得比较好的同学,开始在教比较落后的同学。 「教就是学」,这句话并不是古人唬弄我们的,而是也有科学根据的。 「教」其实就是一部分的「大脑提取练习」。当我们经由感官刺激接受到讯息后,其实大脑里面的记忆痕迹并不深。如果几天内不应用,其实资讯根本无法留得下来。 所谓「教」,就是在讲述过程中,透过创造「自己版本的新记忆」,将这道资讯在大脑上面再刻深三遍。
总结 所以虽然课前作业,貌似我要求各位做的作业,似乎都是非常反常理的。但全栈营所有的学习步骤,都是走在认知科学的最前沿所设计的。若各位同学「放下学习的傲慢」,并「只字不差的执行练习」。 你将会在这个学习过程中,感受到自己巨大的进步。
左右脑模式
在这里,我不知道有多少人听过笑来老师讲过学东西,其实有两种模式,一种叫苍蝇模式,一种叫蜜蜂模式。其实我现在讲的东西有异曲同工之妙。
左右脑模式 更精确地说,一般人其实没有意识到,进行一项学习,其实调用的是两种模式。
一种叫「左脑」模式,利用逻辑分析学习
一种叫「右脑」学习模式,利用感知学习。 为什么在学编程前,我要教各位「元学习」呢? 「元学习」这个字,意思其实就是学习「如何学习」再学习。我希望教会各位不只一样技能的学习方式。在这里我要教会你另外一个技能,这个技能叫做「画画」。
新手如何学画画 一般来说,画画甚至比编程更难学习。但我在这里要介绍一个在 80 年代被发明的学画学习方式,这堂课只要 5 天,就能够让新手五天学会绘画。我是在一本书上看到的,这本书也推荐大家去买:「像艺术家一样思考」。 这本书的作者叫做 Betty Edwards,他是一位 认知学家 + 画家。在 80 年代时,她发明了一个让新手五天学会绘画的方法。 这个方法很简单: 就是让新手在刚开始学素描时,倒着画自己的自画像 当中的原理是这样的:
他发现当学生「正着画」自己的自画像时,通常会画的七歪扭八。学生因为熟悉自己的样貌,所以作画时会纠结细节,一直想要去修改自己所呈现的容貌。问题是新手又没有足够的绘画技巧,于是就会画得一团糟。
但是如果让学生将自己的照片反过来,临摹作画时,这时候突然间他们就会画了。正因为自己都不知道自己在画什么,所以「纠结比较」的那一个部分会被关掉。反而会把重点放在观察全局与细节。 因此倒过来的作品远比正着画的作品水准高上太多。 Betty 发现的这个现象,正是因为人类的左右脑具有不同的运作模式。 前者注重逻辑分析与细节,后者注重全局观。 正着画图,让我们不由自主的在针对「自己应该熟悉的部分」开启左脑分析模式。但是我们又不具备绘画的功力,导致一直绊倒自己。他发现用这个方法,就可以让没有受过学习训练的人,直接强制关掉左脑的分析模式,专注在全局。 其实学习英语以及编程,也是同样的道理。 正因为「语言」或者是「编程内使用的英语单词」是我们熟悉的语言,在学习时,学习者会不自主地开启分析模式。去试图找到与过往经验匹配的模式,但是若匹配不到或匹配错误,学习者就会自己绊倒自己。
人人都该「用」英语 所以为什么很多网上的学习英语的有效技巧,都要求学习者不要试图去记单词,能够的话,就是
大量的去听别人说什么
大量的去模仿说句子 这其实就是让学习者大量的使用「右脑」的直觉以及其他身体感觉,去快速抓到全局感,拼出基础框架。 而学英语最有效的方式:甚至是
直接到说英语的地区去居住
在这样的情境下,学习者可以大量的模仿、大量的使用累积出的简单框架
在当地生活购物,累积更强的语感与成就感
大脑无法用未知解释未知 同样的,编程也是相同的道理。 一开始学习编程,初学者甚至不应该尝试着去搞懂里面的用法,因为人类的大脑无法用未知解释未知,就算看了一整天,你也无法用逻辑分析出所以然。 学习编程最有效的方式就是 冲进度。你只需要知道 输入什么能够得出什么就可以了。 看着一本小书,用模仿复制代码的方式,快速搭建出一个小项目,建立一个大致全局感。然后,将项目发布,让朋友称赞你,取得有效的成就感,这样就可以激励自己继续学习编程。 用这样的方式,你就可以抢在自己放弃之前,建立起正循环了。
发现更多更好玩的,欢迎关注我的微信公众号: FullStacker