前言
在我刚接触Scratch的时候,提起它没人知道,市面上只能买到寥寥几种图书,而且其中大部分都是译本。偶尔与专业人士探讨起来,却受尽了鄙视:“这也能叫编程?玩具而已!”臊得满脸通红,只好掩面而逃。而如今,仅仅过去几年,各种与Scratch相关的网站、图书、培训多如牛毛,各种信息让人应接不暇。专业人士与他人交流时,开口Scratch、闭口图形化编程,同时讲解内容也深了很多,各种公式、N种算法……要多难有多难,要多夸张有多夸张,恨不得用其解决世界上的所有问题。
Scratch不是一个简单的玩具,也不是无所不能的“神”。虽然它非常好上手,“友好”到一年级的小朋友也会偷偷在学校机房打开来玩;但是它也非常强大,可以完成水平很高的游戏作品。不过大家容易忽略的是,尽管它很简单,一个8岁的孩子起码也需要一个学期(大约16个课时)的学习来掌握它的使用方法;尽管用它制作的游戏可以很酷炫,但是由于它单维数组等先天缺陷决定了其背后的实现方式非常烦琐。
Scratch真的像本书中的喵喵呱一样,看起来是猫,张嘴却像青蛙呱呱叫。
不止有一位老师问我,为什么孩子只在开始几节课对Scratch有兴趣,后来就厌倦了呢?孩子们很喜欢Scratch作品,但我觉得孩子们喜欢的是作品,而不是它背后的算法。也许相关的作品、课程显得Scratch很强大,但大家可能都忘了Scratch为什么会流行,其实并不是因为它强大。从某个方面来说,任何编程语言都比Scratch强大,但没有一门编程语言像Scratch这样受孩子欢迎。
所以,Scratch是编程工具,但不能按教编程的套路来让孩子学习。
MIT(美国麻省理工学院,Scratch的发源地)创造了Scratch,想使编程这件事情变得足够简单,可是现在大家又处心积虑地往复杂、很难里弄。从培养编程技能的角度来说,也许这么做是对的;可是从孩子的角度来看,却不是这样的。教育界中出现的“喜欢”有3种:老师喜欢、老师觉得孩子喜欢、孩子真的喜欢。我想做到让“孩子真的喜欢”,所以在本书中做了一点努力,编了一些故事,并把故事讲给我的女儿和我的学生听,他们很喜欢。另外,本书舍弃了些许常规案例,压缩了讲解积木功能的内容篇幅,取而代之的是相对完整的情节、简单有趣的小例子。可以说,在保证这还是一本编程书的前提下,我尽量使书中故事的比重最大化。不管孩子是否喜欢编程,起码这本书会让孩子觉得比较有意思。至于编程例子,都融入了故事中,边看故事边学习编程。如果要给本书下一个定义的话,那么这可能是一本故事性很强的编程书。所以,当付编辑问我这本书的读者人群时,我踌躇了一下:大概,有颗童心的人都可以读吧。
本书包含9章共27节,看起来内容好像不少,但让人觉得困难的内容几乎没有,可以让读者看得明白、做得出来。另外,也不要觉得这本书太单薄,它应该只是你漫漫编程路上的第一块垫脚石而已。书中的所有例子都很简单,正常来说每个例子的制作时间不会超过20分钟,但其又很完整,起码能实现一个基本完整的功能。这样能在保证孩子有兴趣的基础上,让他或她学到或者巩固编程知识。如果真的感觉哪个例子做起来有点困难,嗯,跳过去,没事的。坚持做完书上的大部分例子,也许你就会对Scratch恍然大悟。
没有编程基础,对这个世界还有点好奇心,想简单了解编程和Scratch的读者,看看这本书吧,我相信你不会失望。至少,它可以让你知道,编程这件事情并没有很难。
由于本人水平有限,书中难免有疏漏和不足之处,恳请读者朋友不吝指教,多多批评、指正。