欢迎光临
我们一直在努力

一个程序员父亲:我们注重的,不该是让孩子学编程

有些家长可能觉得Scratch太简单,想让孩子直接从C++/Python等代码编程开始学起,而我们为什么说这种做法不可取呢?

原因在于成年人可以直接学习编码,而孩子更需要发掘他们的好奇心。为什么这么说呢?这位程序员父亲为我们做出了非常好的解释。

在最近一次的例行午夜小跑时,我看到一堆关于教孩子们写代码的书。

教大家写代码的书籍随处可见,但从来没有见过这么多直接针对小学生的。这些编程书籍只是用来培训孩子们“面向未来的技能”等庞大资源的一部分,还有编程夏令营、课外编程俱乐部,旨在教给幼儿园小朋友们JavaScript基础知识的小程序等等。

很容易理解父母为什么要求孩子学习编程——还有什么比教会孩子写代码更好的方法,来让我们的孩子为未来的自动化社会做好准备呢?

如果未来的一切都是自动化的,那么一份从事自动化软件开发的工作要保险得多。如果学习编程是好的,那么早点学习就更好了。然而,这些书籍虽然可以教会孩子们特定的编程语言,但是实际上它们与软件开发工作没有多大关系。

“不会编程就是新文盲?”

我的一位前同事曾经在编程训练营接受训练,而这个训练营的口号就是“不会编程就是新文盲”。这种观点几乎是所有编程书籍和游戏的核心。

然而这种观点显然是很荒谬的,不会编程不等于文盲。虽然大多数父母都有文化和读写能力,但是大多数父母都不是程序员,也不知道程序员需要什么样的技能。针对孩子们的编程书籍给出的都是一些问题的“标准”答案。如果你的孩子能掌握编程语言,他们就能快速轻松地写出这些代码。

然而编程不仅仅是写代码,编程是复杂的,同时需要具备创造性和明确性。作为一名程序员仅仅懂得编程语言是不够的,某些技能只能在非常年轻时学习。

好的程序员不仅仅是让代码工作,他们还希望写出好代码。

没有书本教你解决以前从没人碰到过的问题

在我的职业生涯早期,我写了一些代码配置在一组远程服务器上运行。一开始代码似乎运行得非常好,至少我是这样认为的。

直到18个小时以后,电话在半夜响起,告诉我一些服务器出了故障。我从床上爬起来,打开我的笔记本电脑,在故障服务器上再次运行代码。然而几小时后,另外一些服务器也出现了故障。

而问题并不是出在代码语法上。如果是语法问题,首先服务器上编译就不会成功。这说明故障是由更深层的问题引起的,为了解决这个问题我花了好几个星期的时间,经常在半夜被叫醒。

编程就是这样的,先试一试,看看代码能否工作,再试一次,如此反复。简单的问题应该会有现成的解决方案或者至少用开源代码来解决,剩下的则是一些繁杂而且独特的问题。没有书本教你如何解决以前没人碰到过的问题,这也是我为什么我不想让我的孩子学习代码语法。

而希望他们学习如何解决问题,如何深入研究问题,学会创新和思考。

那我们该怎么做呢?

生活中如何让孩子掌握编程思维?

有一天,儿子发现他的椅子总是摇摇晃晃,好像哪里出现了问题。

于是我们一起看了看后,他发现原来是椅子的一个螺丝松了。我找出一把用过的六角扳手,告诉他如何拧紧。他很好奇如果他向相反方向拧螺丝,会发生什么?

他好奇地尝试着,直到把螺丝拧出来。后来我们把椅子拆开,又试着装回去,我们一起装了好几次,有几次装错位了,直到最后一遍他才顺利地把椅子装好。

而这个过程,就像编程一样,试一试,看看它是如何工作的,再试一次,直到实现你想得到的效果。

最近,我和妻子带着儿子做曲奇饼干。每次我们加入一种成分,我们都会停下来检查一下面团,讨论一下面团的手感和颜色。

它够软吗?所有成分都和匀了吗?当我们把面团摊开时,儿子摸了摸表面,看着我妻子教他如何把一切都弄得又匀又薄。然而,最难的部分是切出饼干形状。像所有的孩子一样,他本能地将饼干模子放到面团中间开始切,每次我们都试图告诉他如何将饼干模子在面团上依次切出饼干形状,以便让每个面团做出最多的饼干。

每一个步骤——精确测量每种成分,检查面团的柔软度和是否和匀,精确放置饼干模子以减少浪费——这些都是在教他关于质量的知识。

如果仅仅教他做饼干的步骤(比如按照一个饼干食谱),则很难让他学会分辨质量的好坏并做出好饼干,所以一定要让他通过实践,自己去感受,积累经验才能真正掌握。

每次你让孩子参与到你所重视的事情中,就是在教他们如何把事情做好,而这也是在为他们以后编程打基础的重要一环。

但在过程中你教孩子的不仅仅只是这些,还要让他们知道这世界充满了有趣的事情等待他们去发现,向他们展示如何充满激情地在他们所做的每件事中寻找那种瞬间的质量感。

最棒的是,即使他们不能成为程序员——在未来,这项技能也可以在任何职业、爱好、生活中使用。

最适合孩子学习的编程语言——Scratch

一年多前,儿子在亚马逊会议中心的“一小时代码”(Hour of Code)活动中学习了Scratch。我认为,这个MIT发明的编程语言最适合儿子这个年龄段的孩子学习,它没有繁杂的代码语法,也不会强制报错。

儿子很喜欢用图片和文字来制作漫画书,也会把图片和音乐拼成视频。他还试图自己做一个游戏。

“我和爸爸一起制作游戏的感觉,非常棒,”儿子说,“我设计了一段复杂的代码,当鲨鱼靠近你的时候,它会张开嘴巴。假如你是一条鱼,你要努力不被这条鲨鱼吃掉。”

儿子用Scratch编码,把代码块像乐高积木一样拼在一起

不管儿子是否会坚持写代码,他的STEM潜力都已经完全被激发了出来,成年人可以直接学习编码,而我觉得孩子更需要发掘他们的好奇心。

作者:JOE MORGAN,他编写了很多代码,还是《Simplifying JavaScript》一书的作者。

推荐阅读

赞(5)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址