如何让不懂编程的人感受到编程的魅力?
先引用一个故事
一家高档餐厅中,一个秃顶大叔和一个漂亮妹子相对而坐。
“谢谢你请我吃饭”,妹子有些害羞。
“没事的,半天工资就回来了。”我说的云淡风轻。
“你人真好,听说你还给我准备了礼物?”妹子看上去有些期待。
“是的”,我拿出了一只香奈儿Classic flap,“送给你。”
“这么贵重的礼物,我怎么好意思收下。”
“没关系,也就我一个月工资。”
“嘻嘻嘻,可是我还缺一条项链配这个包。”
我微微一笑,拿出了一条梵克雅宝项链,“试试吧,你戴上一定很好看。”
“会编程真厉害!”妹子由衷的感叹。
乔布斯说
每一个人都应该学习电脑编程
因为它会教你如何思考
编程思维是一种能力的思维
想要拥有编程思维
应该先了解编程是什么?
编程就是和电脑对话,用电脑能听懂的语言,告诉它我们想让它做的事情。
先来点例子:

如果我想休息一下,会这么和孩子说:“把那个凳子搬过来。”
如果我们想让电脑听懂这句话,就需要这么和电脑表达:
定义对象:什么是“凳子”;
把凳子向上移动20厘米;
往前移动两米;
把凳子向下移动20厘米。
这样,电脑就完成了我们想要它做的事情。
相比于人类之间交流的随意与感性,和电脑对话时,必须具备严谨、理性的思路,每一步都要给出准确的指令,这样就能让电脑按照自己的想法行动,不会让结果跑偏。
想要让电脑听懂我们说的话,需要让自己变得理性、严谨,思维具有条理。
很多人都听过编程思维,但对它了解的却不多,甚至会产生这种误解——编程思维就是编程算法。
其实,编程思维并不是编写程序的技巧,而是一种高效解决问题的思维方式,它是“理解问题——找出路径”的高效思维过程,由分解、模式识别、抽象、算法四个步骤组成。

1、分解——锻炼拆解复杂问题的能力
分解,就是把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。
假如孩子要为家庭出游做一次旅游规划。“全家旅游规划”听起来非常庞大、繁琐,而学会分解的孩子则会把这个难题拆分成几个容易解决的小任务——确立目的地、安排行程、预定机票和酒店、准备行李清单。
2、模式识别——锻炼发现并整合“重复规律”的能力
模式识别,就是识别不同问题的模式和趋势(共同点)的过程,在我们的经验库里找出类似问题的解决办法,套用解决。识别的模式越多,解决问题的速度也就越快。
例如,如果需要画100只猫,你会怎么办?是找100只猫来临摹还是找出猫的“模式”?
对猫进行模式识别,我们会发现猫有这些共同点:有眼睛、耳朵、尾巴、四条腿……我们根据这些特点建立起猫的“模式”,按照这个模式就能批量画猫了。不用每次画一个新动物,只需要变换局部特征(例如毛发颜色、尾巴长短)就能轻松解决。

这样看来是不是效率瞬间飙升?
在编程过程中,孩子一直在进行着这样的训练,当发现一些可重复的步骤,就会把它们整合起来,建立模式;再遇到类似问题时就能让计算机套用此模式,快速解决。
3、抽象——锻炼找出问题本质的能力
抽象,是指聚焦最重要的信息,忽视无用细节。简单来说就是找到问题的本质,过滤掉其他无关紧要的因素。
例如,面前有一套房子,我们看到的是这样的:

但是在建筑师眼中,这套房子可能是这样的:

通过抽象,建筑师过滤掉对他来说无用的因素,找到了房子最重要的信息。
在编程世界里,包含“子系统、模块、包、类、方法和语句”等不同等级的抽象,孩子能够通过编程的学习不断提升聚焦关键信息的能力。
4、算法——锻炼高效解决问题的能力
算法是一步步解决问题的过程。根据前面对问题的分析与理解,设计每一步的路径方法,解决整个问题。
在具体解决问题的过程中,最关键的是逻辑思维能力和调试纠错能力。
计算机程序需要很强的逻辑性,逻辑顺畅才能顺利运行。例如,正确代码呈现出的五角星动态图这样的:

而只是把其中两行代码交换下顺序,结果就成了这样:

孩子需要遵循编程的规则,把解决问题的步骤转换成计算机能理解的语言。在这个过程中,孩子的逻辑思维能力能得到很好地锻炼。
而调试纠错,就是当出现结果与预期不符时,需要找出算法之中的漏洞并解决。
在编程练习中,任何一行代码出问题,程序都会出错无法正常运行下去。这时,孩子就必须要自己一步步执行步骤、梳理逻辑,找出问题并想办法解决。