看点 5G技术、人工智能、虚拟理想,越来越多的新词汇冲刷着我们的认知。“未来已来,编程为王。”在群众看来,编程似乎与读写一样,成为接轨未来的必备技艺。但是,美国顺序员爸爸Joe Morgon却表示并不会让本人的孩子学习编程。他指出,编程与读写在重要性上并不对等,而且复杂的学习编程语法并不能培育孩子处置成绩的才能。更重要的是,当我们强迫孩子跟着死板的流程去学习编程,只会抹杀他们的猎奇心。
昨天,我在美国知名的在线杂志Slate上看到一位美国顺序员爸爸支持儿童学编程的文章,虽然我不赞同他的结论,但是他的想法却发人沉思,值得一读。
这位名叫Joe Morgon的顺序员宣布的文章标题是:《我是顺序员,我不会教孩子学编程,你也别教》。
为什么要让孩子学编程?
最近一次夜跑时,我路过一个很大的橱窗,外面展现的是教孩子们学编程的书。其中有些书我看到过,但我历来没有见过这么多针对小先生编程的书。
而这些书不过是冰山一角,市面上还有少量跟编程相关的资源——夏季编程训练营、课后编程俱乐部、教幼儿园孩子JavaScript基础知识的APP——它们都在向孩子教授面向未来的技艺。
父母为什么要让孩子学编程呢?
新加坡一个编程校外班
答案不言而喻。
除了学习开发软件之外,还有什么更好的办法,能让我们的孩子迎接一个由软件统治的未来世界?
假设一切都将自动化,那么做控制自动化的人会更安全。假设学习编程有用,那么宜早不宜迟。
虽然这些学习编程的产品能够教孩子们特定的编程言语,但却与真正的软件开发关系不大。
编程就是读书写字?
我的一位前同事曾经在一个编程训练营接受过训练,这个训练营的口号是“编程是一种新的读写才能”。这种刻意营建的焦虑感是一切编程书和游戏的中心。
正如一本很火的书中所描画的:尽早学习编程“是孩子为未来做好预备必不可少的一步”。这话给人的印象是,不教孩子编程在某种水平上同等于不教他们读书写字。
这种说法显然是荒唐的,编程不同等于读书写字。虽然大少数父母都受过教育,并且知道给孩子读书,但他们大少数并不是顺序员,也不知道顺序员需求什么样的技艺。
儿童编程书将编程看作可以为一系列成绩找到“正确”处置方案的才能。假设你的孩子可以掌握编程语法(syntax),就可以快速轻松地完成义务。
但,这并不是顺序员的任务方式。
学会编程语法就是学会编程?
软件开发是一项困难的工程,是发明力和决计的结合。开发人员需求掌握的远远不止语法这么复杂。
出色的顺序员不光是让软件可以运转,他们还希望开收回优秀的软件。
在职业生涯的早期,我编写了一些代码来配置和运转一组远程效劳器。我的代码运转得很顺利——至少我是这么想的——直到大约18个小时后,夜半铃响,我失掉通知:一组效劳器宕机了。
我从床上爬起来,走到笔记本前,又运转了一遍代码来交流宕机的效劳器。几小时后,又有一组效劳器宕机了。
宕机并不是由语法引发的,假设有的话,效劳器一末尾就无法搭建起来。宕机的缘由十分复杂,经过好几周和有数个被叫醒的夜晚,我终于处置了成绩。
编程就是这样:先写代码,看看它能否有效。失败了就再试一次。假设成绩很复杂,有些开源代码就能处置。剩下的就是需求首创性的艰难义务。没有书可以教你如何处置史无前例的成绩。
这就是为什么我不希望我的孩子学习编程语法——我希望他们学会处置成绩,深化研讨成绩,发扬发明力。
比起编程,掌握这些才能更重要
那我们该怎样教这些才能呢?
有一天,我的儿子有点担忧他那把摇摇晃晃的椅子。我们一同察看了下椅子,儿子帮我找到了成绩:有一个螺钉松了。我在家里找到一个适宜的六角扳手,并演示怎样把螺钉拧紧。
之后,儿子很猎奇:假设反方向拧会发作什么?他试了试,直到螺钉被拧出来为止。最后,我们重复将椅子拆开,再装回去——中间还装错过——直到儿子称心为止。
先试试,看结果如何,不行就再试一次。
当然,让软件运转只是开发者的第一步。下一步是使代码明晰、可重复运用、繁复。
在我职业生涯的早期,我曾经开发了一项功用,交给一位初级开发人员审核。他看了一眼我草率的间距、紊乱的代码行和混乱的命名标准,说:“重写!”
我编写的代码可以运转,语法有效,但依然是错的。优秀的顺序员并不满足于让代码能运转,他们希望开收回优秀的软件。
关于许多开发人员来说,这种追求质量的觉得是最难掌握的。精心设计的代码让人赏心顺眼,而漂亮的代码让人退避三舍。
一流的开发人员学会将笼统的逻辑与艺术家的敏锐融合在一同。顺序员也要学着信仰一点,那就是代码的美感,与算法以及代码形式一样重要。
(责任编辑:admin)