为什么要让孩子学习编程?
一、构思能力
编程是一种“先写剧本,后看结果”的活动,这要求孩子先在脑子里进行构思并模拟出结果,然后再实际验证结果是不是符合预期。这是一个“异步”的过程,对于这种“都得事先想好”的方式,孩子一开始是不适应的,因为这违背他们的直觉。
二、逻辑能力
编程需要考虑到各种情况,根据不同的情况作出不同的选择(分支),而且各个分支之间不能重复,也要避免遗漏某一种可能性造成程序的异常行为。在逻辑思维中有个词叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。这是逻辑思维中的一个重要原则。
三、模式识别能力
在编程中我们经常需要发现一些“可以重复”的单元,然后让计算机去重复它。举个简单的例子,计算(1+5)×4相当于(1+5)+(1+5)+(1+5)+(1+5),其中每一个(1+5)就是一个可重复的单元,或者说是一种模式(pattern)。在解决实际问题时,模式并不都是显而易见的,有些模式是隐藏的,或者需要一定的变换才能出现的,这些都考验孩子观察力和识别力。
四、分解问题的能力
一些复杂的问题都可以分解中等的问题,中等的问题还可以进一步分解成小问题。在解决复杂问题时,问题的分解是非常重要的,编程中我们也经常需要使用这样的方法。
五、调试除错能力
任何工作都无法一蹴而就,是人总会犯错误,程序运行起来发现不对有问题,这时需要孩子能够找到出错的地方在哪里,并且将它改正。这里面包含的能力很多,比如抗挫折力、观察力、专注力等等。
总之,通过学习编程所培养的能力并不只是适用于编程,而是可以在很多方面派上用场。