为什么编程启蒙要从学Scratch开始?一篇文章说透

“最适合的”编程语言,真的存在吗?

其实选择哪种编程语言不是重点,激发孩子的学习兴趣,培养孩子的逻辑思维,掌握编程思想,学会用编程的方式去发现问题和解决问题才是重点。

...

如果孩子能够熟练掌握编程中变量、条件、循环,还有函数等基本的编程概念,并以一种语言编程成功,这时再用另一种语言来编程就不难了。

转换编程语言虽然不像打个响指那样容易,但只要了解了其他语言的语法就能快速上手,因为编程的核心不在于语法,而是解决问题的思路和方法(算法)。

...

因此,我们推荐零基础的孩子,先从 Scratch 语言开始学起。

有的家长不理解,觉得:

“那种拖块看起来像玩游戏,不如 Python、C++ 这样的代码编程语言高级,对于孩子太简单了。”

”现在是人工智能时代,直接让孩子从Python学习,以后前景更好。“

“让孩子学习C++,以后考个信奥对升学有帮助!”

其实语言并没有高级低级之分,只是各自应用的场景不同,盲目追求编程语言的复杂度,是不可取的。

对于一名零基础的孩子来说,培养编程的兴趣很重要,直接上手代码编程不是不可以,只是这样的学习会让孩子觉得枯燥,容易打消他们学习编程的积极性,甚至产生抵触。

如果真的想让孩子学习编程,那么他的学习路径应该是循序渐进的,孩子刚开始接触编程时,重要的有两点。

一是容易上手,让孩子能编程用做出东西,体会到编程的乐趣,培养孩子对编程的兴趣。

二是把精力尽量用在学习编程逻辑上,而不是编程语言的语法上。因为编程逻辑,才是编程的核心,真正锻炼思维的东西,而编程语⾔只是我们为了完成目的使用的工具。

Scratch的 4 个特点,非常好地满足了这 2 点要求。

...

(1)Scratch特点1:入门容易

Scratch使用了图形化的呈现,通过拖拽代码块进行编程,过程很像搭建“电子积木”,对刚接触编程的孩子来说,上手容易、门槛低。

...

从上面这张图我们可以看出Scratch更直观易懂,而Python、C++则需要具备打字能力,和一定的英语基础。

尤其C++,语法相当复杂,还有很多与编程逻辑相关的繁琐细节。由于C++语法过于复杂,很多孩子学C++时理解不了它的语法,导致孩子只能抄代码,没有实际独立创作的能力,最终连逻辑也没能学习到。

这就像我们想教孩子学骑车,但我们一开始就给了他一辆摩托车,本想为他提供便利,可孩子骑不好摩托,结果最后连自行车也没学会。而如果我们一开始给孩子骑自行车,他是能学会的,再上手摩托车就容易多了。因此,一开始就把入门门槛抬得太高,导致孩子入不了门,后续的学习就更困难了!

(2)Scratch特点2:及时反馈

孩子使用Scratch时,点击单个代码块,就能看到“移动”、“转向”、“切换造型”等代码效果;通过一些简单的操作就能完成一个小故事、节⽇贺卡、小游戏一类的作品。

这能让孩子在刚接触编程时,就体会到自己创造出作品的成就感,获得精神上的鼓励,更容易激起孩子的学习兴趣,有信心迎接后续的挑战。

(3)Scratch特点3:避免了代码语法错误

Python和C++之所以让人感觉比Scratch难,是因为Python/C++的代码语法更繁琐,在完成一个相同逻辑难度的作品时,Python/C++比起Scratch,需要花费更多的时间在解决语法问题上。

过早学习代码语言无形中浪费了很多时间,俗话说:“思考5分钟,找茬2小时。”比如,把英文的分号写成了中文的分号、把双引号用成了单引号、少写了一半括号等都会造成程序报错,无法正常运行。

...

而这些繁琐的语法问题,对孩子理解编程核心逻辑并没有任何帮助,却总是需要孩子花费时间去解决,就像是我们在走路时,总得花很多时间去倒掉鞋子里的小石子,而因此忽略了沿途的风景。

而Scratch是用拖拽代码块的方式来编程的,从根本上就不需要孩子去关注拼写错误、标点错误等无意义的语法问题,极大减轻了孩子对编程的挫败感,而让他们留有更多时间全身心专注于理解编程逻辑上,这才是对锻炼思维真正有用的部分。

另外,由于Scratch把编程的常规语句都做成了代码块,孩子只需要根据自己梳理好的编程逻辑挑选符合要求的代码块拖拽就能使用,不用自己一个字一个字地敲出来,大大提高了孩子的学习效率。

(4)Scratch特点4:高上限

有的家长看到Scratch语法简单,就误以为Scratch只能做出简单的作品。其实编程的核心是逻辑和算法,编程语法只是工具,作品的复杂度是由编程逻辑决定的,而不是由工具决定的。

现在很多热门软件和游戏,虽然它们本身不是用Scratch开发的,但同样可以用Scratch还原出来,实现相同的效果。

...

另外,Scratch对于创新的鼓励以及在图像创作、声音编辑和项目混制方面的功能优化,让它在成为各年龄段孩子首选编程语言上变得理所当然。

较之被称为“编程语言”,它更希望被定位为一个绘图工具,一个动画制作工具,或是一个故事与游戏创作工具。

学习了Scratch孩子,更愿意去尝试代码编程,因为他们觉得那意味着长大,只有“真正的编程”才会被行业采纳。

至于Python 和 Scratch 哪一个更适合小孩子学习。我的回答是:低年级的孩子建议学 Scratch,初中左右可以考虑直接学 Python。因为 Scratch 的图形化更能激发学习的兴趣,而 Python 的好处在于,以后可以拿来真刀真枪的做项目,甚至养家糊口。

但其实在任何年龄,如果你不是那么急切地想掌握一门实用语言,Scratch 都是值得花时间尝试的。虽然它的初衷是给小孩子用的,但也完全适合一个对计算机毫无基础的成人用来了解编程思想和开发流程。

在 reddit 有这样一个帖子:

...

...

大意就是:一个网友说,如果你完全没有编程经验,强烈推荐从 Scratch 开始入手。

他自己就通过学习一阵子之后,很快做出了一个自己的游戏,这给他继续学习编程带来了很大的动力。

另一个网友评论说,有不少会一点编程的人会瞧不起 Scratch,觉得它算不上一门语言。

但事实上,很多编程初学者因为搞不清变量、循环、函数等概念而放弃。

而真正在编程时,我们 90% 是在处理逻辑和解决问题,而不是去生搬概念。

如果从逻辑出发来教授编程,那么可能对于学习者来说是更合适的。如果你理解了程序背后的逻辑,之后再学习其他语言也是很容易的。