让孩子学习编程,意义何在?-少儿编程之家

史蒂夫·乔布斯(Steve Jobs)曾经说过:“这个国家的每个人都应该学习编程,因为它教会了你如何思考。”

 

但是,为什么呢?

 

今天在学校里的孩子们被教授各种各样的东西,从核心数学到生物,从诗词歌赋到英语作文,作为国家的未来,孩子们每年都要学习数十个个学科的知识,然后接受测验,循环往复。但是当你往深处思考时,通过这种模式,孩子们就能在他们未来道路上走得更远了吗?孩子们能如何从中获益呢?

让孩子学习编程,意义何在?-少儿编程之家

你可能在想,“又来了,这家伙又准备抨击教育制度了”,等等,先别激动,我并没有到“我对这事有意见,所以全部学校都要修改它们的课程”这种偏激的程度,远远没有。反而,我认为学校正在教授的科目内容非常好,但我只是认为计算机科学和信息技术学科有点被忽视和冷落,我认为我们需要让孩子们更早开始学习这类课程。

对我来说,这一切都归结为一个问题,我们是否为孩子传授了正确的技能?技能,而不是通过理论或可回忆信息形式的知识,而是实实在在的技能。对理论知识的实际应用的能力,以及人与人之间沟通协作的能力。

如果你今天走到大街上逮住一个孩子,问“细胞的发电站是什么?”,我打赌他们要么回答“不知道”,要么能迅速回答“线粒体”来向你发起反击。你会认为“很好,这个孩子生物学知识掌握得不错,将来某天可能会成为一个伟大的生物学家”。但是,如果你抛给他们一个与生物学领域有关的问题,然后让他们为这个问题给出解决方案,我同样敢打赌这个测试对他们来说更具挑战性,他们可能会花上成倍的时间,不得不多次尝试,甚至到最后完全放弃。

这是因为解决问题的能力与回忆知识的能力有很大的不同。

毕竟,人类的记忆被认为具有储存知识以备将来使用的无限能力,甚至心理学家乔治·米勒(George Miller)提出了一个概念,人类大脑有特定区域专门用于储存短期信息,以便快速回忆取用。然而,利用知识来解决问题是一个复杂得多的神经过程,涉及神经元内形成的大量电化学信号,这些信号沿着轴突移动,通过释放神经递质化学物质,在突触间从一个神经元跳到另一个神经元。听起来很复杂,对吧?

让孩子学习编程,意义何在?-少儿编程之家

不妨思考一下,在学校里,你有多少次被要求去解决一个问题。但首先,当我说解决一个问题时,我指的是:

  1. 给你提供一个问题的区域,从本质上看,它是你要解决的目标。
  2. 你有一个初始状态,也就是你当下面临的现况。
  3. 你有一个目标状态,那就是你最终想要达成的结果。

从初始状态到目标状态的方法是未知的,你需要通过构成一系列中间状态或指令来达到这个目标状态。每达成一个中间状态都将使你离目标状态更近一步,离初始状态更远一步。

所以对我来说,解决问题可以简单地定义为下面这句话中间的箭头:

初始状态 → 目标状态

(箭头表示尽管经历了大量的学习,依然可能会遭遇到许多挫折和痛苦,以及在Stack Overflow上不断搜索答案)

让孩子学习编程,意义何在?-少儿编程之家

回到点上,所以解决问题是有难度的,而编程则可以被视作锻炼问题解决能力的一种方式。

在任何编程项目开始时,无论项目规模大小,都会提供一个问题域或是需要解决的东西。举例说,“编写一个输出斐波那契数列的程序”或“编写一个输出数组中每个字符串的名称但不包含元音字母的程序”。本质上,您需要考虑如何处理每个问题,然后使用各种编程概念,如流控制、变量、输入和输出、结构、对象、字符串、数组、数学、函数等,以求解构问题并创建解决方案。也就是说,你需要利用到编程的核心概念来达到预期的结果。

现在我们已经把编程和解决问题联系起来了,接下来再让我们谈谈本文标题中的提问:为什么孩子应该学习编程?

让孩子学习编程,意义何在?-少儿编程之家

当孩子们学习编程时,他们也在学习如何解决问题。从接触编程之初开始,他们就被给予明确地初始状态和目标状态,并被要求思考创造出中间状态的方法,最终达到期望的结果。

在知识实践方面,我不认为有任何一个学科能与编程相提并论,你也许会说数学、物理不是同样充斥了大量的现实应用吗?话虽如此,但解决诸如“鸡兔同笼”、“计算电阻电压”之类的问题上,学校通常教授孩子如何用固有的方法或公式来计算,而非像编程一般,靠自己创造出合理的解决方案。所以,让年轻一代尽早接触这一方面的挑战,让他们运用这种方式思考,在未来遇到更棘手的问题时,他们也能应对自如,对吗?我相信,与其在孩子脑中塞入一大堆的知识,好让他们在面试工作时能对答如流,还不如教会他们在面对不同情境时能独立思考出相应对策,作为教育工作者,我更倾向于教会他们如何思考,而非如何在脑海中搜索答案。

让孩子学习编程,意义何在?-少儿编程之家

最后,我相信,计算机科学,以及任何涉及编程教育课程,都能传授广泛的技能,这是学校里任何其他课程都无法企及的。从本质上说,编程能让你动脑,而解决编程问题能让你脑力全开疯狂思考。所以,通过推动学习编程,让孩子们以一种兼顾实用性和理论性的、富有成效的、积极的、有吸引力的、刺激的、有创造力的方式思考,着实非常有意思。