1. 编程能培养孩子的哪些能力?
编程是一件很有趣的事情,我觉得主要能培养这些能力:
1) 构思能力。编程是一种“先写剧本,后看结果”的活动,这要求孩子先在脑子里进行构思并模拟出结果,然后再实际验证结果是不是符合预期。这是一个“异步”的过程,对于这种“都得事先想好”的方式,孩子一开始是不适应的,因为这违背他们的直觉。我见过很多父母给孩子买“迷宫书”,其实走迷宫也包含这个要素,有的孩子会先在脑子里走一遍,然后一次性下笔把路线画出来,这就是一种构思和模拟能力的体现。
2) 逻辑能力。编程需要考虑到各种情况,根据不同的情况作出不同的选择(分支),而且各个分支之间不能重复,也要避免遗漏某一种可能性造成程序的异常行为。在逻辑思维中有个词叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。这是逻辑思维中的一个重要原则。举个例子,交通信号灯有红、黄、绿三种状态,如果你在写程序的时候只考虑了红灯和绿灯的情况,没考虑黄灯的情况,那就不“完备”了。此外,条件还会涉及到“与”、“或”、“非”等逻辑操作,比如说,“当信号灯为红色或黄色时”和“当信号灯不是绿色时”这两个描述应该是等价的,这对于孩子来说都是非常好的逻辑训练。
3) 模式识别能力。在编程中我们经常需要发现一些“可以重复”的单元,然后让计算机去重复它。举个简单的例子,计算(1+5)×4相当于(1+5)+(1+5)+(1+5)+(1+5),其中每一个(1+5)就是一个可重复的单元,或者说是一种模式(pattern)。在解决实际问题时,模式并不都是显而易见的,有些模式是隐藏的,或者需要一定的变换才能出现的,这些都考验孩子观察力和识别力。
4) 分解问题的能力。一些复杂的问题都可以分解中等的问题,中等的问题还可以进一步分解成小问题。在解决复杂问题时,问题的分解是非常重要的,编程中我们也经常需要使用这样的方法。举个例子,比如要造一辆汽车,我们先要把汽车分解成很多小的部件,比如发动机、变速器等,这些部件还可以继续分解成更小的部件,我们需要先造好每一个小部件,再把他们组合起来变成一辆汽车。
5) 调试除错能力。任何工作都无法一蹴而就,是人总会犯错误,程序运行起来发现不对有问题,这时需要孩子能够找到出错的地方在哪里,并且将它改正。这里面包含的能力很多,比如抗挫折力、观察力、专注力等等。总之,通过学习编程所培养的能力并不只是适用于编程,而是可以在很多方面派上用场。
2. 几岁可以开始学编程?每个年龄段都学些什么?
按照我的经历,是6岁开始接触编程的,但现在我们有各种可视化的编程环境,还有各种编程游戏App、桌游和玩具,所以还可以往低龄推移。我家哥哥是4岁开始接触简单的编程游戏的,接受度非常好(当然,他的抽象思维能力是比较超前),4岁应该是一个可选的起点,再小的话思维能力还达不到,揠苗助长也没意思。另外还是那句老话:兴趣第一。如果孩子没兴趣,跟逼他练钢琴也没什么两样。
3. 家长不会编程,怎么教孩子学?
说实话,就4岁孩子玩的那些编程游戏,再不会编程的家长,看一眼也都能玩,怎么可能智商还不如4岁的娃呢?所以就启蒙来说,我不相信哪个家长不能胜任,主要有没有兴趣和时间。当然,到了正经学编程语言、算法和数据结构这些东西的阶段,如果家长不会编程,那肯定是辅导不了了,但反过来说,到了这个阶段,孩子都可以自主学习了,也可以通过交朋友、参加兴趣班等方式来学,华工启明星的兴趣班就尤其不错,课程科学,老师有经验。
4. 现在社会上出现了一些编程培训机构,要不要让孩子去上?关于社会上的培训机构,我只能说虽然最近冒出来一些,但比起学英语学画画学乐器的少多了。乐高机器人有,教Scratch的我也听说过,最近英孚还搞了一个用Swift Playgrounds的夏令营,不过这些一般都针对比较大的孩子。我个人觉得这些机构都不如华工启明星,毕竟术业有专攻,能较好别的不一定能教好儿童编程。
5. 学编程是不是一定要数学好?
编程和数学确实是相辅相成的,因为编程所需要的很多能力和数学所需要的能力是相通的,比如逻辑完备性、模式识别等等;编程中的一些概念也是来自数学,比如函数;而到了学算法的时候,就会用到更多的数学思想和工具;至于最近特别火的机器学习,那更是纯数学模型。对于这个问题,我只能说,编程和数学应该是相互促进的关系,学编程有利于更好地学数学,而学好数学当然也能够帮助、你更好地学编程。
6.学编程要花很多时间在屏幕前,担心影响视力怎么办?
这个问题很大程度上是个误会。近视最大的影响因素在于基因,环境因素的影响相对较小。在环境因素中,目前认为相关性(并非因果性)最强的是户外活动时间,户外活动时间长有助于减少近视的发生率,这可能和阳光的刺激有关。除此之外,无论是看书的距离、姿势和时间、光线的明暗,以及电子屏幕的使用,都没有证据表明这些和近视的发生率有关,网上的很多文章其实都是吓唬人的,或者是犯了因果倒置、选择偏见(cherry picking)之类的逻辑错误。因此,只要不是户外活动,无论是玩玩具、看电视、看书,这些都是划等号的。如果说就是认为看电子设备就是比看书更伤眼睛那就是在自欺欺人。我家不限制孩子使用电子设备的时间,基本管够,中间提醒休息,但会确保每天户外活动的时间。
儿童编程主要是培养孩子思考问题的方式,几岁的孩子也不太能设计出很复杂且实用的东西,从长远来看还是要培养一下这方面的东西比较好,尤其推荐华工启明星。