幼少儿编程热背后:别让编程教育扼杀孩子好奇心

2024-07-18
来源:网络整理

(为程序员的东西加星标)

转载自:CSDN(ID:),译者:苏本如

【导读】:毋庸置疑,未来一切都是自动化的,从事自动化软件开发的工作会安全很多——这是很多程序员的父母所考虑的。因此,市面上充斥着各种少儿编程书籍、编程夏令营、课外编程俱乐部等。然而,这些虽然能教会孩子具体的编程语言,但其实和软件开发工作关系不大,反而会扼杀孩子的好奇心——本文作者JOE表达了自己的观点。

以下为译文:

最近一次午夜慢跑时,我偶然发现了一堆关于教孩子编码的书。

到处都有关于如何编程的书籍,但我们从未见过这么多专门针对小学生的书籍。这些编程书籍是旨在培养孩子“面向未来的技能”的庞大资源的一部分,其中包括编程夏令营、课后编程俱乐部和旨在教幼儿园儿童基础知识的小应用程序。

很容易理解为什么父母要求孩子学习编程——还有什么比教他们编程更好的方法可以让孩子们为自动化的未来做好准备呢?如果未来一切都是自动化的,那么开发自动化软件的工作就是一个更安全的选择。如果学习编程是好事,那么早学更好。然而,虽然这些书可能会教孩子们特定的编程语言,但它们实际上与软件开发工作关系不大。

1.“不会编程就意味着你是新文盲”?

我的一位前同事曾在一个编程训练营接受过培训,该训练营的座右铭是“不懂编程就是新文盲”。这种观点是所有编程书籍和游戏的核心。一本畅销书说,尽早学习编程“对孩子的未来至关重要”。这就像告诉我们,不教孩子编程就像不教他们阅读一样。

当然这种观点是荒谬的,不会编程并不等于文盲。虽然大多数父母都是识字的,能够读写,但大多数人不是程序员,也不知道他们需要什么技能。儿童编程书籍对某些问题给出了“标准”答案。如果你的孩子能掌握一门编程语言,他们就能快速轻松地编写代码。然而,编程不仅仅是写代码,编程很复杂,需要创造力和清晰度。仅仅了解一门编程语言是不够的,而且某些技能只能在很小的时候学习。

优秀的程序员不只是想让代码运行,他们还想编写优秀的代码。

2. 没有一本书会教你如何解决以前从未遇到过的问题

开发程序赚钱吗_可以开发一个小程序不_开发什么小程序

在我职业生涯的早期,我编写了一些代码并将其配置为在一组远程服务器上运行。起初,这些代码似乎运行良好,至少我是这么认为的。直到 18 小时后,半夜电话响起,告诉我一些服务器宕机了。我从床上爬起来,拿起笔记本电脑,在故障服务器上再次运行代码。然而,几个小时后,其他一些服务器再次报告故障。

问题不在于代码的语法。如果是语法问题,服务器上的编译根本就不会成功。失败是由更深层次的问题引起的,我花了几个星期才隔离和解决问题,经常半夜被惊醒。

这就是编程的意义所在。尝试一下,看看代码是否有效,再试一次,然后重复。简单的问题应该有现成的解决方案,或者至少有开源代码来解决它们。其余的都是复杂而独特的问题。没有一本书可以教你如何解决以前没有人遇到过的问题,这就是为什么我不想让我的孩子学习编码语法。我希望他们学会如何解决问题,深入研究问题,并学会创新。那么我们该如何教授这一点呢?

3. 单纯写代码是不可取的,质量、创意、代码美感也是值得学习的。

有一天,我儿子担心他的椅子摇晃不稳。我们一起检查了一下,他发现了问题所在。原来是椅子上的一个螺丝松了。我找了一把用过的六角扳手,向他演示如何拧紧。他很好奇如果把螺丝反过来拧会发生什么。他一直试,直到螺丝松了。然后我们把椅子拆开,试着把它重新组装起来。我们把它组装了好几次,有好几次都搞错了,直到他终于做对了。就像编程一样,试一试,看看它是如何工作的,然后再试一次。

当然,让代码运行起来只是软件开发的第一步。下一步是让代码清晰、可重用且整洁。在我职业生涯的早期,我完成了一个功能的编码,并将其交给一位高级程序员进行审查。他看了一眼我的代码,发现间距不一致、行错位,命名不规范,只是说“重做”然后发回。虽然我的代码可以运行,语法也正确,但它仍然是错误的。优秀的程序员不只是让代码运行,他们还想编写优秀的代码。

质量控制是很多程序员最难做到的事情。设计良好的代码用起来感觉很好,而杂乱的代码会让程序员敬而远之。最好的程序员会将艺术的敏感度融入抽象的逻辑中,他们相信代码之美对编程的重要性不亚于任何算法或编码模式。

最近,我和妻子和儿子一起做饼干。每次我们添加一种配料时,我们都会停下来检查面团,讨论它摸起来的感觉和外观。它够软吗?所有配料都混合好了吗?当我们擀面团时,我儿子摸了摸表面,看着我妻子教他如何把所有东西都擀得均匀、薄一些。然而,最难的部分是切出饼干的形状。像所有孩子一样,他本能地把饼干刀放在面团中间开始切,每次我们都试着向他展示如何将饼干刀移动到面团上,以便在每个面团上切出最多的饼干。

每一个步骤——精确测量每种原料、检查面团的柔软度和稠度、精确放置饼干模具以尽量减少浪费——都在教他如何做饼干。仅仅教他做饼干的步骤(比如按照饼干食谱做)很少能教会他如何区分好品质和制作好饼干,这些只能通过感觉和经验来传递。每当你让孩子参与到你重视的事情中时,你就是在教他们如何做好事情,你在为他们编程做准备。

但在这个过程中,你教给他们的远不止这些。你告诉他们这个世界充满了有趣的东西等着他们去发现,你告诉他们如何在所做的每一件事中热情地追求那种瞬间的品质感。最好的部分是,即使他们没有成为程序员——大多数人不应该也不想成为程序员——同样的技能几乎可以运用在任何职业、每个爱好和日常生活中。然而,当我们强迫孩子们只学习代码的语法时,我们就会向他们灌输这样一种观念:编写代码是有用的,而关于质量、创造力和代码之美的知识则不值得学习。

虽然成年人可以直接学习编码,但孩子们需要探索他们的好奇心。

转载自:CSDN(ID:)

分享