孩子该不该学编程?

作者: 王树义 | 来源:发表于2016-10-18 21:31 被阅读4062次

事关孩子未来发展,确实马虎不得。

争论

随着年岁渐长,高中同学微信群里面的讨论也从奶粉代购变成了子女教育。

同学A是华尔街精英,大女儿已经六岁了。现在他每天都要操心女儿的教育问题。他主张培养孩子兴趣,课余活动的选择都按孩子自己的意愿来决定。

他的大女儿和几个同学现在正在用乐高教育(Lego Education)旗下的一款产品Wedo 2.0学习编程。

同学A家附近华人比较多,这些家长就轮流带着孩子们去博物馆和科技馆找灵感,然后指导孩子们在室内用Wedo来编程做设计。

家长里面藏龙卧虎,许多是名牌大学CS和EE专业毕业,指导孩子们编程得心应手。我这同学专业是会计和金融,不懂编程。每次他都多给孩子们带些点心糖果,在一边看着孩子们自己学自己玩儿,很没有成就感。

受到这种激励,他也想学点编程。我把自己的那篇《七周学会做搜索引擎》发给了他。他读了好几遍,觉得编程很值得学,MOOC太有用了,兴奋得睡不好觉。

他问孩子们的编程该如何入门?我依然推荐了Python语言,但是使用的MOOC与成人的完全不同。

我俩在群里的交流引起了许多老同学一起参加讨论,气氛很热烈。

旅居澳洲的同学B自称科技民工,其实他毕业于国内某著名工科院校,绝对是专家级别。他觉得编程尝试一下就好,不可以深入进去学。在他看来,编程的模式会固化孩子的思维,让孩子不容易接受新的知识和技术。而编程语言、系统环境总是在变化的,小时候深入学了某一种编程语言,长大基本上都已过时,用不上了。因此学编程还不如学下棋,对孩子的思维更有启发。

我俩不同的观点引起同学们的热烈讨论,许多没有IT背景的同学一时无所适从。

路径

同学B和我的初衷都是为了孩子好。我们的主要分歧来源于对“学编程”的定义。

我们这些80后,基本上都是上了中学才拥有学习电脑的机会。教材都是先是从ENIAC开始讲历史。了解了一大堆看不见摸不着的体系结构、内存寻址方式之后,还得掌握各种数据结构。考试之前不得不去背诵冒泡排序、选择排序和快速排序算法之间的差别。

上机的机会是很稀缺的。学校机房里面空调、地毯一应俱全,机器却是早已过时的Apple II,里面只能敲点儿Basic语句。大部分人家里都没有电脑,难得有机会自己编写代码解决感兴趣的问题。

今天的孩子境遇可是完全不同。智能手机、笔记本电脑早已不再是奢侈品。孩子完全可以用自己的一二百块压岁钱或者零花钱买个 Raspberry PI 这样的电脑芯片。计算机的构成根本无需再拆机介绍,一目了然。这种电脑芯片麻雀虽小五脏俱全。插个键盘、鼠标和显示器,就是一台全功能主机了。编程环境全都齐备,学习门槛极低。

我给孩子们推荐的Coursera平台MOOC来自Rice大学,叫做"An Introduction to Interactive Programming in Python"。这门课不是让你记诵排序的N种方法,也不要求你懂得级数求和公式,更不需要你会用递归方法写汉诺塔解决方案。

这门课是教你用Python语言游戏!

教师是这几位怪蜀黍。

他们为了这门课程专门设计了一个在线的程序编辑和运行环境。初学者最为头疼的系统兼容性、程序下载安装和版本依赖等问题在这里统统不会遇上。只要你打开课程提供的这个地址,就可以看到编辑器了。

左侧你输入Python语句,运行结果如果是文本,就会出现在右边。如果调用了图形界面,结果会出现在单独的窗口中。

点击Demo可以看到许多作品。不少都是这门课之前Coursera学员做出来的。

我们看看其中Steve Knock创作的Rice Racer。


编辑器左侧就是普通的源代码和说明文档。游戏全部的要素都在这里。你可以深入进去了解程序运行机制,也可以随意修改源码让它执行你想要的操作。点击屏幕左上方的执行按钮,你就可以在新窗口里面玩儿游戏了。


这游戏的画面确实不如极品飞车做得精美。但是如果你的孩子学完课程,自己做出了这样的游戏,你能想象出他/她和好友脸上兴奋的表情吗?

这个课是给编程零基础的人准备的。不用担心老师会快速嘟囔一堆让你望而却步的艰深专有名词。课程深入浅出,老师会一步步教你Python语言的知识,每次课都能让你掌握一个新技能,不断给你的小游戏添砖加瓦。

