学习编程有助于提高孩子的思维能力,越来越多的家长也已经意识到这一点。但怎样才能让孩子轻松入门并产生对编程的兴趣呢?电气工程师Warren Sande和儿子Carter一起,编写了一本引领孩子们走进编程世界的书,而该书最大的特点就是通过浅显易懂的语言激发小读者们对编程的兴趣和好奇心。在接受外滩君收集时,Warren说“学习编程的最好方法是不断尝试”。
“我觉得每个人都应该学习一门编程语言。学习编程教你如何思考……我把计算机科学看成是基础教育,每个人都应该花1年时间学习编程。”这是早在十几年前乔布斯曾说过的一段话。
在当今的数字时代中,计算机已经渗透到了我们生活的各个方面。家长们也逐渐开始纠正“学编程=搞IT”的误区,慢慢了解到学习编程能够锻炼孩子的思维能力,对孩子学习数学和物理等其他学科都会有帮助。
而从趋势看,中国正在逐步把STEAM教育纳入基础学科,其中,少儿编程正是STEAM教育的一个分支内容。例如,2016年,教育部印发的《教育信息化“十三五”规划》中,将信息化教学能力纳入学校办学水平考评体系。可见,编程将逐渐在中国的青少儿教育中占领至关重要的一环。
基于上述原因,近年来,各种青少儿编程的相关行业呈现出越来越受家长欢迎的趋势。不过,编程对于年纪尚小的孩子来说,不免有些枯燥;市面上五花八门的培训班虽多,却也是良莠不齐;而大多数的计算机书籍对于孩子来说都过于艰深。许多家长不禁苦恼,怎样才能让孩子在入门阶段就对编程产生兴趣?有没有一种方法,能让孩子轻松愉快地入门?
为什么不和儿子一起写本书呢?
《父与子的编程之旅——与小卡特一起学Python》
作者: Warren Sande / Carter Sande
译者:苏金国 / 易郑超
出版:人民邮电出版社
作为父亲,电气工程师Warren Sande也遇到了相同的问题。他毕业于加拿大贾那大学电气工程系,一直在面向计算机初学者教授软件基础课程。他的儿子Carter Sande在五六岁的时候就对学习编程产生了浓厚的兴趣,到了小学阶段时,Warren发现他根本找不到一本合适的书来满足他高涨的学习热情。他的妻子给他提了一个建议:“你应该写本书,你们两个可以合作来完成。”
于是,Sande父子真的开始考虑这本书里应该写点什么,两人一起构思每一章的大纲,编写示例程序,想方设法力求更风趣、更有意思。Carter更是舍弃了每晚的睡前故事时间,全心投入这本书。他甚至会经常提醒爸爸:“爸爸,我们好几天没有写书了!”经过他们的努力,终于让《父与子的编程之旅——与小Carter一起学Python》这本书得以问世。
《父与子的编程之旅》是一本可供家长与孩子共同学习编程的入门书。Sande父子以Python语言为例,在轻松的氛围中介绍了编程的基本概念,从安装、字符串和操作符开始,到条件语句、函数、模块等进阶内容,最后还加入了如何用Python实现游戏编程以达到实际操作的目的。书中言语幽默风趣,简单明了,让这些知识听起来备感亲切。为了让学习过程更有乐趣,细心的作者还配上了孩子们都喜欢的可爱漫画和经过运行测试的程序示例,让学习者在轻松愉快之中跨入编程的大门。
而豆瓣评分8.5(满分10分),Amazon评分四星半(满分五星),曾获得2011年Jolt图书生产效率大奖,足以说明这本书得到了广泛的认可,甚至连Python的发明人Guido van Rossum也在自己的博客上对这本书作了推荐。可以说,这是一本最适合孩子编程启蒙阶段在游戏中学习的编程书。
年仅18岁的编程“老司机”
Carter今年刚满18岁,他已经被UC Berkeley的电机工程专业录取了。从5岁时对编程产生兴趣开始,Carter就一直在做跟电脑相关的事情。Carter也坦言,在自己还是一个孩子的时候,编程对他最大的吸引力就是来自于游戏。“我最近刚刚给任天堂的游戏机GAME BOY ADVANCE做了一个小小的视频游戏。其实这是我以前做的一个手机游戏,现在我试着做了一个GBA的版本,这是一个很有趣的挑战,因为GBA的容量更小,运行更慢,所以要做一个游戏其实更难。但我很享受这个过程。”
▲ 自由编程俱乐部社区CoderDojo
虽然Carter年纪尚小,但他在编程教学方面,却可以称得上是经验丰富的“老司机”了。父子俩在多年前就已经成为了CoderDojo(CoderDojo是全球志愿者领导的为7-17岁年轻人创设的自由编程俱乐部社区)的志愿者,帮助教社区里的孩子们入门编程。Carter对此很自豪:“我当时10、11岁左右。当我去给别人上课的时候,我其实是那里年纪最小的,我的学生里大多数年纪都比我大。但是,并不是因为我是个小孩就什么都不懂,相反我可以帮助任何人。”
据Warren回忆,从五六岁开始,Carter就已经表现出了对电脑的浓厚兴趣。“一开始他只是在玩电脑,浏览一些网站,后来他开始想自己做一个网站。他做的第一件事是HTML,用来做很简单的网页。之后就开始学真正的编程。这是我们想要写这本书的原因。HTML是他自学的,我自己都不知道怎么做HTML。我们在书里写的学习过程,就是他自己的学习方法。”
不断试错是学习编程的最佳捷径
作为一本面向孩子的教科书,首先需要的就是能够时刻抓住孩子的注意力,让孩子一直保持好奇心和求知欲。粗略浏览这本书,第一印象就是图文并茂。记得以前上学时我们的电脑课教材吗?都是大段大段的文字和数字,而过多的文字堆垒很容易让人产生厌倦情绪,也很容易让孩子产生放弃的想法。小Carter对此更是感同身受,所以他和爸爸一起设计了一个自己的卡通形象,当Carter发现了有趣或不寻常、不合理的地方,就通过这个卡通人物说出来。
▲ 书中的插图
书中丰富有趣的插图不仅仅让孩子感觉到寓教于乐的轻松,同样可以让成年人过目不忘,达到最好的学习效果。凡是稍显复杂的概念,书里都尽可能用漫画比喻来辅助说明。比如,用铁轨上的火车来说明各种选择语句,用转圈的小汽车来说明循环的概念,而用踢皮球闯祸的学生来说明“导入命名空间”,令人忍俊不禁。
在涉及术语的地方,书中都用了亲和简单的话语来说明。比如,书中用有趣的语言来解释“语法高亮”,用生活中的大白话来讲述“垃圾收集”;但是书中既没有出现“高亮”,也没有出现“GC”这些术语,以减少学习时的心理负担。
为了让入门者加深对这些术语和概念的理解,Sande父子在每一章中引入了大量代码示例,让读者可以照着示例自己操作。对于编程来说,一开始照猫画虎写代码是必不可少的实践,写得多了,对代码和语言的理解也会逐步加深。书中注重编程的实践性,鼓励孩子大胆尝试,多多练习。就像Warren说的:“学习编程没有一个结束的日期,所以永远有东西去学,多练习就好了。”
Sande父子深知,对于孩子们来说,纯粹的数学计算并不是那么有趣;而能够做出一个看得到的东西,则是一件很有成就感的事情。因此,他们在书中早早引入图形用户界面(GUI)以保持新鲜感,在书中大约四分之一的篇幅处就告知孩子们“游戏时间到了”,让孩子们可以自己敲击代码来“创造”一个图形化的小游戏,这样的设计可以很好地吸引住孩子们的好奇心。
同时,书中还加入了很多尝试过程中可能会出现的错误说明。父子俩都认为,犯错误然后搞清楚怎么找出错误并改正,是最好的一种学习方法。“在编程中,除了多费一点时间,你的错误通常不会带来其他损失。所以完全可以犯很多错误,当然也会获得很多教训,你会发现这很有意思。”
▲ 小Carter演示怎样使用PythonCard
以下是外滩君对Warren和Carter父子的收集。
B=外滩教育 W=Warren C=Carter
B:在你们看来,编程具有怎样的重要性?
W:当然,电脑在现在很重要,所以编程是一门很有用的技能。即使你不想成为一个程序员,它在很多方面能帮助你,比如让你理解你在使用的其他程序,即使是一点点的编程知识,也能让你了解到电脑是如何运作的。另一个方面是,很多人说学习编程的过程也是学习怎么解决问题的过程,这我很同意。因为你要有一个明确的方法告诉电脑该做什么,在程序中经常会有BUG,所以你必须得学会解决问题,找出哪里出了问题,知道怎么去纠正它。
C:编程和数学具有很大的相似性,我想最大的一点,也是学所有编程语言都需要的,就是严密的逻辑性。如果有一点小小的问题,比如你放错了一个逗号的位置,如果是在别的地方,书里或者文章里,这都没关系,但如果是编程,就需要你看到所有的细节。我进行了许多练习才学会了这种技巧。
B:Python相比其他编程语言有什么优越性?
W:在我见过所有的计算机语言中,Python最易读、最易编写,而且是免费的。另一方面,Python并不是一个“玩具”,学了之后你不用转换语言再去学一种“真正的”语言来编写“真正的”程序。很多工作都可以使用它完成。还有一点,Python可以在各种不同类型的计算机上运行,包括windows电脑、苹果电脑和运行Linux的计算机。学习用Python编程可以让你有一个很好的起点,有了这个基础,将来学习任何语言都会很轻松。
C:对于孩子来说,Python用起来很简单,它设计的方式就是让你逐渐的入门。有些语言比如JAVA,要运行一个很简单的程序需要知道的东西也很多。用Python你可以学一个类型的指令,然后下一个,再下一个,直到学会所有的。相比其他一些语言,它看起来也更好看,更简单,C++之类的对孩子来说都更难懂。
B:学编程对孩子是否有益?
W:每个孩子都应该学会使用电脑。只要学到某个程度,即使只是很基础的程度,就像我们书里的程度,都是一个帮助你更好理解电脑运作的方法,至少你可以领会你每天使用的一些东西是怎么工作的。
C:编程在许多不同方面帮到了我。首先,学习编程对我在理解数学方面很有帮助。另一点有趣的是我可以写一些程序帮助我学习。比如,如果我需要背单词,或者数学公式,我就会写一些小程序去试着帮助我记忆,直到对了为止。
B:如何引起孩子的兴趣?
W:第一是展示给孩子看程序是如何帮助到他们的,比如在学校的学习,或者家庭作业等等。另外就是展示它有趣的一面,尝试一些视频小游戏,让学习编程看起来更有趣一些。
C:我同意爸爸说的,另一点我觉得孩子都很喜欢做东西。小孩都喜欢做有创意的事情,表达他们的想象力,这是一个方面,如果你能展示出编程有这些特点,看看这些你能做出来的东西,多酷啊,这是一个很好的引起孩子兴趣的方式。
B:Carter遇到困难时怎么办?
W:我是不会直接告诉他要怎么做的。因为这违背了学习编程本身的目的。当他们在学习一些东西的时候,最好的方法是不断尝试自己去做。我会提问题而不是直接告诉答案,比如接下来会怎样?你看到了什么?你试过了哪些?你接下来会尝试怎么做?问他很多的问题让他来思考怎样能解决问题。如果他们困住了,你可以给他们指出一个正确的方向,给一些意见,比如你可以试试这个或者那个,给他们一些尝试的选择,这样他们可以尝试,看看哪些可能会成功。
C:我很同意。一旦你学会了一些编程的东西,怎么去使用它,编程对我意味着不断的尝试直到有了新发现,而不是直接知道一个正确的答案。很多时候我会问爸爸一些意见和建议,还有很多时候因为问题太复杂,他可能也不知道怎么办,我们就会一起解决问题。
本文转自微信公众号“外滩教育”,作者孙康宁,原标题为《这对父子合力写了本编程畅销书,原来犯错才是学好编程的捷径》。
2、芥末堆不接受通过公关费、车马费等任何形式发布失实文章,只呈现有价值的内容给读者;
3、如果你也从事教育,并希望被芥末堆报道,请您 填写信息告诉我们。