孩子学习编程的过程,就是不断地训练他把复杂、庞大的问题拆解、理顺的过程

孩子学习编程的过程,就是不断地训练他把复杂、庞大的问题拆解、理顺的过程。这种思维在学习、工作、生活中处处都用得着。在解决复杂问题时,问题的分解必不可少,因为只有分解成每一个可以操作、可处理的小问题时,才算是把“大问题”落了地,一个一个小问题搞定了,大问题也就解决了。

  具备这种能力的人做事情是耐心的、有条不紊的。比如同样面对一道有挑战的数学题,分解能力好的孩子会列出清晰的解题步骤,搞定一步是一步,即使不一定能完全解答出来,也能清清楚楚地知道自己的进展;而有些孩子则不是,没有分解的耐心和能力,遇到难题时脑子一团乱麻。

  发现并整合“重复规律”的能力

  举个数学上简单的例子,比如计算32×(37+4)+47×(37+4)+21×(37+4),它就相当于(32+47+21)×(37+4),其中的(37+4)就是一个重复的单元,可以整合。

  观察那些做事麻利,效率特别高的人,就是具备了这个能力。很多孩子解题快,就是他善于发现和总结“重复规律”,脑袋里自备了一个装有很多种方法库,遇到时直接调用,不用再从头到尾想一遍,也不会错漏。

  创新不一定指做出个前所未有的新产品,对现有的运行方式进行优化改进,就是一种创新。而发现并整合“重复规律”的能力,让我们更容易找到创新的机会。

 

  调试纠错能力

  重要的事情末尾讲。

  当把编程能带给孩子几项能力一一列出来的时候,发现这点是更重要,也是孩子需要的。

  任何事情都很难一次就完成得尽善尽美,程序运行起来发现不对有问题,这时就需要孩子去寻找出错的地方,并将它一点一点去改正。

  程序的世界很单纯,只有0和1,对和错,没有模糊值。这跟写文章、画画什么的不一样,当读者、观众感觉一般时,可能是见仁见智,并不一定证明你的作品不好或者哪里有错,你也根本不知道该怎么改进。

  但程序不一样,只要运行结果和期望不符合,就证明中间肯定有哪儿出错了,不过同时也意味着只要足够努力,就肯定能把这个错揪出来。就像你告诉一只猫,小黑屋里肯定有老鼠,它负责把老鼠抓出来,比它不知道小黑屋里究竟有没老鼠,听起来要容易和有信心得多。

  实际上程序中很多bug都不是一下就能找到的,常常需要从头到尾把程序的运行顺序一步一步地跟走一遍,观察每一步的运行结果(专业术语叫“单步调试”)。这需要很多的耐心、观察力和专注力,对孩子的抗挫折能力也是一种磨练。

  当调试经验丰富之后,孩子在写程序时还会懂得给那些“有可能会出错”的地方先做个记号,方便回头来检查纠错。他更关注于提高自己纠错的技能,而不是害怕、回避或者掩盖错误。孩子会越来越懂得,有错很正常,只要能把它揪出来,改正就好。

  有些人总是在进步,因为他随时懂得回溯、调试、纠错,进而提升自己。

 

  以上这些能力,其实并不是编程特有的,但它们却是在编程这件事情上集体出现的。所以要是有人问我们孩子有没必要学编程,欧美思会很肯定地回答,有必要,因为它的确培养孩子的综合能力。

留言与评论(共有 0 条评论)
   
验证码: