1
这个理论其实是不对的,学编程和当一名程序员没有任何关系,编程学的是一种思维方式,它对孩子的学习以及创造力帮助都很大。
举个简单的例子,比如我们编个程序计算“1+2+3+…+100”。这个程序有两种设计方法:
- 一种是通过循环,让计算机先计算1+2,然后计算+3,接着+4、+5 … 就这样一直到 +100,这样做99次加法就能得到结果了,这是一种思路。
- 但是还有另外一种思路,这是利用高斯算法,因为1+100 = 2+99 = 3+98,这些结果都等于101,总共有50对101,那么计算机只需要计算50×101就能得到最后的结果。
我们比较一下两者的过程,第一种方法要计算99次,而第二种方法只需要计算1次,你觉得哪个方法更快更好呢?显然是后者。
因此,学编程的目的,不是让你计算出结果,而是要你用最优的方法得到结果。这才是学习编程的精髓,要知道我们计算机的处理能力是有限的,而数据是海量的,我们需要把计算机的时间节省下来,做更多的事情。所以我说,学编程的核心是算法,是孩子的编程思维。你会发现,其实编程和数学是息息相关的,想要编程学得好,一定得有很好的数学功底才行,就像上面举例的那个高斯算法,这本身就是数学里面的一个经典应用。
这就是我一定要给憨憨学编程的原因,会编程的孩子,他们的思维都很严谨、有条理,而且能找到最优的解决方法,这对孩子未来学业、工作帮助都是很大的!
前几天同学聚会,大家讨论到当年所选专业的时候,我就说,我很庆幸当年报了计算机这个专业,这么多年工作下来,我就能感觉到我的思维能力比很多人要强。像我写公号,某种意义上就是用编程思维来写的,一步一步层层递进,虽然文笔一般,但胜在条理很清晰,这就是源于编程对我的帮助!
其实编程语言是其次,编程思维是关键,所有的语言都只是一个外壳,也就是每种语言的语法有点不同,但骨子里的编程思维都是一样一样的!
举个简单例子,比如说用编程来解决“1个苹果加上2个苹果等于几个苹果”的问题。
用C/C++或者Java的话,它的格式是:
apple_num = 1 + 2;
用Python的话,它的格式是:
apple_num = 1 + 2
乍一看两段编程语句是一样的,但细看之下两个程序设计语言的语法还是有所不同,前者后面要有一个“;”,后者却没有,但是两者骨子里的逻辑是一样的。这就是我说的编程语言的语法会有所不同,但是程序背后的思维逻辑才是关键,孩子得知道把实际的应用用程序的方式给展现出来。
所以学编程,语言是其次,首先需要掌握的是编程思维。这就是为什么斯坦福天才儿童计划里的数学课程,从一年级开始就教孩子编程思维,他们的学习界面就是下面这张图,需要在右边方框里定义车子的行动路线,然后左边的车子就会根据孩子制定的行动路线来行动。
下面这张图就是Scratch的一个编程界面,你看屏幕的左边没有什么编程语句,都是拖拽的一个个方框,用这些方框堆砌成一个完整的程序逻辑,而屏幕的右边就是程序的运行结果。
你看下面这个小游戏,这是憨憨第一次玩Hopscotch的时候,我教他做的一个Pokemon(宠物精灵)的小游戏,可以通过扔球来抓住小精灵,
但是它们也有一个很大的缺陷,就是没法编写很复杂的程序,如果程序一复杂,满屏拖拽的方框看起来会很头晕。因此当孩子Scratch学到一定程度,就可以转为专业的编程语言了,这时候首推Python语言。
下面这张图就是Python的运行界面,
一般来说,Scratch适合5~12岁的孩子,而Python适合12岁以上的孩子。