在上一篇文章「家长如何帮助孩子选择少儿编程学习的编程语言或编程工具,如何选择少儿编程课程」里我们提到了:孩子学习少儿编程时,编程语言或工具并不是很重要;「编程」本身不是少儿编程学习的重点,少儿编程的重点应该是接触并开始理解计算机科学的一些基本概念,逐步了解这门科学;想通过少儿编程学习,像成年人一样学习某个编程语言本身,并不现实,也是没有必要的。本文会深入讨论这一话题,并通过一个例子来解释一下,为什么是这样。通过阅读本文,你也可以更直观的理解学习少儿编程的真正目的是什么,以及有没有必要学习少儿编程。本文内容包含以下几个部分:

1. 当我们在说「编程」时,我们到底在说什么?
2. 举例:一个游戏开发程序员都要学习哪些技能
3. 孩子有必要学习少儿编程吗?

1. 当我们在说「编程」时,我们到底在说什么?

首先来说,在大学里并没有一个叫做「编程」或是类似「 Python 开发」的专业。我们通常说的「编程」(Programming),只是计算机科学(Computer Science)所涵盖的一个小的主题。

计算机科学,又被称作「计算机科学与技术」,在国内跟数学、物理一样,都是国家一级学科,下面包含:信息安全、软件工程、计算机软件与理论、计算机系统结构、计算机应用技术、计算机技术等专业。计算机科学与数学(如数理逻辑、范畴论、域理论和代数)有着紧密的联系。虽然「计算机科学」名字里包含「计算机」,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究,所以有的地方更倾向于使用「计算科学」(computing science)这个更准确的名字。

计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。
—— 著名计算机科学家 艾兹赫尔·戴克斯特拉

计算机科学的研究领域包括:计算理论,算法与数据结构,编程方法与编程语言,以及计算机组成与架构。「编程」只是其中的一小部分。虽然在大学里也会学习一两门编程语言,但这种编程语言通常不会是最流行的编程语言,很多毕业生走上工作岗位也并不会被直接用到。编程更多的是用来实践计算理论、算法与数据结构以及编程方法的工具。

这就是我们说「少儿编程」不是编程的原因。比起编程,它应该包含更多的内容。孩子学习少儿编程时,编程语言或工具并不是很重要。「编程」本身不是也不应该是少儿编程学习的重点,少儿编程的重点应该是接触计算机科学的一些基本概念,逐步了解这门科学。想通过少儿编程学习,像成年人一样学习某个编程语言本身,并不现实,也是没有必要的。

2. 举例:一个游戏开发程序员都要学习哪些技能

下面我们通过一个例子,来看一下游戏开发程序员都要具备那些技能。

Scratch 游戏开发

上面是一个 Scratch 游戏编程的例子,虽然看起来要写不少代码,但孩子通过一个学期的学习也是可以做到的。这么看来游戏编程也没有想象的那么难。但真的是这样吗?

Github 项目:游戏开发程序员学习路线 

Github 上有一个获得了 1 万多颗星的名为「游戏开发程序员学习路线」的开源项目,通过这个项目,我们来看一下一个真正的游戏开发程序员都要学习哪些内容:

游戏开发程序员学习路线 (图片来源见图片文字部分)

从这个路径可以看出,实际的游戏编程涉及到的领域有很多。「编程」本不是我们想象的编程,「少儿编程」也不应只是编程。回到我们的问题:学习少儿编程选择什么编程语言重要吗?哪一种编程语言或编程工具并不重要,因为它只是一个工具;而通过这个工具,孩子有兴趣接触到计算机科学的一些基本概念,并逐步了解这门科学,这才是真正重要的。

3. 孩子有必要学习少儿编程吗?


计算机科学虽然出现时间不长,但已然是一个非常复杂的学科。计算机科学在很短的时间内已经对现代社会做出了极大的贡献,并带来了深远的影响;即便如此,即使像美国这样的发达国家也并没能做到在 K12 教育阶段全面普及计算机科学的学习。但这并不代表孩子没有必要学习少儿编程。

要培养一个编程工人,也许没有必要。但要想仅仅通过大学开始的计算机科学教育来培养顶尖的计算机科学人才,是有困难的。这也是包括中国在内很多国家在这方面积极推进教育改革的原因吧。在未来,计算机科学方面领先的国家必将领先世界。对国家如此,个人又何尝不是。

了解更多少儿编程相关信息,请参考:
为什么要学习少儿编程,学习少儿编程有用吗,不做程序员有必要学习编程吗?
家长必读:为什么要学习少儿编程,编程需要学习哪些内容,怎样学习编程
家长如何帮助孩子选择少儿编程学习的编程语言或编程工具,如何选择少儿编程课程

了解更多少儿编程相关科普文章,请参考:
少儿编程之计算思维的新定义:计算思维是我们想要最小化的摩擦,除非它是生成的
少儿编程之编程思想介绍 ——  思想,作为一种技术
少儿编程之 Kill Math 项目介绍:让数学不只是符号
少儿编程之 Dynamicland 项目介绍:可视空间与设计工坊
少儿编程之二进制:计算机二进制的历史,二进制与十进制的转换及相关亲子互动游戏
少儿编程之随机数:计算机里的随机数,真随机数与伪随机数

了解更多校外课课程介绍,请参考:
新用户指南 - 校外课网站编程学习环境及少儿编程课程介绍
Adafruit 可穿戴编程开发主板 - 用户使用指南
离线学习少儿编程,一些不使用电脑也可以学习编程知识的亲子互动游戏

扫码下面二维码,关注我们的公众号,阅读最新文章或观看更多视频教程:

校外课少儿编程 公众号