首先政府支持。美国奥巴马总统在2016年的国情咨文讲话中说,美国应该“让每一个学生都能在第一天上可动手操作的计算机科学和数学课,为就业做好准备。”不久之后,他发起了一项40亿美元的计算机科学普及计划。我国教育部2018年1月5日亦印发《普通高中课程方案和语文等学科课程标准(2017年版)》(以下简称“新课标”),其中对于技术(信息技术和通用技)给予学生更大的选择空间,可在该学科方向上学习更多的“可选择必修课程”(在此之前这只属于兴趣课)。
科技公司对此充满热情。亚马逊希望通过其“亚马逊未来工程师”项目,每年向1000万名儿童教授编程。Facebook、微软、谷歌、腾讯、阿里巴巴、网易等也有类似的项目,规模和范围各不相同。许多家长也很热切。根据旨在提高计算机科学教育的非盈利组织Code.org的数据,90%的父母希望他们的孩子在学校学习计算机科学。这解释了许多面向儿童的教程和计算机编程语言(如Scratch和Hour of Code)的流行。
所以我们应该孩子报名参加编程训练营吗?坚持让他们上计算机科学课?也许是,也许不是。当我还是个孩子的时候,首先学习的是五笔打字,对于现在的小孩儿来讲,应该已经算古董了,后来学习了flash编程,做出了简单的图形变化,比如从绿色圆形转变成蓝色三角形,那对于一个年幼的小孩来说真的太神奇了,因为我可以得到某种神秘世界的视觉反馈。这很有趣,就像解谜一样。即使20多年过去了事情并没有发生太大的变化:软件开发人员仍然赚大钱,而且需求量很大。那么“也许不”是什么意思呢?
编程对我来说很有趣。但是如果孩子不那么热情呢?他或她是否应该被迫学习编程,只因为这可能在未来某一天带来一份工作?我想等等看。在未来的几十年里,我们不太可能像现在这样用同样的方式去编程。例如,当我们谈论人工智能时,主要是指机器学习,这与给计算机详细的、一步一步的指令是非常不同的。相反,我们给机器学习算法提供大量的数据,而然后程序本身构建了完成这些工作的模型。
举一个显著的例子,谷歌翻译过去涉及50万行代码。而现在使用机器学习语言只需要大约500行。关键的挑战不在于了解编程语言:而是要有足够的数据,以及理解计算机构建的模型是如何以我们所设定的数学原理工作的,以便我们能够对它们进行微调和测试。
那么,对于这种计算机工作方式的未来,什么才是重要的呢?技术方面主要是数学:统计学、线性代数、概率论、微积分。数学仍然是一项重要的技能,除了编程,它对许多职业都很有用。这也是日常生活中必不可少的。算法思维并不一定来自计算机编码。通过烹饪、绘画、体育甚至音乐获得一些数学知识和适当的学习经验是很有价值的,所有这些都涉及某种算法。
然而,对未来更重要的并不一定是当前所需或者所能预知到的。当下的计算机编程本身还是重在构建一个封闭世界。这也是当初为什么它对我来说如此有趣的部分原因:把一些(乏味的)指令一个接一个地组合起来,然后就可以创造出一个世界。这很神奇。不幸的是,这与科技行业目前的做法相去甚远。现在,程序员们正在创造一种工具,它可以与混乱、充满挑战的现实生活进行交互。如果说有什么不同的话,那就是他们对构建孤立世界的亲近感可能会阻碍他们对这些工具实际功能的理解。这可能也是为什么很多码农年过35,经验丰富却惨被淘汰的原因之一。所以我们现在更需要的是了解历史、社会学、心理学、数学、美学、音乐的人,以及能够自如地分析复杂、开放和混沌系统的人。
那么,您是否应该让感兴趣的孩子参加编码训练营呢?当然可以。让孩子们玩玩Scratch或是花一个小时的时间来学习代码,看看这是否能吸引他们的兴趣?绝对的。但如果他们想学做纸杯蛋糕,踢球,画画或爬树,也不用担心。
我们需要确保年轻人不要认为这个世界迫使他们在数学和社会学之间做出选择,在科学和人文之间做出选择。我们面临的最有趣、或许也是最具挑战性的问题,将会出现在那个交叉点处——而不是我们曾经喜欢为乐趣而构建的狭小、封闭的世界。
联系客服