嗨大家好,我是插袋。那因为呢这堂课会有新生大学这个就成员,那有一些人可能知道我是谁,但是呢还有一些学员是外面新加入了这个朋友。所以在这里呢我还是会先简单的做一个自我的介绍。那我目前呢是新生大学软件学院的这个合伙人,我跟笑来老师一起创创办这个全站的软件营。那么目前呢第一行呢刚节课呢效果来说很不错,后面想报名的人呢这个询问度也很热烈,但是因为这事太热烈的,老师说呢我也交不了那么多。所以呢最后呢我思考了一下,决定呢先开一个园学习的这个课程,好帮助大家迈开这个学习编程的这个地步。 那元学习课程是什么呢?其实就是学习学习的方法。在学习那网络上面教导学习的方法的课有很多,就是你可以注意到这从来没有人开过学习学习编程的这个方法。那我认为其实如果你真的想要学会编程,这件事情实在是太重要了,甚至很多人学习编程的方法都是错的。所以呢我觉得这个课实在值得拿出来单独的这个讲。所以最后我就请新生大学呢帮忙安排这次这次的这个课。那这次的课呢会怎么样安排呢?首先呢这门课呢会分三次的上,那每次上课的时间是每个礼拜一,那每一堂课呢大概会在30到45分钟上线,那课后呢我会有15分钟的这个答疑,那每一堂课呢最后呢都会有一个不是很难的功课,那我希望大家一定要去做。 因为我之所以呢把课排在礼拜一而不是周末,就是要确保大家有充足的时间去完成这个作业。因为所有的课都一样,如果听完了之后呢你不去实践,那不管你听再多课都是没有笑的。这次的作业其实是有奖品的,那一开始呢我先公布这一周的作业是什么?课前呢其实我就先透露了一下,请大家先去接一台iPad来玩一个游戏,那我现在公布这个游戏的名称,这个游戏的名称叫做是wait光,那这个是由苹果制作的这个学编程的这个游戏。那里面有一个课叫做扔兔扣万。 就是学习怎么样?写城市好,第一集。那这个作业的要求呢就是请大家先打完前三关,第三关呢叫做follow,也就是回圈的意思。那请你玩玩这三关,呢在频道上面贴上第三关过关的这个截图,那证明你做完的,那我们会在前50名已经做完的人呢抽出五个人噢送奖品,这个奖品是校外老师噢签名的,这个得到。199元的这个礼物卡,那第一个交的呢也会送一张。那大家不要听到说哇好难,哪第一堂课就要学习写扣,这也太刁难人了。噢大家先放轻松,噢先把这个游戏抓下来,是坐下来了以后你会发现这个游戏其实只是简单的前进后退收集宝物的游戏而已。 那我们第场的作业其实只是要大家玩游戏而已。哦重要事情我说三遍,哦这是玩游戏玩游戏玩游戏。噢下一周呢我们会透露为什么要大家去玩这个游戏,不过在这之前啊你先玩再说。OK我还是少讲点废话,来,开始讲正课好了。在这一堂课当中,呢我会想办法建立大家对于学习编程的一些基本的这个认知。今天呢我只有要讲一条学习编程的这个简单的这个公式,如果你今天下课之后呢去玩那个游戏,你会更明白我在说什么的。那编程是什么?呢噢其实这个编程就是呢第一件事情,你观察一件事情的输入是什么? 接下来再观察这件事情的输出是什么?然后呢想办法让这件事情可以重复地被做。那最后呢如果你在当中遇到了A这个状况的话,你就执行假方法。如果你遇到B这个状况的话,你就执行以方法。那我再重复的讲一遍。那第一件事情就是你观察这件事情的输入是什么?在观察这件事情的输出又是什么?那想办法让这个事情可以重复地被做变成一个循环。然后呢如果你在当中遇到A状况的话,你就想办法去执行甲方法。如果遇到B状况的话,你就去执行你方法,反复的这样做,这就是编程就是这么简单而已。 那其实呢编程真的是很简单的事情,只是很多人在自学的时候呢被编程吓倒了,其实学习编程真的没有很难。那我举一个生活中简单的例子来跟你说,吧可是呢你今天要学的东西呢不是编程,是做菜的话,那你会怎么样选呢?那如果呢你要学比较复杂的菜,假设呢你要去除这个海鲜的这个行为,呢那可能你就会事先对这个材料做一点处理。比如说呢去放葱啊放姜,啊然后加点米酒,啊那为什么你会先这样做?呢是不为什么?其实大家都这样做,那你背起来就对了。 等你的除以呢比较熟练之后,你就会去挑战一些比较难的嗯这个料理,比如说你喜欢吃煎牛排,所以你就要去研究我们要用什么锅比较好,呢铸铁锅还是怎么样的锅,然后火候要怎么样?空呢甚至是牛肉的这个赎身方法,然后甚至是比较需要科学原理的这个真空低温的这个烹调。OK那我反过来问这个问题,如果你今天是一个厨艺新手,这辈子从来没有做过菜,那么煎牛排的最好的方法会是这样吗?或是先去看书,研究不同的牛肉部位,接着呢去研究不同锅的材质的传热原理,噢然后再去搞懂大伙跟小伙的这个差别之后,最后跟着菜谱然后去煎肉,那么你认为这样第一次就有办法煎出成功的牛排吗? 当然不可能,用膝盖想就知道这样组杂的这个几率是百分之百。好,那么你认为不该这样学煮菜,那你为什么又会认为学编程就得从基础开始,甚至学网页就得从学C开始,由最基础的这个原理开始慢慢往上爬,然后呢努力努力隔一年这样最终就学的会。而且如果你学不会还安慰是自己投入不够多,努力还不够,我错了,噢根本不是。世界上没有人应该这样学东西的,你不应该期待错误的方法,最后能导致正确的结果。如果人类学走路是从学力学原理开始学,那么大家可能到三岁都还在地上爬。 可以的话,问问房间那些无师自通的小艾克,他们学编程是从英语开始学的吗?或者是说他们学是学完英语才开始学C语言的吗?又或者是说他们是学完戏园才去学做怎么样做APP的吗?当然不是,哦他们刚开始学怎么样编程的时候,呢都是去先下载网络上面免费的这个现成的套件,然后跟着涂涂改改那在当中呢学习很多修正的这个小知识!一步一步走到现在的。那事实上呢现在几乎很多这个野生的程序员,刚开始头一两年起步都是用这样的这个野路子的。 不过呢当他们成为大牛之后,呢他们都觉得这样的这个起步历史实在太丢脸了。所以他们会避而不谈这段黑历史,哦甚至在这个脑中屏蔽这样的这个学习方法,我因为这样的野路子太丢脸了,哈所以他们屏蔽这段黑记忆之后,写出来的这个教程自然也会变成政治正确的这个理想性的步骤。也就是呢在这个教程前面的章节,花上大把时间去解释原理,最后才补上一小段的这个实践。然而这样的交城却很难让新手能够经由这样的学习步骤真正学会编程。这个道理不为什么,因为他们连他们当初都不是这样学习编程的,这事根本就是一套骗人的这个死胡同。 一般人要是这样学着前面的这个基础原理解释章节的时候,就闷死了自己。你仔细想想,是不是你学一项技能最终都是这样放弃的?如果你真的知道市面上那些所谓程序员政治正确的建议,是你一辈子都学不会编程的,这个是很理所当然你这个结局。今年我在研究如何设计更好的教程的时候,意外的踏入认知心理学的这个世界,结构出了一套学习终极的这个密钥。让我在这里引述一个全栈营班上学生对于这套学习方法的总结。或许你会到网络上搜索各种免费视频教学,下载到自己的硬盘,购买各种从入门到精通的大部头书籍,到知乎上看各路人马对初学者的各种建议,甚至到国内外各大公开课平台付费学习。 然而这学习了一段时间之后,你终于成功地实现了从入门到放弃。相信我,你并不孤独。那么原因何在?呢其实这是因为你没有学习学习再学习。如果你不熟悉这七个字的话,我在这里稍微解释一下,这不是重要的事情,说三遍,而是你必须要先学习的学习的方法论在学习。啊第二个学习是名词,如果你没有掌握有效的学习方法论就开始学习,那么这会是事倍功半的。下面我将分享我在全站工程师课堂上学习到的三个学习方法论,分别是拼图理论成就感和重复训练。 第一部分拼图理论。学习呢其实是拼图,而不是登山。你并不需要从计算机的这个基础理论知识开始学习,也并不需要把某个编程语言的语法规则全部掌握了才开始去编程实战。这样的话你是误把学习当做登山,认为必须把基础打牢固了之后,才可以进行下一步学习。这样其实错误的认知。那学习呢不是登山,而是拼图。那既然是拼图,就可以说是你这里比你快,那你比你快。那假以时日,你是可以把整个图给拼起来的。当然,拼图最有效的办法应该是先把整个图的这个边框先拼起来,这样你就知道图的边界在哪里的,然后你再往里面当中就铁中间填东西,那这样来说效率就可以变成很快了。 那你学习编程以外的技能,其实也可以套用这个理论。第二部分成就感。成就感指的是你在学习的过程中要不断地得到正向的回馈,那这样你你就可以有很强的这个成就感,甚至觉得自己原来是天才,而不是被挫败感所洇灭,从而轻易地完成从入门到放弃。那初学者要如何获得正向回馈呢?其实呢这在编程学习上应该与教练设计的这个教程有直接的这个关系,你付大钱去上的课程跟你在网络上面搜索到的这个资源其实会有天壤之别的。第三部分重复训练。 大量的重复训练可以让你形成肌肉记忆。材料老师说,初学编程最好最坏的方式是跟着打,不懂的地方背起来,然后呢你就会突然间懂很多的东西。解题越来越快,越来越知道自己在干什么,直到最后可以独立开发项目。刚开始我其实也不是不信的,但还是照做了,那结果其实定是令人震惊的。最重要的是,这些概念跟方法论并不是编程学习里面所独有的,而是可以实践到学习其它技能中去的。那聪明的人只不过是善于举一反三。那以上呢就是我学生的这个笔记摘录。 学会编程三部曲,其实这就是三这三件事情。听图理论,成就感,重复训练。这第一堂课呢我们尽量不多讲,实际编程的是我们是想要让你体验一种感觉,一种你可以用这个原理重复学会所有事的感觉。我相信在座的读者应该玩过市面上大多数的这个手游。你有发现手游是怎么样让你沉迷的吗?那手游的这个经典的三部曲是这样子。第一个步骤,交心的使用者按这个就可以得到,那个甚至可以得到小奖励。那第二步骤呢是使用者开始熟悉大部分的游戏原理之后,呢他就发现唉自己好像是天才,你可以按照这样的这个游戏原理哦接着去工程这个略D那第三部分呢是当使用者玩一玩,觉得开始腻了,开始觉得无聊的时候,呢系统开始随机出现的奖励,结果就害你不可自拔地继续玩下去。 如果你想要自己学会编程的话,我会建议你按照这样的这个途径走下去。首先呢先控这个就能得到那个改,这个就可以得到那个省产量量的东西,快速把东西拼出来,然后按照这样基本的简单的这个原理,然后你接下去快速的继续拼稍微大一点的这个东西。这是当中你不了解原理也没有关系。那最后呢把你完成的这个小作品公开给别人看得到反馈,那享受周遭的朋友称赞你是天才的这种感觉。那第一堂课呢我们所环绕的主题就是新手应该利用这样的模式去建立自己学习的系统,让自己不可自拔的调到成就感与挑战感的这个天堂。 这样呢你才学得会编程。当然我这样说可能同学们还是会很存在,学习好像很自欺欺人,也不扎实。真的学得会吗?而且呢变成不是一套要完整扎实的打基础才学的,为了这个技能吗?坦白说,我要说这句话是正确的,也是错误的。很多人包括资深的程序员都无法解释编程究竟要怎么样学。很多人以为编程就是巅登山,但事实上学编程却是拼图!如果你用了错误的方式去学编程,新手往往就会被自己有可能去爬山,爬到一半力竭而死的这个假象去辅助,直接从入门到放弃。 在这里呢我不知道有多少人听过笑,而老师讲过学东西呢其实有两种模式,一种模式呢叫苍蝇模式,一种呢叫做蜜蜂模式,其实要跟我接下来讲的这个东西呢有异曲同工之妙。更精确的来说,呢一般人其实没有意识到进行一项学习,是调用的是两种不同的模式。一种呢叫做左脑模式,是利用逻辑分析去学习的。第二种方式呢叫做右脑学习模式,是利用感知去学习。那这堂课呢真正的克敏呢叫做元学习课。所以呢在这个课里面,我会教你布置一项技能的学习方式。 那在这里呢我要教会你另外一个技能,这个技能叫做画画。一般来说呢大家会觉得画画甚至比编程更难学习。但是我在这里要介绍一个在80年代被发明的这个学画的这个学习的方式。这堂课呢号称只要五天,就能让新手学会画画。那这个方法呢我是一本书,上面看到的这本书也推荐大家去买,噢名字叫做像艺术家一样思考。那书的作者呢叫做贝蒂埃德沃斯,啊这本书的作者是一名认知心理学家,而且也是画家。这80年代的时候,呢他发明了一个让新手已经学会画画的这个方法。 那这个方法非常简单,就是让新手在刚开始学素描的时候,呢倒着画自己的自画像,注意是道者话。这当中的原理呢是这样子的。他发现当学生呢正着画自己的自画像的时候,呢通常会画得七弯有八。学生呢因为熟悉自己的样貌,所以作画的时候呢他会非常纠结细节,一直会想要去修改自己所呈现的这个容貌。那问题是呢新手又没有足够的绘画技巧,所以他就要画得一团糟。那他换一个方式让学生将自己的照片反过来临摹作画的时候,呢这时候他就发现学生突然间就会化了,因为呢学生正因为不知道自己在画什么,所以纠结比较的那个大脑的那一部分就被关掉,学生反而会把这个重点放在观察全局与临摹细节上面,所以呢倒过来画的这个作品远比政治化的这个作品水准高上太多了。 被你发现了这个现象,这是因为人类的左右脑具有不同的这个运作模式。那左脑呢注重逻辑分析与细节,那右脑呢注重全局观,政治话筒让我们不由自主的在针对自己应该熟悉的部分开启左脑分析模式。但是我们又不具备绘画的工艺,导致呢中间一直半岛自己那发现呢用这个方法就可以让没有受过学习训练的人直接强制关掉左脑的分析模式,专注在全局。其实呢学习英语以及编程也是同样的道理,正因为语言或者是编程内使用的这个英语单词是我们熟悉的语言,那学习的时候呢学习者会不由自主的开启分析模式,去试图找到与过往经验匹配的这个模式,但是如果匹配不到或者是匹配错误,学习者就会自己绊倒自己。 所以呢为什么很多网络上面的学习有英语的有效的技巧,都要求学习者不要试图去记单词,能够的话就是大量的去听别人在说什么,大量的去模仿人家说句子,其实就是让学习者大量地使用右脑的直觉,以及其他的身体感觉去快速抓到钱局,敢拼出基础的这个框架。儿,甚至呢学习英语最有效的方式,大家其实都听过是什么?就是呢直接搬到说英语的地区去居住。因为呢在这样的情境之下,呢学习者可以大量的模仿周遭人在讲什么,这是大量的使用累积出来的这个简单的框架,在当地生活购物累积更强的这个雨感跟成就感。 同样的学习编程也是相同的道理,一开始学习编程,初学者甚至不应该尝试着去搞懂里面的用法,因为人类的大脑其实没有办法用,为知也是为之。就说你看了一整天,也没有办法用逻辑分出个所以然,而且你甚至还会感到挫败重重,觉得自己好像是个白痴一样。学习编程最有效的方式呢就是冲进度,你只需要知道输入什么就可以得出什么,这样就可以的。你可以看这一本子,小叔用模仿复制代码的方式,呢快速搭建出一个小项目,那建立一个大致的这个全局观。 然后呢你就把这个项目发布出去,让朋友称赞你,那这样子你就可以取得有效的成就感,可以激励自己继续学习编程下去。那用这样的方式,呢你就可以想在自己放弃之前建立起这个正循环。我们在下一周会具体教大家练习怎么样做,那现在只是讲的基本的观念。那这一门课呢我想要讲的原理还有很多,就是第一堂课一次讲太多观念,我怕大家吃不消。所以大家可以先做以下这两个作业,一个是玩游戏,iPad上的游戏,这个游戏叫做时wait为刮。 SWI ftPLAYGROUND然后呢他的里面的一个课程叫做N to扣Y学习怎么样编程?人通寇外的前面三关,那请大家在完成第三关的时候截图,拍上这个频道缴交先完成的前50名,呢我们会抽出五个同学,送校的老师签名的这个得到礼物卡。那另外一个作业呢是反着临摹画自己的自画像,你拿一张你自己的照片倒过来,或者倒过来的照片临摹画自己的自画像。那画自画像的这个同学呢前30个缴交的,我们会抽出三个同学,也送校园老师签名的这个得到礼物卡。 那我希望呢你听完课之后呢马上就去做。因为呢我这里还要指出学不会编程的另外一个大原因就是呢拖延症。or绝大多数人呢想学编程,其实都是因为知道编程是个无可避免的时代趋势,但是呢知道不等于做到。大多数人通常是这样子的。他首先呢他先报了一个课,但是呢就放着拖着不去实践,总想着呢当自己有一天想要学的时候,应该就学的会。最后真等到那一天,打开那个电脑没几分钟就放弃了。这样的场景也许对你来说不陌生。你知道一件事情很重要,不是不知整的就拖到不能再拖的最后一天。 到了最后一天,总幻想着自己还是可以做出完美的结果,所以你要一口气冲刺,最后就死在路上了。那我们都知道拖延其实是不好的,但是人为什么会拖延呢这心理学呢治疗拖延症的这个相关书籍中,呢我发现拖延症患者多半是因为自己害怕失败,或者是追求完美,那我们讨厌做不到的感觉,这样的感觉会伤害自己。所以能够拖延就是拖延,避免去触发这件事情。那要治拖延症的方法也很简单,就是骗自己。骗自己,其实不是要取得完美的这个结果,而只是随便玩玩,这样你就会马上开始行动了。 就比如说拿我来说好了,因为长期不运动的关系,我蛮胖的,但是其实我也不是不想要减肥,但是每一次简易解决失败,因为减肥很痛苦吗,我又想到一次次成功,所以我就会极端地对自己,难道这也是无效的,反而会越紧越怕。那久而久之我就会去想要拖延就减肥的这件事情。那么我要怎么样有效减肥,呢比如说呢减肥要慢跑,但是呢其实对我来说,呢每天上下班慢跑对我来说负担还是太大了。那其实我可以选择的方式就是退而求其次去多走路。那具体要来说要要怎么做呢?其实我就可以骗自己,其实我不是真的想要减肥,我只是回家的路上想走路,多看看路上的风景而已,那骗自己呢真的很有效! 当我刚开始学习这个方法的时候,我正在为拖延制作屋必唱谱上面的投影片发愁,于是我就要骗自己。其实我不是要开始制作投影片,我只是想要顺着思路打打草稿而已。没想到呢我接下来竟然就可以专心的花个两个小时的是时间,口气就写完整个投影片的这个架构,并且在隔天顺利的就找到一小群人,可以实际地进行演练,而且他讲得非常流畅,所以我对这片自己的这个效果感到都非常目瞪口呆。所以呢如何在学习编程这件事上骗自己呢?我跟各位讲,其实呢其实你只要这样讲,告诉自己,其实只是要往往了解编程的原理而已。 你不是要变成只是设计师,更不是要一口气习的这个编程技巧,我们只是要了解这个编制现况而已,所以呢我们第一堂课先这样做。首先呢你可以先去打一场电动我介绍的这个电动的小游戏,或者是说你到这去画一张自画像,你不知道学编程,你只是玩玩而已。好,那而且呢你现在往往我们还会送奖品给你的。现在咱们就赶快去做吧好那第一堂课,我们就先上到这里,那接下来的15分钟呢我会在线上,我尽量地回答各位对于编程有关的这个疑问,谢谢大家!