关于“为什么要让孩子学习编程”这个话题,网上有大量的文章在探讨,每篇文章的内容基本都是列举了学习编程能让孩子锻炼的若干能力,同时列举一些名人鼓励学习编程的话以及一些编程天才的例子,而且基本都会提到乔布斯的名言 “每个人都应该学习编程,因为它教会我们思考”,这些文章固然说得没错,但总感觉说的东西太多,反而让人抓不到重点,有的文章还会让家长误以为孩子学了编程就无所不能,什么能力都养成了。今年以来,随着大家对人工智能大战的关注,少儿编程的风吹得更劲了,许多培训机构也乐得拿人工智能这个话题引起家长们的焦虑,想必有不少家长都在考虑是否让孩子接触一下少儿编程,就 “中国孩子要不要学习少儿编程” 以及 “学习少儿编程是为了什么” 这看似两个但其实是一个的话题我说一下自己的看法。
先说结论,在我看来,中国家长尤其有必要抽出一点孩子的时间让他们学习一下少儿编程,尤其是以Scratch为代表的图形化编程。理由很简单,主要是两点。
第一点,让孩子多掌握一个表达自己的工具。小朋友无疑是想象力最丰富的,很可惜随着年龄渐长,由于教育体制的问题,大多数中国孩子的想象力都是快速衰退。就小朋友表达自己的手段而言,无非是讲故事(说出来)、写作文、画画,而以Scratch为代表的图形化编程工具则提供了另一种可能性——利用Scratch创作互动式故事、动画、游戏、艺术作品,这种表达方式更生动、更好玩,也更强大,不信你去看看 Scratch 官网上那么多天马行空的作品,相信一定会感到一丝震撼(当初也是因为在官网上看到小朋友做出了这么多如此棒的作品才让我萌生了做少儿编程培训班的想法),同时这种表达方式也更与时俱进,00后的这代孩子被称作“数字原住民”,从小就接触各种电子设备,但小孩子如果只会在这些设备上玩游戏看动画,而无法利用这些设备创造点什么,只能算是一个熟练的 “数字消费者” ,很难说得上是一个合格的“数字原住民”。
关于这一点,Scratch 的创始人 Mitchel Resnick(米切尔·瑞斯尼克) 在一场 TEDx 的演讲中说得非常清楚,米切尔讲了一个自己准备母亲节礼物的故事,当他决定用自己创造的工具 Scratch 制作一张母亲节贺卡时,他想先去 Scratch 官网上找找灵感,然后他意外地发现有许多小朋友已经用 Scratch 创作了各种各样的母亲节贺卡,这让他感到非常吃惊和满足,因为这正是他们创造出 Scratch 的原因——让小朋友自由地表达自己。非常推荐大家去看一看这个视频,视频的名字正好切中了这篇文章的立意——让我们教孩子编码吧。
为什么要这么重视让孩子表达自己呢?因为时代不同了。事实上,今年少儿编程的火热有一部分原因是由于人工智能大战引发的,而人工智能大战对我们的最大启发是,人类在逻辑思维方面和机器相比已经完全无法匹敌,而且差距会越来越大,即使是人类最聪明的少年天才棋手柯洁在阿尔法狗面前也只能俯首称臣,更别提普通人了。
那么,十几年后,等这一代小孩成长起来进入社会,拿什么和机器竞争呢?唯一的答案是创意、想象力。小朋友天生就是充满想象力的,但我们需要给这些想象力一个出口,让他们表达自己,尽情释放自己的想象力。尤其是在中国这样的应试环境下,许多老师或出于无奈或无意地忽视小朋友的想法,小朋友即使有了想法在生活中也得不到任何的鼓励和反馈,慢慢的也就把自己的想法和想象力丢失了。我觉得Scratch 很了不起的一点是,它用小朋友喜欢的方式把创作的门槛大大降低了,而且鼓励小朋友分享、在其他小朋友的基础上再创作,如果小朋友掌握了Scratch 这个工具,那么至少他们多了一种表达自己的选择。
在学习和创作的同时,小朋友不仅慢慢学会了如何组织、完善自己的想法,将自己的想法变成一个生动的作品,也培养起了创意方面的自信心,这些都要比单纯的掌握编程技能更可贵。家长们如果在选择培训班时,建议选择在课堂上重视引导小朋友表达自己的机构。如果是深圳地区的家长,可以考虑一个小而美的机构 ”梦想编程现实“。创始人周安琪是剑桥大学毕业,对教育也有比较深的理解,我曾几次到她们机构观摩过上课,确实受益良多。
第二点,在学习少儿编程的过程中能够培养起一些受益一生的能力。在我看来,这些能力至少包括 “分析问题的逻辑思维能力“、 ”将复杂问题分解成一个个简单问题从而解决问题的能力和思考方式” 、“debug 查错的能力和耐心细致的习惯“、”最终展示作品的表达能力和当众演讲的信心“,如果课程体系设计得科学又合理,老师也引导得好,还能培养起孩子的团队沟通合作能力、设计思维和计算思维(computational thinking)。
少儿编程是少见的能在创意和逻辑两方面同时培养孩子的项目,而且更幸运的是,孩子非常喜欢。在我开少儿编程培训班的半年多时间里,加上前期举办体验课的两个月时间,总共接触的孩子100多个,很少见到孩子不为 Scratch 着迷的,大多数小孩几乎是第一眼就喜欢上 Scratch 了,这当然有孩子天然具有好奇心的缘故,但更多的要归功于 Scratch 的设计,它是如此的强大又如此的简单,如此的严谨又如此的生动,稍加引导就能做出一个让孩子兴奋自豪的作品,非常适合孩子学习编程的启蒙以及培养学习编程的兴趣。
孩子们为了做出自己期望中的作品,要主动去学习编程的相关知识,并且要能够灵活的运用。当它掌握了这些知识后,做出的作品也越来越好,能够体验到更多的成就感。这个过程的反馈多么像“打游戏”啊。孩子们为什么喜欢打游戏,一个很大的原因是游戏里的及时反馈机制,你打得越多,就打得越好,越能体验到成就感和满足感,这种感觉又激励你打得越多,从而进入正向循环。而学习的反馈机制就弱得多,你学或不学在短期里面没有多大的区别,得等到考试的时候才有一个比较大的反馈。
Scratch 图形化编程的反馈周期虽然比不上游戏,但每堂课都能做出一个作品,也足够激励小朋友不断去学习了。在我上课时,小朋友常常是迫不及待地想学习新的知识,因为他们想实现一个很酷炫的功能 。孩子为了玩 Scratch 玩得越好,就得认真学习,学得越认真,就玩得越好,这种孩子主动学习的过程,让孩子开始进入类似于游戏的 “玩得越好,学得越好,学得越好,玩得越好” 的良性循环,而这种体验在孩子的学习过程中是很宝贵的。不用催着或逼着孩子去学习,而是孩子主动要求学习,不知道习惯了 “孩子是不爱学习的,不督促孩子学习孩子就会去玩” 这种想法的家长碰到这种情况会不会有点受宠若惊,事实上,我上课时很多家长把学 Scratch 当做给孩子的奖励。想想还是有点小自豪。(PS: minecraft 是个不错的游戏,国外不少老师会拿 minecraft 上课,家长可以引导但不要禁止孩子玩。)
当然这些能力的养成并非一朝一夕,学习的过程也不可能一帆风顺,它需要老师循循善诱的引导和家长的默默鼓励。编程和其他项目不同的一点在于 “对错误(或失败)的宽容” 或者说 “它常常避免不了错误(或失败)”,这不是指最终的作品允许出现逻辑错误或漏洞(恰恰相反),而是指在过程中它允许错误存在,而且很容易进行调试和修改。即使是一个编程高手,也是在无数的错误和修正中成长起来的。很少有程序能够写完后一按”运行“就大功告成,往往测试时就会出现不少的“错误提示”,然后必须通过不断地debug(查错调试)去完善它。
这个 debug 的过程至关重要,需要经常引导孩子去完成这个过程,在这个过程中孩子必须去思考 “为什么会出现这个错误”,“出现这个错误的可能原因是什么”,“怎么做能验证是由这个原因引起的”,“如果是这个原因引起的,应该怎么去解决”,这是一个完整的 “分析问题 —— 测试问题 —— 解决问题” 的过程(好在 Scratch 图形化编程让这个 debug 的过程变得非常可见可得,调整右边编程区的积木左边舞台区的角色就会有对应的动作,这让 debug 变得没那么磨人和抽象),不断地去进行这种分析问题解决问题的过程训练,一些对孩子学习至关重要的能力也慢慢地养成了。
有过这个过程的孩子,相信会比在刷题训练中精疲力尽的孩子学习后劲更足,效率更高。需要警惕的是,有些培训班的老师本身能力不足,对教育的理解出现偏差,课程设计得也不够合理,在教学过程中容易沦为老师操作学生模仿的情况,这种情况下虽然孩子能更快地做出作品,做完后孩子有成就感家长也满意,但忽略了过程的学习往往只是自欺欺人。
以上就是我推荐家长们让孩子接触一下少儿编程的两点原因。由于竞争激烈及教育体制等原因,中国家长在考虑让孩子学什么的时候,常常以 “是否对孩子升学有帮助” 为衡量标准,这让中国家长一直背负着 “功利” 的坏名声,也让孩子们的成长有点 “拔苗助长” 的意味,许多培训班也乐得利用家长的这种焦虑和功利心态,在宣传上不断强调这一点。少儿编程的宣传为了迎合家长,也慢慢强调编程对孩子以后升学可能产生的种种好处,我并不太认同这种做法,这容易让家长支持孩子学习编程的心态也变得急功近利,这不利于孩子的成长和兴趣养成。
之所以写这篇文章推荐家长让小朋友抽出一点时间去学习少儿编程,并不是想让你家的孩子比其他孩子跑得更快,而是因为 Scratch 能帮助孩子表达自己,同时也能帮助他们培养起一些受益一生的能力。不过,现实情况确实不太乐观,现在中国在少儿编程方面的教育可以说是完全落后,Scratch 统计的结果 显示中国目前学习 Scratch 的人数只有 20 万不到,而美国和英国人口远少于中国,却分别有 近900万 和 近200 万的学习者。所以,如果你家孩子开始学习 Scratch 了,从世界范围来看,也不是跑得比别人更快了,而只是做到没有落后于其他小孩 罢了。在中国推广少儿编程的学习还是路漫漫啊,吾将上下而求索。
作者:许毅松
来源:简书
,