第1章 如何学习Scratch
1.1 学会编程好处多多
大人编程看薪水,孩子编程看兴趣。
有很多科技界的伟人和名人从小开始学习编程,如乔布斯11岁开始编程,创办了苹果公司,成为一代传奇领袖;比尔·盖茨13岁开始编程,创立了微软,31岁成为世界首富;扎克伯格10岁开始编程,高中开发的程序被50万美元收购,创立了Facebook,市值曾经突破4000亿美元;埃隆·马斯克10岁开始编程,12岁设计了名为Blastar的游戏,2004年创立了特斯拉公司。
尽管我不认为每个人都需要精通编程,不过我总鼓励身边的朋友在有空的时候学习编程,学习一些基本的逻辑分析技巧和程序排错思维。学习编程并非是为了成为程序员,而是培养人冷静的思考方式和严谨的逻辑化思维。要有冷静的思考方式,程序行为对与错的最终判定者是计算机,无论你怎么信誓旦旦地说自己的程序没问题,错了就是错了,不为人的主观意念所左右;要有严谨的逻辑化思维,程序里处处都是因果,环环相扣,因而需要思考各种因和所导致的各种果,需要全面思考、清晰分析。
学习编程对孩子的帮助很大,可以归纳为以下10点:
1 强化孩子的逻辑思维能力。
编写程序最重要的是如何把大问题不断分割成小问题。
如同计算这个加法题:9+8+7+4+5+9=?,如果你不能看一眼就得到答案,那么可以将它拆解成9+8、+7、+4、+5、+9五个加法题一个一个解决。
在编程中,孩子要思考如何把代码合理地安排在整个程序中,让程序流畅地处理输入、演算、输出,这个过程对孩子分析事物的逻辑性有极大的帮助。
2 培养孩子的专注力和细心度。
修改Bug是每一个编写程序的人的必经之事,无论是大人还是小孩都不例外。有时只是少输入了一个字母或在某一行末尾少了一个分号,就会造成程序大乱,更别说逻辑分析问题上忽略的某种状况和陷阱。所以,在编写程序的过程中,排错是无法敷衍了事的,这个过程能有效改正孩子马虎行事的毛病,避免当一个“差不多”先生。
3 提高孩子的耐心。
当父母的一定遇到过这种情况,带孩子去吃饭,孩子怎么也坐不住,总是跑来跑去,到处吵闹玩耍。这时,有的人会拿出手机当作游戏机,孩子的注意力瞬间就会被拉回来,开始安静地坐在位置上玩耍。以游戏项目作为课程就是运用这种特性,让孩子在游戏中学习,寓教于乐。但是编写游戏和玩游戏有很大区别:编写游戏可以很好地锻炼孩子延迟满足感的能力,提高耐心,从编写游戏到玩游戏需要经历一个比较长的过程。同时,学会编写游戏的小朋友会在游戏过程中融入更多的思考,游戏视角会有明显变化。
4 增加孩子的抽象思考能力。
其实学习编程就像学习外语一样。如果说学外语是为了跟外国人沟通,学习程序就是为了跟计算机沟通。更有趣的是,你碰到外国人不会说外语还可以用手比划,跟电脑可不行。这意味着孩子在学习的过程中需要一种化具体为抽象的能力,让程序能够按照孩子想象的方式运行,这是集思广益的过程。让孩子发挥无限想象并动手实践,让不懂得思考的电脑也能了解与表达抽象的事物。
5 提升孩子整理信息、融会贯通的能力。
程序是一堆电脑指令的组合,好比上小学时我们查字典学汉字、学成语,之后学习如何利用习得的汉字、成语组成句子,进而撰写文章一样。程序中的基本指令就像是汉字,可重复利用的方法或对象就像是成语。最终要完成项目,就必须融会贯通、学以致用,确保程序在执行中不会出现不可预期的错误。
6 提升孩子国际性的沟通能力和竞争力。
显而易见,现在哪一个行业可以不用电脑?如同先前提过的,编程语言已然成为一种重要的沟通工具,不但可以跟电脑沟通,还可以跟所有运用电脑的人沟通。孩子在幼时接触的环境往往跟以后的发展有极大的关联性,如果不想跟世界脱轨,那么最好尽早让他们了解程序或编程是怎么一回事,培养他们面对国际和未来竞争的能力。
7 让孩子学会团队合作和共同学习。
在适当的教学课程设计下,学写程序就像玩游戏闯关一样,同学彼此讨论破关攻略。结对编程,你不会,我教你;我卡关,你帮忙;我设计,你闯关。同时,在互动中增进情谊,学习如何利用团队的力量解决问题。比起老师在讲台上单方面的讲课,同学之间的探讨更容易提高学习效率。
8 训练孩子的空间思考能力。
在编程中,控制游戏人物的过程是训练空间思考能力的一个很棒的方式。仿佛孩子自己在高低起伏中身陷迷宫,在闯关角色中置身于编程世界,在游戏中学习,明白方向感和立体的空间架构。
9 增进孩子解决问题的能力。
面对一道道关卡的挑战,孩子会不断思考如何利用学到的知识、程序达到闯关的目的。一旦养成这样的习惯,在碰到生活中或其他课业的问题时,自然会试着自己解决。父母只要给予适当的工具和提示,让孩子自己动手、动脑去完成。
10 Learn to code, code to learn。
学习编程,训练编程的思考方式(Computational Thinking),如同学习阅读一样,在知识爆炸的时代,这是一种基本的能力。我们从小学习怎么阅读,并用阅读学习更多知识;而从小学习怎么写程序、控制电脑,了解的是一种新的学习方式,并且在学习写程序的过程中,刺激孩子的学习积极性。父母再也不用逼着孩子学习数学,因为当他要完成按钮、人物、得分、方向的同时必然需要用到许多数学的技巧,让孩子在编程的同时自主学习。另外,还可以提高孩子的英文能力,编程让接触英文成为自然而然的事情。其他的科目(如音乐、艺术、文学等)一样可以运用在编程的过程中,也就是我们所说的code to learn。