学这课需要多长时间?因人而异。我班上曾有一个学工商管理的学生,之前毫无编程基础。她在24小时之内就搞定了这门课的第一部分(课程共分为两个部分)并且拿到证书。

这样的编程课,你如何让孩子浅尝辄止?他们一旦上手,恐怕根本就停不下来,因为乐在其中。我不认为值得学习的必要技能可以通过蜻蜓点水的“尝试”便能真正掌握。

能力

学会了编游戏有什么用?能保送吗?高考能加分吗?能保证将来找到好工作吗?

咱别那么急功近利好不好?

记不记得几年前曾经有一款深受大众欢迎的游戏《愤怒的小鸟》?该款游戏霸占iTunes Store免费应用下载排行榜第一名很久。你知道它最终被谁赶下了冠军位置吗?

是这个当时年仅14岁的小伙子。

别的孩子都在疯玩儿的时候,他一头扎进图书馆,找书籍自学iOS程序设计,然后做了自己的一款免费游戏,叫做Bubble Ball。

游戏没有什么花哨的界面,但是人们疯狂地喜欢上了它。游戏上架才1个月的时间,下载数量就超过300万。

有了这种深受大众欢迎的好作品,名誉和财富会主动找上门来的。

游戏编程与其说只是一项技能,不如说是个催化剂。我们不妨来分析一下。

玩儿游戏的时候,规则是别人定的,你是消费者

一旦你开始编游戏,规则就是来定的,你变成了生产者

千万不要小看这个微小的变化。从此之后,当你的孩子看到新的好游戏的时候,他/她获得的就不只是兴奋感,而是随时都可以汲取营养,学习知识。别人傻玩儿的时候,他/她在考虑的是“这款游戏我能不能做?”“为什么作者要这样设计规则?”以及最重要的“这款游戏为何受欢迎?”

这就是“外行看热闹,内行看门道”。

我们信息管理领域有所谓的“信息偶遇”,很多时候人们一直渴求的信息会突然自己找上门来。就像溢出的洗澡水之于阿基米德、落下的苹果之于牛顿。

许多人以为这不过是纯随机事件,可遇不可求。但是首先你心里必须有疑惑和问题存在,然后才更有机会受到外界信息的启发。如果你没有思考过吸引力的事情,别说苹果,就是被椰子砸了也照样没用。

能编出好游戏的孩子,肯定是具备优秀观察力的。此外他/她还会在游戏制作中逐渐感受到和用户的互动,会主动愿意了解美术、音乐、用户界面设计和心理学的知识。

他/她可能会遭遇失败,但这并不要紧。从不断的迭代和改进中,他/她会逐渐明白所有的作品都不可能完美和一蹴而就。这样的孩子,将来可以大概率摆脱“表现型人格”和拖延症的困扰。

游戏越做越大,便需要与他人的协作。他会学习沟通,照顾他人的感受,以及积累管理经验。

而且最好的消息是——作为家长,你根本不用去督促他/她,上述所有的知识获取与能力习得全都可以靠兴趣驱动,而且效果还比你照本宣科的劝导和说教要好得多。这就是兴趣的威力。

比尔盖茨上中学时积极帮学校设计座位分配系统,为什么?

为的是能够和最漂亮的女生们坐在一起。

创造

谈到这里,家长们应该不再担心学编程对孩子知识和能力的“不良影响”了。下面我们来谈谈家长们可能最担心的一个问题——小时候学编程会不会限制孩子们的创造力呢?

我们来看看他的例子。

他的外公是个大学统计学教授。因为眼花了,自己打字编程不方便,外公就把他抱在腿上,让他替自己把草稿纸上面的统计程序代码输入计算机。那台旧计算机是Commodore VIC-20,当时就已经不再是什么流行的型号。输入的程序语言是Basic,现在的孩子连编程入门都不再会使用这样的语言了。

但是他在外公的指导下学会了Basic语言后,开始编制自己的程序,而后触类旁通,自学了汇编语言等其他编程语言。

上大学时他发现自己计算机上面安装的操作系统用着不是很得心应手。而当时品质最好的操作系统Unix又太贵。

换做是你怎么办?找盗版?

他的解决办法是——自己做了个操作系统,还免费共享给了所有人。

你嗤之以鼻。这种手工作坊生产的山寨操作系统能好用吗?怎么能和微软的Windows比?别逗了!

如果你今天用的是安卓手机(基本上就是除了iPhone以外所有主流的智能手机品牌和型号),你在用他的系统。

如果你用过搜索引擎,你用过他的系统。

如果你用过电商平台购物,你用过他的系统。

甚至连“根据伟大的指导者金正日同志多次莅临指导”,“独立”研制而成的朝鲜操作系统,也不过是在他的系统上改了改界面而已。

