美国名校教授:若孩子没掌握高阶编程能力,会再多代码也没用
外滩教育 2019-01-24 10:38

  “人工智能”是当下最时髦的词之一。探讨最多的话题是:到底该如何做才能保证孩子不被它取代。首先就是学习编程语言。尽管编程语言多种多样,但实际上,就是借助机器,帮助人类社会解决各种各样的问题。佩恩教授是美国北乔治亚大学计算机学院的终身教授,在编程行业已经有了21年的教龄,并且有遍及全球160个国家的学生,下文中,他将带我们一起探讨,如何在学习编程的过程中,养成独立思考习惯,培养自己解决问题的能力。

  未来某一天,商场、餐厅、便利店等全然不见了工作人员。取而代之的,是一个个衣着统一,身体灵活的机器人。他们安静地游走在各个区域,不打扰人类选购喜爱的物品。

  这是很多科幻电影里常有的一幕。其背后的隐含意思也很明显,即人类有一天终将会被人工智能取代。

  电影里的场景,真的会发生在现实生活中吗?佩恩教授却不那么认为。

  佩恩教授是美国北乔治亚大学计算机学院的终身教授。同时,他也是亚马逊新发布书籍和儿童编程类书籍中销量No.1:《教你的孩子学编程》等书的作者。如今,他在编程行业已经有了21年的教龄,并且有着遍及全球160个国家的学生。

  在编程经验丰富的佩恩教授看来,虽然AI(人工智能)会在一些基本的行业取代人们的工作,但是大部分的工作还是需要人类去完成,比如说,医生给病人做手术,并不可能完全由机器人来操作。

  此外,正如每个行业都专注于去解决某一行业的问题一样,虽然,编程的语言看似多种多样,但实际上,人们去学习各种各样的编程语言,其实就是在借助机器,说机器能懂的语言,帮助人类社会解决各种各样的问题。

  所以,归根到底,孩子学习编程,更重要的是,如何在学习编程的过程中,养成独立思考习惯,培养自己解决问题的能力。当然,任何事物都是从无到有,从易到难的过程。孩子在刚开始学习时,只是去解决一个小的问题。慢慢地,随着年岁渐长,练习增多,才可以去解决更大、更难的问题。

  最后,佩恩教授还提到我们不需要担心未来工作机会减少。因为只有人类和机器同时去完成一件事情,才能把工作做得更好。但是,不可否认的是,AI市场在未来会有非常大的发展空间,这也意味着,更多与编程相关的行业会被扩大。

  学习编程最高目的,是培养孩子解决问题的能力

  正如维基百科的词条释义,编程是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

  通俗一点来说,在人类社会里,人与人之间通过自己的语言相互沟通,彼此协作,去推动事情的完成。而编程,就是在电脑上输入电脑能够理解的语言,让电脑帮助人类去解决问题。佩恩教授也说:“学习编程,其实是培养学生解决问题的能力。”

  在很多人的印象里,学习编程,就是去学习各种各样的语言,语言学习的越多越好。其实,这只是最初级的认知。而应该从更高一层来看待学习编程这件事,即我们用编程来解决问题,编程语言是帮助我们达到目的工具。它们就象工具箱,帮助你组织你的思维。

  编程的存在其实就是为了解决问题的。比如说,你现在正在使用的微信或者移动互联网,它们的出现就是解决了人类沟通不顺畅的问题。我们无法想象,如果没有网络、没有这些一个个让我们便捷沟通的通信软件,我们的生活会变得多么不方便。

  幸运的是,编程语言的出现,解决了人类的这一大烦恼。未来,随着科技的进步,人类的沟通将会更加的个性化。

  乔布斯就曾说过:“我觉得每个人都应该学习一门编程语言。学习编程教你如何思考,就像学法律一样。学法律并不一定要为了做律师,但法律教你一种思考方式。学习编程也一样,我把计算机科学看成是教育,每个人都应该花至少1年时间学习编程。”乔布斯认为,学习编程并非是在培养未来的程序员。而是通过学习编程,教会大家如何去思考及创造。

  微软创始人比尔·盖茨,Facebook创始人马克·扎克伯格,Twitter联合创始人杰克·多西等,这些被全世界关注的互联网公司,他们设计的软件也都是建立在编程基础上。

  如何培养这种解决问题的编程能力

  在佩恩教授看来,编程就像搭积木,看似是游戏,实际上里面涉及了很多的逻辑及思维能力的东西。但家长一开始,不需要带孩子认识到编程的全貌,而是以以兴趣引导的方式,带孩子进入美妙的编程世界。

  佩恩教授的两个儿子Max和Alex,在编程方面也取得了优异的成绩。实际上,一开始由于佩恩教授平时都教大学生的缘故,也并没有在家里和孩子具体讲过编程课。但是,在Max2岁,Alex4岁的时候,他们两个忽然对佩恩教授电脑屏幕上自动出现的各种各样的颜色和形成产生了浓厚的兴趣。

  也就是,从那时起,两个小家伙才在父亲佩恩的积极引导下,慢慢接触,并喜欢上了编程。这也说明了兴趣在学习任何一门项中都是非常重要的。

  此外,在很多人的刻板印象里,编程学得好的学生,数学应该也很好。但在佩恩教授看来,在这个时代,单纯的培养数学能力已经非常落后。在AI时代,最正确的做法就是——学编程。

  他说,”编程其实根本不是数学,它只不过借用了非常少,非常基础的数学。计算机是比数学更加基础的工具,就像纸和笔一样。计算机可以用来解决数学的问题,也可以用来解决不是数学的问题,比如工程的问题,艺术的问题,经济的问题,社会的问题等等。要想成为一个优秀的编程者,必须针对计算机科学进行学习。”

  但是,正如很多学科是相通的一样,他也建议,好好学习数学,特别是低年龄段的孩子还说,还是非常重要的。

  此外,在佩恩教授看来,编程学习要做到举一反三,触类旁通,而不是认为自己会了就过了。现在,编程的资源多种多样,学生们可以通过读书和从网上下载相关的课程资料及辅导材料来练习。甚至,学员也可以通过和同伴组队的方式,同伴出题另一个同伴来解答,以便互相促进。

  佩恩教授举了一个例子,他有一名中国的学生,目前还是一名在上初中的学生。他从5年级左右开始接触到编程,通过不断练习最基本的编程语言Python,这名学生逐渐具备了非常扎实的编程基础。现在他开始非常顺利的学习C++。

  不过,佩恩教授也提醒家长道,编程语言内部,其实是有分难易等级的。孩子学习编程的步伐一定要一步一步来,千万不可揠苗助长。学生在学更难的语言之前,可以先多练习基础的语言,比如Python和JavaScript。而这些看似不相关的练习,其实对学生以后的学习是非常有帮助的。

  未来世界,是人与机器合作的时代

  虽然,如今电脑领域已经发明有上千种不同的编程语言,每年仍有许多新的编程语言诞生。很多人惊恐不已,这编程语言是如此之多,更新换代的速度如此之快,自己到底有没有学习编程的天赋。

  但是,佩恩教授说:“从编程思想上来说,编程语言内部并没有很大区别。只要学懂编程思想,一切语言皆通。”

  比如说,编程语言C++,就是一个非常硬核的编程语言,可以说傲立在所有语言的顶端。同时,它的应用领域非常广泛,至上世纪八十年代到至今,一直被广泛应用在系统开发和高性能的计算领域:如游戏开发、桌面开发、操作系统开放等。

  此外,相比Python等如今大热的语言,C++更接近二进制码(即电脑的机器语言),更接近计算机体系的实质。可以说,掌握C++后,回过头来看Python等高级语言,会更加理解它们的运作方式。

  不过,佩恩教授接着也提到,“其实,在编程这一学科中,美国也面领着跟中国同样的问题。即,学生没有很多接触编程的机会。更重要的是,很多学校也缺乏有编程资质的老师去教授编程课。即使美国多州已经将编程课放在了学生的课程中,但是,却很少有老师有能力去教编程。”

  在这种情况下,佩恩教授建议学生们可以主动组建社团,寻找在这方面有兴趣的老师和同学。学校同样可以在课后安排此类的编程项目,让学生们去尝试。因为只有当学生们真正接触到了编程,他们才会知道自己是否有兴趣去持续的学习编程。

  还是回到最开始的问题:人工智能真的会取代人类吗?物理学家史蒂芬霍金在GMIC北京2017大会上发表演讲,他认为计算机在理论上可以模仿人类智能,然后超越人类智能。

  但他也担心,人工智能一旦脱离束缚,将以不断加速的状态重新设计自身,人类会由于受到漫长的生物进化的限制,无法与其竞争,最终将被取代。

  不过,佩恩教授则非常乐观地说:“尽管人工智能会取代一部分的工作,但同时也为很多行业打开了大门。人工智能取代的可能只是最基本的工作,很多重大,并需要做决定的工作,仍需要人类来完成。比如说,医生。”

  他还说,即使医生看上去和AI行业毫不沾边,但是,医生去给病人看病时,需要对医院里的仪器有所了解。而很多机器,就是使用编程语言工作的。

  的确,正如人类世界的正常运转,需要彼此协作,互帮互助一样。未来世界,人类只有与机器合作,才能取得更好地未来。

分享到