东西儿童教育 报班前先看看这篇!,娃究竟要不要学编程?别急( 三 )


这种能力可以大大提高我们做事的效率 。 举个数学上最简单的例子 , 比如计算32×(37+4)+47×(37+4)+21×(37+4) , 它就相当于(32+47+21)×(37+4) , 其中的(37+4)就是一个重复的单元 , 可以整合 。
观察那些做事麻利 , 效率特别高的人 , 就是具备了这个能力 。 很多孩子解题快 , 就是他善于发现和总结“重复规律” , 脑袋里自备了一个装有很多类似于“吃苹果”那样的方法库 , 遇到时直接调用 , 不用再从头到尾想一遍 , 也不会错漏 。
有段时间美国沃尔玛超市发现尿不湿和啤酒这两样商品经常会被一起销售 , 背后的原因是妈妈得在家里照看孩子 , 买尿不湿的通常是下班后的爸爸 , 这时爸爸很喜欢顺便再买几瓶啤酒犒劳自己 。 发现这个规律后沃尔玛就把这两样东西放在一起 , 结果不仅提高了尿不湿和啤酒的销量 , 还大大提高了整个超市的客流量 , 因为爸爸们发现逛沃尔玛比其他超市更方便 。
创新不一定指做出个前所未有的新产品 , 对现有的运行方式进行优化改进 , 就是一种创新 。 而发现并整合“重复规律”的能力让我们更容易找到创新的机会 。
析——
逻辑思维能力
这大概是程序员最引以为豪的一种能力了 。 先看个笑话 ,
娃妈给程序员娃爸打电话:“下班顺路买10个包子带回来 , 如果看到卖西瓜的 , 就买一个 。 ”
结果娃爸手捧一个包子进了门 。
娃妈怒道:“你怎么就只买了一个包子?!”
娃爸答曰:“因为看到了卖西瓜的 。 ”
类似这种“黑”程序员的段子有很多 。 不过我得再悄悄告诉你一个秘密 , 这些段子的创造者不是别人 , 正是程序员圈子本身 , 嘿嘿 , 他们只是换着法子来得瑟自己的思维有多么严谨 。
前面说到 , 编程就是和理性严谨的电脑对话 , 所以编程者也必须较真起来 。
逻辑思维中有个非常重要的原则叫做MECE(MutuallyExclusiveandCollectivelyExhaustive) , 意思就是“相互排斥且整体完备” , 也就是“不重复 , 不遗漏” 。 比如下面右图是遵循了MECE原则的 , 左图就没有 。
东西儿童教育 报班前先看看这篇!,娃究竟要不要学编程?别急
文章图片
在编程过程中 , 处处要考虑和遵循MECE原则 。 比如在贪吃蛇的程序里 , 蛇每往前走一步 , 可能会出现4种情况 ,
a.吃到了苹果
b.撞到墙
c.撞到自己
d.什么都没发生
这4种情况是互斥的 , 比方说吃到苹果的时候就不可能撞到墙 , 那么程序中就不能让苹果出现在墙上;而且 , 这4种情况覆盖了所有可能性 , 在写程序时如果只考虑了其中的2种或3种 , 就不“完备”了 。 此外 , 编程过程中还会涉及到很多处理“与”、“或”、“非”等布尔逻辑操作 。 比方说“蛇没有吃到苹果”与“蛇没有撞到墙”(!a&&!b) , 就等价于 , “蛇撞到自己”或“什么都没发生”(c||d) 。
这些思考对孩子来说都是非常好的逻辑训练 。
改——
调试纠错能力
最重要的事情最后讲 。
当我把编程能带给孩子几项能力一一列出来的时候 , 发现这点是最重要 , 也是孩子最需要的 。
任何事情都很难一次就完成得尽善尽美 , 程序运行起来发现不对有问题 , 这时就需要孩子去寻找出错的地方 , 并将它一点一点去改正 。
程序的世界很单纯 , 只有0和1 , 对和错 , 没有模糊值 。 这跟写文章、画画什么的不一样 , 当读者、观众感觉一般时 , 可能是见仁见智 , 并不一定证明你的作品不好或者哪里有错 , 你也根本不知道该怎么改进 。
但程序不一样 , 只要运行结果和期望不符合 , 就证明中间肯定有哪儿出错了 , 不过同时也意味着只要足够努力 , 就肯定能把这个错揪出来 。 就像你告诉一只猫 , 小黑屋里肯定有老鼠 , 它负责把老鼠抓出来 , 比它不知道小黑屋里究竟有没老鼠听起来要容易和有信心得多 。