大部分的家长可能都会让自己的孩子至少学习乐器,运动或棋类中的一项甚至几项。但你有没有想过让你的孩子尽早(5-7岁)开始学习编程呢?相信很多家长都会有这样的疑惑:为什么要让那么小的孩子学习编程呢?编程对孩子有些什么好处?如果孩子连数学、语文、英语这些基础都没掌握好,他们能学好编程吗?我暂且不谈我的观点,而是试着让你了解那些你可能更信任的人是怎么说的:
编程应当与ABC字母表和颜色同时得到教学,所有人都应该更早地学习如何编程。——美国总统奥巴马。
人人都应该学习一门计算机语言,因为它将教会你如何思考。——苹果创始人 乔布斯
比尔盖茨和扎克伯格等一界科技大佬们更是直接通过在线视频教授孩子学习编程。
这些在各个领域最优秀的人物为什么会不约而同地认识到编程对于每个人的重要性呢?我想,或许是因为他们比我们大多数人都更早地意识到了社会正在经历的变革以及它的发展方向。
人工智能将取代所有简单重复脑力劳动 —— 百度CEO 李彦宏
未来20年,美国可能被机器人取代的职位比例为47%,英国为35% —— 牛津大学研究报告
富士康正在实施百万机器人计划,替代目前大量使用的一线工人 —— 富士康总裁 郭台铭
回到我们的主题,为什么应该让你的孩子尽早学习编程呢?
学习编程能让孩子们变得更好
我几乎每周都会和一群朋友聚一聚,当然也包括我们的孩子(都在5-7岁),我是我们这个圈子里唯一会写程序的,所以每次我都会被要求花上1个小时,通过一些有趣的实例去教这些孩子们学习编程。我对于朋友们安排的这个任务很感兴趣,虽然不收取任何费用,但每次我还是会提前做一些准备,并为我的课程制定一些中长期的目标。就这样,通过一段时间的教学,我发现几乎每个孩子都有了不同程度的进步,而这种进步不仅仅体现在编程方面,应该说这些孩子比他们学习编程之前变得更好了。
孩子们通过编程制作出了包含家人照片的简单网页,他们觉得这是一件很酷的事情,朋友们看到后都很羡慕他们的这个新技能,孩子们变得比以前更加开放,更有自信了。
通过一次次的动手开发,我看到孩子们变得更有耐心,也更有专注力了。而更重要的是在这个过程中,他们会尝试着去自己解决遇到的问题。
在完成我布置的一个个任务之后,孩子们往往会自己想着用掌握的这些很基础的编程技巧,去实现出他们想象的更复杂的东西来,他们将自己的创意通过编程转化为了现实。
更多好的想法,随着他们编程技能的增长不断地被激发出来,你会发现他们的好奇心和求知欲都变得比以前更强了。
以上是我亲眼看到孩子们的一些变化,但你可能会问,让孩子去学习画画、弹琴不一样也是激发他们的创造力吗,跟编程相比又有什么不同呢?其实,我也经常思考这个问题,这可能更像是“授人以鱼,授人以渔”的区别:当你教授孩子画画、舞蹈时,你教给他们的只是一项技能,它们当然也能使你的孩子变得更好,但一般来说这种技能对孩子的帮助相对有限。而当你在教授孩子编程时,你其实是在教孩子学会使用一个重要的工具,这个工具能够以更快的速度扩展你孩子各方面的能力,并在将来为孩子创造出更多的可能性,这也将大大增强孩子在未来科技社会的竞争能力。
学习编程非常简单而且快乐
若不是从小玩游戏,我绝不会学编程。 —— Facebook CEO 扎克伯格
我经常看到孩子们因为被家长逼着练习钢琴、舞蹈、奥数而闷闷不乐,垂头丧气。但却几乎看不到那些不爱玩iPad上各种游戏的孩子,当我尝试着对这样的孩子进行一些引导,并采用我自己认为比较好的方式去教他们编程时,我发现他们同样会爱上编程,并从中得到了很多快乐。
我曾和一些家长谈论关于如何教孩子编程的话题,也经常会听到他们的一些顾虑:
教孩子编程的培训机构相对较少,并且费用往往很高。
我们都不会编程,所以很难去指导孩子,并衡量孩子是否学得好。
对于培训班,我一直持比较反对的态度,很多小孩挤在一起参加统一的课程(我曾看到20,30个小孩在一起学习使用Scratch编程),而一些小班制的(4-5人一个班级)课程费用又高得离谱。其实我觉得根本没有必要让孩子去上什么培训班,而且我也不认为Scratch是唯一适合用来教孩子编程的语言。我的建议是由家长亲自来教,而且可以边学边教。编程实际上是非常简单的,就像我写的《[好奇心]什么是机器学习》一文中提到,我只用5分钟就学会编写了我的第一个用于分辨苹果和橙子的人工智能程序。同样的,所有的家长都可以通过自学,来教孩子编程,这样能够产生很好的互动,一对一的教学甚至是和孩子一起学习,效果是最好的。
另一个问题是教什么,有很多小孩是从编程语言(比如 C、JAVA、Python等)学起的,但我觉得这往往会让孩子觉得枯燥,而失去了学习的兴趣。我的建议是教孩子们那些能够直接产生交互并确实有用的东西(比如从HTML开始,接着加入JavaScript来产生可交互的网页,最终使用Ionic包装成一个在App,这会是一个不错的尝试)。当孩子们每一节课都能看到自己的作品在进步,并且最终做出能在电脑甚至手机和iPad上跑起来的App时,他们会觉得很酷,并为此感到兴奋和自豪。而在这个过程中,他们会由这一个个小任务驱动着,主动地去学习什么是条件,什么是循环,什么是函数这些编程的概念,而家长真正要做的,就是帮助孩子建立起学习编程的兴趣。
对学校教育有很好的促进作用
国内的学校对孩子基础课程的教育都是非常重视的,比如:语文、数学、英语这些,有些更是走在了世界的前面,但却在另一些在我看来非常重要的方面缺乏足够的重视,比如美学教育(Art and Design),计算机教育(Computer Science)。下面这张图显示英国要求5岁以上的孩子必须学习电脑编程。
对国内的孩子来说,我也建议尽可能早的开始学习编程,只要他们已经有了比较好的语言表达和理解能力,以及一些最基本的逻辑思维能力作为基础就可以开始学习编程。和学习语言一样,学习编程也是越早越好。通过学习编程,能够非常有效地拓展孩子的思维,你会发现孩子们思维的逻辑性与延展性变得比之前更好了,另外他们也会自己创造出一种更好的学习和处理问题的方法,这对阅读、算术、写作等几乎所有学科都会产生很好的促进作用。
更好地适应未来的科技社会
可以想象,未来的社会一定会变得非常有趣,但首先它一定会是一个充满科技社会。小到控制各式各样的科技设备来为自己服务,大到创造出新的科技来彰显自我,这些可能都需你熟悉并掌握编程。我们今天看到的许多职业会因为科技的进步而渐渐消失,但同时会有更多新兴的职业产生,而他们中的大部分可能都需要具备编程能力,这可能也是有人预测程序员可能是未来最后一个被人工智能取代的职业的原因。总之,我相信编程已不仅是信息行业对人才的需求,而将成为所有行业的需求。各行各业需要的也不仅是软件专业人才,而是掌握编程技能的行业专业人才,我们会需要更多掌握编程技能的人。今早地让孩子学习编程,能够让他们更好地适应未来的科技社会,并在未来具备更强的竞争力。
如果你对我是如何教小孩编程的感兴趣,也可以关注我的简书账号,我会在后面带来《教孩子学编程》的系列文章。
关注技匠的微信订阅号: techmask,获取更多优秀的编程学习文章与资源。