孩子应该学习编程吗?

不一定!

刘佳男

加入我们的科学爱好者社群!

政府在推动这件事。在2016年的国情咨文演讲中,贝拉克·奥巴马总统说,美国应该为“每个学生提供让他们在第一天就能胜任工作的实践计算机科学和数学课程。” 不久之后,他启动了一项40亿美元的“全民计算机科学”倡议。

科技公司对此充满热情。亚马逊希望通过其“亚马逊未来工程师”计划,每年向1000万儿童教授编程。 Facebook、微软、谷歌和其他公司也有类似的项目,规模和范围各不相同。许多家长也很热衷。根据旨在增加计算机科学教育的非营利组织Code.org的数据,90%的家长希望他们的孩子在学校学习计算机科学。 这解释了许多面向儿童的教程和计算机编程语言(如Scratch和Hour of Code)的受欢迎程度。

那么,您应该为您的孩子报名参加编程营吗?坚持让他们上计算机科学课吗?也许是,也许不是。我小时候学过编程,这对我很有帮助。我用打包装食品赚的钱买了一台家用电脑,并学习了Basic编程语言以及一些机器语言。这很有趣,就像解谜一样——我在大学一年级就找到了我的第一份软件开发人员工作。情况并没有太大变化:软件开发人员仍然收入可观,而且需求量很大。那么“也许不是”是什么意思呢?


关于支持科学新闻报道

如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道: 订阅。通过购买订阅,您正在帮助确保关于塑造我们今天世界的发现和想法的有影响力的故事的未来。


编程对我来说很有趣。但是对于那些不太热衷的孩子呢?应该因为编程将来可能找到工作而强迫他们学习编程吗?我会暂缓:在未来的几十年里,我们不太可能以现在的方式编写计算机程序。例如,机器学习(当我们谈论人工智能时,我们主要指的是它)与向计算机提供详细的、逐步的指令非常不同。相反,我们向机器学习算法输入大量数据,程序本身构建模型来完成工作。

举一个引人注目的例子,谷歌翻译过去需要50万行代码。现在,在一种机器学习语言中,它只需要大约500行代码。关键的挑战不是掌握一种编程语言:而是拥有足够的数据,并理解计算机构建的模型在数学上是如何工作的,以便我们可以对其进行微调和测试。

那么,对于这种计算机工作的未来,什么才是重要的呢?技术方面主要是数学:统计学、线性代数、概率论、微积分。数学仍然是一项重要的技能,并且对编程以外的许多职业都很有用。它对日常生活也很重要。算法思维不一定来自计算机编程。一些数学和适当的学习经验,例如烹饪、缝纫、编织——所有这些都涉及某种算法——都可能很有价值。

然而,对于未来更重要的是,计算机编程本身会鼓励封闭世界的构建。这在一定程度上使它对我来说如此有趣:一步一步地(乏味地)组装一些东西,然后在自己构建的世界中玩耍,这很神奇。不幸的是,这与当今科技行业的做法相去甚远。程序员现在正在创建与复杂、具有挑战性的现实生活互动的工具。如果说有什么的话,他们对构建封闭世界的偏好可能阻碍了他们理解这些工具实际上将如何运作。我们现在需要的是那些了解历史、社会学、心理学、数学和计算机,并且能够自如地分析复杂、开放和混乱系统的人。

那么,您应该让感兴趣的孩子报名参加编程营吗?当然应该。应该让孩子们玩玩Scratch或做一个Hour of Code教程,看看这是否能引起他们的兴趣吗?绝对应该。但是,如果他们反而想学习如何制作纸杯蛋糕、缝制枕头或睡衣,或者爬树,也不必担心。

我们需要确保年轻人不要认为世界迫使他们在数学和科学与社会科学和人文科学之间做出选择。我们面临的最有趣,也许也是最具挑战性的问题将恰恰出现在那个交叉点——而不是在我们喜欢为了好玩而构建的微小、封闭的世界中。

Zeynep Tufekci is an associate professor at the University of North Carolina, whose research revolves around how technology, science and society interact.

More by Zeynep Tufekci
大众科学 Magazine Vol 321 Issue 2This article was originally published with the title “Should Kids Learn to Code?” in 大众科学 Magazine Vol. 321 No. 2 (), p. 77
doi:10.1038/scientificamerican0819-77
© . All rights reserved.