加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一位程序员爸爸抵制编程教育:“我不会教孩子学编程”

发布时间:2019-04-09 09:39:10 所属栏目:优化 来源:杰宝妈妈
导读:副标题#e# 看点5G技术、人工智能、虚拟现实,越来越多的新词汇冲刷着我们的认知。未来已来,编程为王。在大众看来,编程似乎与读写一样,成为接轨未来的必备技能。然而,美国程序员爸爸Joe Morgon却表示并不会让自己的孩子学习编程。他指出,编程与读写在重
副标题[/!--empirenews.page--]

看点 5G技术、人工智能、虚拟现实,越来越多的新词汇冲刷着我们的认知。“未来已来,编程为王。”在大众看来,编程似乎与读写一样,成为接轨未来的必备技能。然而,美国程序员爸爸Joe Morgon却表示并不会让自己的孩子学习编程。他指出,编程与读写在重要性上并不对等,而且简单的学习编程语法并不能培养孩子解决问题的能力。更重要的是,当我们强迫孩子跟着死板的流程去学习编程,只会抹杀他们的好奇心。

昨天,我在美国知名的在线杂志Slate上看到一位美国程序员爸爸反对儿童学编程的文章,虽然我不赞同他的结论,但是他的想法却发人深思,值得一读。

这位名叫Joe Morgon的程序员发表的文章标题是:《我是程序员,我不会教孩子学编程,你也别教》。

一位程序员爸爸抵制编程教育:“我不会教孩子学编程”

为什么要让孩子学编程?

最近一次夜跑时,我路过一个很大的橱窗,里面展示的是教孩子们学编程的书。其中有些书我看到过,但我从来没有见过这么多针对小学生编程的书。

而这些书不过是冰山一角,市面上还有大量跟编程相关的资源——夏季编程训练营、课后编程俱乐部、教幼儿园孩子JavaScript基础知识的APP——它们都在向孩子传授面向未来的技能。

父母为什么要让孩子学编程呢?

新加坡一个编程校外班

答案显而易见。

除了学习开发软件之外,还有什么更好的方法,能让我们的孩子迎接一个由软件统治的未来世界?

如果一切都将自动化,那么做控制自动化的人会更安全。如果学习编程有用,那么宜早不宜迟。

虽然这些学习编程的产品可能教孩子们特定的编程语言,但却与真正的软件开发关系不大。

编程就是读书写字?

我的一位前同事曾经在一个编程训练营接受过训练,这个训练营的口号是“编程是一种新的读写能力”。这种刻意营造的焦虑感是所有编程书和游戏的核心。

正如一本很火的书中所描述的:尽早学习编程“是孩子为未来做好准备必不可少的一步”。这话给人的印象是,不教孩子编程在某种程度上等同于不教他们读书写字。

这种说法显然是荒谬的,编程不等同于读书写字。虽然大多数父母都受过教育,并且知道给孩子读书,但他们大多数并不是程序员,也不知道程序员需要什么样的技能。

儿童编程书将编程看作能够为一系列问题找到“正确”解决方案的能力。如果你的孩子能够掌握编程语法(syntax),就能够快速轻松地完成任务。

但,这并不是程序员的工作方式。

学会编程语法就是学会编程?

软件开发是一项艰难的工程,是创造力和决心的结合。开发人员需要掌握的远远不止语法这么简单。

杰出的程序员不光是让软件能够运行,他们还希望开发出优秀的软件。

在职业生涯的早期,我编写了一些代码来配置和运行一组远程服务器。我的代码运行得很顺利——至少我是这么想的——直到大约18个小时后,夜半铃响,我得到通知:一组服务器宕机了。

我从床上爬起来,走到笔记本前,又运行了一遍代码来替换宕机的服务器。几小时后,又有一组服务器宕机了。

宕机并不是由语法引发的,如果有的话,服务器一开始就无法搭建起来。宕机的原因非常复杂,经过好几周和无数个被叫醒的夜晚,我终于解决了问题。

编程就是这样:先写代码,看看它是否有效。失败了就再试一次。如果问题很简单,有些开源代码就能解决。剩下的就是需要独创性的艰巨任务。没有书可以教你如何解决前所未有的问题。

这就是为什么我不希望我的孩子学习编程语法——我希望他们学会解决问题,深入研究问题,发挥创造力。

比起编程,掌握这些能力更重要

那我们该怎么教这些能力呢?

有一天,我的儿子有点担心他那把摇摇晃晃的椅子。我们一起观察了下椅子,儿子帮我找到了问题:有一个螺钉松了。我在家里找到一个适合的六角扳手,并演示怎么把螺钉拧紧。

之后,儿子很好奇:如果反方向拧会发生什么?他试了试,直到螺钉被拧出来为止。最后,我们反复将椅子拆开,再装回去——中间还装错过——直到儿子满意为止。

先试试,看结果如何,不行就再试一次。

当然,让软件运行只是开发者的第一步。下一步是使代码清晰、可重复使用、简洁。

在我职业生涯的早期,我曾经开发了一项功能,交给一位高级开发人员审核。他看了一眼我草率的间距、错乱的代码行和混乱的命名规范,说:“重写!”

我编写的代码可以运行,语法有效,但仍然是错的。优秀的程序员并不满足于让代码能运行,他们希望开发出优秀的软件。

对于许多开发人员来说,这种追求品质的感觉是最难掌握的。精心设计的代码让人赏心悦目,而丑陋的代码让人退避三舍。

一流的开发人员学会将抽象的逻辑与艺术家的敏锐融合在一起。程序员也要学着信奉一点,那就是代码的美感,与算法以及代码模式一样重要。

最近,我和妻子与儿子一起制作糖饼干。每次把配料混合在一起,我们就会停下来查看面团,讨论它的质地和颜色。面团是否光滑?所有配料是否已经均匀地混合在一起?

我们擀面团时,儿子摸了摸面团的表面,然后看妈妈演示如何让材料铺得均匀而且厚薄适中。

然而,最难的部分是切出形状。像所有的孩子一样,他本能地将模具推到铺开的面团的中间,而每次,我们都会解释如何将模子挨个放在一起以便有最大化地利用面团。

精确称量材料、如何在压面团时保持光滑度和延展性、怎样放置模具减少面团的浪费——每一步都让儿子知道什么是追求品质。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读