如果他打算挣钱,仅这个操作系统的授权费就足以让他早早当上亿万富翁。

他没有要一分钱。

如果他愿意停下来,享受成功的荣誉。每天都出去做演讲也能过上富足的生活。

他也没有。因为他的创造力还远没有发挥完。

2005年,他又创造了Git。这东西能干什么请自行Google,但现在世界上最优秀的程序员们离开了这东西就无法协作。请自己脑补画面。

他就是Linus Torvalds,IT领域大神级别的人物。

他就是从小学编程的。用当时就已过时的系统环境学了过气的编程语言。

他长大后缺乏创造力吗?

相关文章

网友评论

  • 762055ccac2a:主意还是要大人教
  • f87b5b09c2ea:现高中生,自学多门编程语言,然后现在方向网络安全。小学初中就开始接触了,我觉得有兴趣其他都不是问题。
    f87b5b09c2ea: @王树义 同龄人比我强的很多很多,如今的孩子都很厉害。我都起步晚了
    f87b5b09c2ea: @王树义 同龄人中比我强的很多很多呢
    王树义:@Minhal 好厉害!:+1:
  • 小朵晴天:我的专业是信息管理,成绩还可以,四年奖学金。但是四年下来,我感觉我对编程没什么兴趣,学不会😂😂😂
    王树义:@小朵晴天 上MOOC吧。比看书效率高。
    小朵晴天: @王树义 我试试。老师,您能给我推荐几本书看吗?
    王树义:@小朵晴天 试试python吧
  • xiaomayi2012:自学python 自学ios的飘过~~~!
    王树义:@xiaomayi2012 厉害:+1:
  • geekMole:学语法精简的语言应该不会导致思维固化吧,比如文中所说的python.而c++这样的庞大语言确实会让人纠结于语言本身而思维固化
    王树义:@geekMole 赞同
  • 不必luo嗦:这个网站里面的课程都是免费的吗
    王树义:@不必luo嗦 学知识免费,拿证书收费。但可以申请免学费。
  • 季童:学
  • 蔚蓝的天空和小总: 培养孩子的兴趣很重要。做游戏从消费者变成生产者,角色转换真的很有意思。
    王树义:@蔚蓝的天空和小总 是啊,视角的切换会带来很多变化。
  • 方脸安安Ann:oh my god 😰
    王树义:@葭语的不四梦想 怎么了?
  • yche:Life is short, you need python.
    所有现代人都应该会至少一种脚本语言,来简化一些应用。
    王树义:@yche 非常同意。脚本这东西用好了,相当于延长了人生。
  • 237f72dadad8:我儿子一出生就准备让他学习Python
    王树义:@番茄很忙 这个稍微急了些 :yum:
  • 蝴蝶之梦天使:当码农 有什么好?
  • cdee276aa884:我感觉编程的思想更加重要,其中的思维逻辑对学生还是有很大帮助的,选择python入门个人感觉比较好,这也是我尝试之后发现的,如果你想成为一名程序猿就需要其他的了。
    王树义:@turbot 没错,只会一门python确实算不上真正的程序员。不过让孩子们感受编程的快乐已经足够了。
  • 哇楼主:最主要的是孩子得看懂英文!
    王树义:@哇楼主 所以学英语也很重要啊,请往前翻我的文章。:smile:
  • e89dfe25d981:与国外的专业程序员争论,非但没有被说服,反而举出了例子来反驳并加强自己的观点,而且还向外延伸自己的观点,不错不错
    e89dfe25d981:@王树义 不错不错
    王树义:@还记得那一天 总结得挺全面:smile:
  • 8b7f13cda833:支持孩子学编程。
    王树义:@雪花里的思念 握手:smile:
  • Sarah_mq:恨自己生太早哈哈哈!
    Sarah_mq: @王树义 嗯嗯,说得对~stay hungry stay foolish
    王树义:@Sarah_mq 现在已经是终身学习时代了,不晚。
  • e9a44a336dfe:学习和实践是最重要的。至于编程,还是其他科目,根本不是问题痛点。
    王树义:@煜_ 所以我们强调兴趣
  • Unicorn_c:不错
  • 小马儿聊IT:学习编程, 更多的是学习编程思维, 是学习使用计算机思路来解决现实问题的方法, 而不仅是学习某种语言, 这样仅学到了术,但丢了道. 不过可笑的是, 这个概念是在计算机专业的第一门课程计算机导论中提到的, 但我大学四年, 工作16年,整整20年, 才好像有了一点感悟.
    另外强调一点, 虽然Linus的经历很传奇, 但大家要注意反证并不成立, 也就是说, 你按照他的路走, 你不会成为第二个Linus的, 我们在做很多决定的时候, 还是需要深入思考的, 不能将别人的路作为自己选择的依据.
    至于是否该让孩子学习编程, 还是要自己思考并下结论.
    我是做编程工作的, 在我心目中, 编程是一件好玩的事情, 因此喜欢分享给自己孩子, 看着孩子磕磕碰碰的做出一个小东东, 父子两个一起开心, 至于其他, 先扯淡去吧.
    王树义:@和小马儿一起蹚C语言 个案不能证实,只能证伪。我做的是证伪。:yum:
  • d42b2ba76ba0:学编程很好啊,比只会玩游戏好多了
    王树义:@JeanShen 说的实在:smile:
  • 巴图鲁:不错
    王树义:@巴图鲁 谢谢鼓励!
  • CodingTech:现在的家长也在逐渐改变
    王树义:@CodingTech 说的是,所以作为教师也得与时俱进。
  • 6fe1c4490325:在主页看到一大堆有的没的心灵鸡汤之后发现这篇。。真是如沐春风清新极了:)
    王树义:@白马书院的姑娘 谢谢鼓励! :-)
  • vsfafa:我是软件工程的,在读这个专业前我一点也不了解这个专业,为什么会有人喜欢编程。而且感觉编程和数学关系超级大
    vsfafa: @和小马儿一起蹚C语言 第一次听到有人说离散数学好玩,看来是高手,6666…膜拜
    小马儿聊IT:我们一想起数学, 可能就是微积分,复变,概率等, 一大堆公式是很让人头疼, 但计算机学科中关联的数学主要是离散数学, 这个有时候会感觉很好玩的,如7桥问题等.
    王树义:@土豆侠大人 也不一定,看你编什么程序了。如果是做人工智能,少了数学绝对玩儿不转。如果是做个微信小程序,倒也用不到什么艰深的数学知识。
  • 星星说要快乐:听了mooc您推荐的课程 感觉和中国教学有很大不同 简单易懂 很有意思
    王树义:@星星说要快乐 是,教学理念就有很大差别。咱们一直提寓教于乐,人家是真正去践行。
  • 呆萌的加菲小喵:mooc赞👍
    王树义:@呆萌的加菲小喵 :smile:
  • 28a99f048d57:六六六
  • 大漠孤月:支持从小早学编程 只是我闺女六年级 学习pascal编程软件已经2个整年 感觉还未完全入门 是这个软件比较难学吗?
    _deadline: @大漠孤月 让她从做网站开始吧,好上手,她也有兴趣,做到一定程度,也就是文章中的触类旁通
  • 闪闪灬发光:我大学是计算机信息管理专业。。感觉c语言都不感冒,不过看你这发表的文章很不错。点个赞。。。
    闪闪灬发光:@懒惰灬贪婪 好滴😍
    王树义:@懒惰灬贪婪 谢谢支持!对C语言不感冒的事儿,欢迎看看我的另一篇文章《七周学会做搜索引擎》。
  • 萨默塞特酱:编程对创造力影响我不知道。不过最后用个个例来说明问题。。。。不如有数据(当然这方面数据很少)或者推导出来更好
    王树义:@萨默塞特酱 批评的对,下次我注意改进。谢谢! :-)
  • 迎风不动:我看了python入门的书籍,2000年学机电的我理解不了,可是吧还是很有兴趣。。。悟性不行啊
    王树义:@白马书院的姑娘 是啊,培养兴趣而非打击热情最重要。
    6fe1c4490325:@迎风不动 我也觉得学编程有没有兴趣和用什么教程很有关系。。比如一开始讲什么是变量,大家都能懂;有的课本一上来就是一堆概念,什么面向对象啊,什么封装啊,很多人都会被吓走><
    王树义:@迎风不动 看的是哪本书啊?
  • iRacer:我是一枚程序员,支持让小孩学编程:fist:
    王树义:@iRacer 握手:smile:
  • e77e006bffc7:每次看你的文章都有收获
    王树义:@YinianFan 谢谢鼓励!
  • be47fe996bb9:@王树义 那从哪儿入门?是从Python开始吗?
    王树义:@贰Greg 不客气
    be47fe996bb9:谢谢分享.这样生活又变得有意义了.
    王树义:@贰Greg 对。文章里面给了MOOC课程的链接。
  • be47fe996bb9:这个编程适不适合26岁的我学呀?
    be47fe996bb9:@IamUMR 容易上手就不会打击学习的兴趣,然后一步步来.设个小目标先.:blush::blush:
    63f844b0524e:@贰Greg python 很实用的 也比较容易上手,逻辑通了就行了
    王树义:@贰Greg 完全可以

本文标题:孩子该不该学编程?

本文链接:https://www.haomeiwen.com/subject/orvtuttx.html