欢迎光临
我们一直在努力

写了20年程序后,我推荐少儿编程应该这样学!

今天这篇文章出自一个美国硅谷的工程师之笔,憨爸的公号是我个人非常喜欢的,前两天他正好提到了对少儿编程的看法,分享给大家。

本文转载自公号:憨爸在美国(ID:hanhanusa)

本周一发的文章里,有妈妈请我写个编程的专题,

昨天为这篇文章我酝酿了一天,终于幸不辱命,今天就给大家捋一捋,编程到底是否值得给孩子学?又该怎么学?

编程值得学吗?

很多父母对编程有误解,她们认为给孩子学编程,将来就是让孩子做一个程序员,可如果不想让孩子做程序员的话,那么学习编程也没啥必要了?

这个理论其实是不对的,学编程和当一名程序员没有任何关系,编程学的是一种思维方式,它对孩子的学习以及创造力帮助都很大。

举个简单的例子,比如我们编个程序计算“1+2+3+…+100”。这个程序有两种设计方法:

一种是通过循环,让计算机先计算1+2,然后计算+3,接着+4、+5 … 就这样一直到 +100,这样做99次加法就能得到结果了,这是一种思路。

但是还有另外一种思路,这是利用高斯算法,因为1+100 = 2+99 = 3+98,这些结果都等于101,总共有50对101,那么计算机只需要计算50x101就能得到最后的结果。

我们比较一下两者的过程,第一种方法要计算99次,而第二种方法只需要计算1次,你觉得哪个方法更快更好呢?显然是后者。

因此,学编程的目的,不是让你计算出结果,而是要你用最优的方法得到结果。这才是学习编程的精髓,要知道我们计算机的处理能力是有限的,而数据是海量的,我们需要把计算机的时间节省下来,做更多的事情。所以我说,学编程的核心是算法,是孩子的编程思维。你会发现,其实编程和数学是息息相关的,想要编程学得好,一定得有很好的数学功底才行,就像上面举例的那个高斯算法,这本身就是数学里面的一个经典应用。

这就是我一定要给憨憨学编程的原因,会编程的孩子,他们的思维都很严谨、有条理,而且能找到最优的解决方法,这对孩子未来学业、工作帮助都是很大的!

前几天同学聚会,大家讨论到当年所选专业的时候,我就说,我很庆幸当年报了计算机这个专业,这么多年工作下来,我就能感觉到我的思维能力比很多人要强。像我写公号,某种意义上就是用编程思维来写的,一步一步层层递进,虽然文笔一般,但胜在条理很清晰,这就是源于编程对我的帮助!

怎么学编程呢?

现在市面上的编程语言那么多,什么C/C++、Java、Python、Perl等等,孩子该从何入手呢?

其实编程语言是其次,编程思维是关键,所有的语言都只是一个外壳,也就是每种语言的语法有点不同,但骨子里的编程思维都是一样一样的!

举个简单例子,比如说用编程来解决“1个苹果加上2个苹果等于几个苹果”的问题。

用C/C++或者Java的话,它的格式是:

apple_num = 1 + 2;

用Python的话,它的格式是:

apple_num = 1 + 2

乍一看两段编程语句是一样的,但细看之下两个程序设计语言的语法还是有所不同,前者后面要有一个“;”,后者却没有,但是两者骨子里的逻辑是一样的。这就是我说的编程语言的语法会有所不同,但是程序背后的思维逻辑才是关键,孩子得知道把实际的应用用程序的方式给展现出来。

所以学编程,语言是其次,首先需要掌握的是编程思维。这就是为什么国外学校从一年级开始就教孩子编程思维,他们的学习界面就是下面这张图,需要在右边方框里定义车子的行动路线,然后左边的车子就会根据孩子制定的行动路线来行动。

关于编程思维,这个很复杂,我以后要详细说说,它的基本思想就是孩子得学会编写程序的执行路线,上面斯坦福天才计划的那个程序很简答,就是一些顺序执行,但实际遇到的问题会复杂许多,还会夹杂很多条件语句、循环语句等等复杂的逻辑。但是当孩子学会编程思维后,那么他们将来无论用什么编程语言,比如C、Python之类的就特别简单,相当于骨架已经有了,只是外面套一件什么样的衣服问题。

儿童怎么学编程?

现在主流的儿童学编程的方法是用一种拖拽式的编程语言。什么是拖拽式呢?就是操作界面有很多指令的方框,只要将这些指令框拖到主界面就好,并且对指令框做一些参数设置,那么一个程序就编好了。这种拖拽式的编程语言有很多种,比如Scratch、Hopscotch等等,包括LEGO的高端机器人EV3所用的LabView也是基于这种拖拽式的编程语言。

下面这张图就是Scratch的一个编程界面,你看屏幕的右边没有什么编程语句,都是拖拽的一个个方框,用这些方框堆砌成一个完整的程序逻辑,而屏幕的左边就是程序的运行结果。

下面这张图是我给憨憨玩的Hopscotch的编程界面,也是拖拽的一个个方框,

而下面这张图是我教憨憨的LEGO EV3编程界面,也是拖拽式的!

程序编好后可以传入乐高机器人的控制器,这样下图的机器人就能按照你程序的指示来行动了,

Scratch这类拖拽式编程语言的好处就是孩子不需要背诵程序的各种命令,不需要纠结于程序的语法,只需要在方框里设置逻辑和参数就好了,对孩子来说超级简单。

你看下面这个小游戏,这是憨憨第一次玩Hopscotch的时候,我教他做的一个Pokemon(宠物精灵)的小游戏,可以通过扔球来抓住小精灵,

所以你可以看到,这种拖拽式的游戏对孩子上手很快的,第一次接触就能编写一个小游戏出来了!

但是它们也有一个缺陷,那就是没法编写很复杂的程序,如果程序一复杂,满屏拖拽的方框看起来会很头晕。因此当孩子Scratch学到一定程度,就可以转为专业的编程语言了,这时候首推Python语言。

下面这张图就是Python的运行界面,

你看Python都是一条条需要手动输入的语句,整个程序就会复杂许多,但很多专业的程序,上至网站,下至机器人都可以用Python来编写。而且Python的语法格式相对于C/C++/Java来说会简单不少,孩子入门起来也比较方便的!

一般来说,Scratch适合5~12岁的孩子,而Python适合12岁以上的孩子。

上面这些就是我对编程的一些理解,以我20年的编程经验来看,编程对开拓孩子思维是非常非常有好处的,而且很锻炼他们的创造力,也是玩机器人的基础,如果条件允许的情况下,强烈建议带孩子玩一玩的!

憨爸,一位硅谷工程师爸爸,分享美式教育理念和资源,专注于英语、数学、科学启蒙,一定让你脑洞大开哟!原创公号“憨爸在美国”(ID:hanhanusa)

看完憨爸的分享,更觉得我们现在做得这件事情意义重大,如果我们稍微拉长下时间跨度,我们今天做的编程教育,也许真的能影响孩子们的未来。

所以,我们想趁着这个暑假,让更多的孩子加入到编程的行列,下周,我们又开放了20个免费体验课名额(1节课),快来找老师报名吧!

也欢迎家长们把这篇文章转发给你的朋友,邀请他们的孩子一起来体验编程的乐趣!

赞(58)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址