三分钟,教你快速看懂编程!

随着科技的不断发展,编程已经深入到生活的方方面面,不少孩子也加入学习编程的大军。

但是很多家长会疑惑:编程到底是什么呢?孩子是怎样学习如何创作动画、游戏?培养逻辑思维能力?

学编程,到底是在学什么?


编程,其实就是和电脑对话的过程。通俗来讲,就是用计算机可以听懂的语言,去命令计算机做我们想让它做的事。


但是计算机可以听懂的语言又是什么,和人类的语言区别在哪里呢?


比如说我想吃番茄炒蛋,那我可以跟老妈说:“老妈,帮我做个番茄炒鸡蛋!”那这句话如果想让电脑听懂应该怎么说呢?


我得先告诉它哪个是“鸡蛋”、哪个是“番茄”、什么是“炒”,然后再告诉它怎么去炒,比如先打开冰箱,拿出两个鸡蛋,拿出一个番茄,准备一口锅……


你有没有感受到,人类天性⾥带着感性、随意等特质,但电脑完全不同。


电脑仿佛是一个高科技“铁血战士”,它理性、严谨、一丝不苟,我们对它的要求,每步都一定要有准确的指令。

与人类不同,它完全服从命令听指挥,你说的它都会严格照办,从来不会任性发挥或是趁你不注意悄悄偷懒。


所以,想要让电脑听懂我们的话,就必须让自己和电脑一样,理性、严谨,否则就无法和电脑沟通。


当孩子试着从电脑的角度去思考问题时,也就学习和锻炼到了所谓的编程思维。


所以说,学编程不只掌握一项技能、培养一个兴趣,更重要的,是掌握背后一整套高效解决问题的思维模式。

编程思维,具体是什么?


也许不少的家长都多多少少接触过“编程思维”这个词,但都是听说过,没见过。


编程思维,其实就是编程运用的思维,学习编程就是在学习编程思维,学数学就是在学习数学思维……以此类推。


换句话说,编程思维是“理解问题——找出路径”的高效思维过程,它由分解、模式识别、抽象、算法四个步骤组成。


1、分解

锻炼孩子拆解复杂问题的能力



分解,就是把一个复杂的大问题拆解成更可执行、更好理解的小步骤。


例如,有位小朋友想制作一个飞机大战的小游戏,他就自己亲自撰写了项目计划书,一步步拆解自己要实现的每个功能。

条理清晰,步步分明,简直和一个干练的职场人员没什么两样。



我们平时看起来很简单的效果,实现起来需要拆解成很多的步骤!编程,就是训练孩子不断把复杂、庞大的问题拆解、理顺的过程。这项练习是解决问题的基础,只有分解的清楚,才有接下来实现的“可能”。


这项能力在学习上也能应用,常常体现在审题能力或是读题能力。分解能力强了,无论是解数学应用题、阅读理解、写作、还是制定一项计划,都能轻松搞定。


特别是同样面对数学,分解能力好的孩子会列出清晰的解题步骤,搞定一步是一步,即使最后不一定能完全解答出来,也能清楚地知道自己的进展。


2、模式识别

整合“重复规律”的能力



“模式识别“,就是找出相似模式,高效解决细分问题。在我们在经验库里调用以往类似问题的解决方法,套用解决。识别的模式越多,解决问题的速度就越快。


比如,现在我们需要画50条狗,你会怎么办?一定要有100条狗供我们临摹么?还是找出狗的“模式”,不断创造?


如果是后者,你可能要知道狗长毛,有眼睛、尾巴、四条腿。然后,按照这个“模式”,你就可以“批量”画狗了——只需要变换它的局部特征,不用每次都换一个全新的。



在编程的过程中,孩子就可以发现并整合一些可以重复的单元,让计算机去重复它。


善于发现和总结“可复用的规律”的孩子,在做题时的效率会大大提高,就像脑袋里自备了一个装有各种规律的“方法库”,遇到类似情况就直接调用,非常方便快捷,还能大大降低出错率。


3、抽象

深度学习的能力



抽象,简单来说就是找到问题的本质,过滤掉其他无关紧要的因素。


举例来讲,普通人如果看见别墅,我们看到的是这样的:



但是在专业的建筑师看来,它可能是这样的:



经验丰富的建筑师能抽象出房子内部的构造,如果孩子学编程,也可以有类似的能力。

以前可能只是玩游戏,学了编程以后,就可以看到一个游戏背后实现的步骤,看透游戏的本质,会有种自己要创作游戏的冲动。实现从”游戏玩家“到”游戏发明家“的华丽变身!


正如电影《教父》中所说:“花半秒钟就能看透事物本质的人,跟花一辈子都看不清事物本质的人,注定有截然不同的命运。


4、算法

高效解决问题能力




算法,就是解决问题的方法,通过对一系列问题的学习,设计出逐步解决问题的路径,从而轻松攻克这类问题。


在这个过程,需要“逻辑思维”和“检查纠错”这两种能力 。


 逻辑思维 

想了解逻辑思维,要先来了解下MECE原则,这个原则在逻辑思维里非常重要。MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且完全穷尽”,也叫“不重复,不遗漏”。

(右图符合MECE原则,左图不符合)


不仅是在编程中,孩子日常做作业也需要考虑MECE原则,保证答案中考虑到所有的情况,而这些情况既不遗漏,也不重叠。


孩子做好步骤拆解后,就要整理这些问题:如何“通过改变坐标位置实现角色的移动”,“使⽤循环、条件判断让角色实现想要的重复动作“等,将代码合理的安排在整个程序中,要绝对保证每一步准确清晰,因为差之毫厘,失之千里。


例如,正确代码呈现出的五角星动态图这样的:


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



千里之堤毁于蚁穴,小小的失误会出现很大的差别。


这一点相信很多家长都有切身体会,孩子通过几节课的学习,条理性就可以大大提高。

② 检查纠错能力 

在编程过程中,任何⼀处代码的错误,都会导致程序无法正常运行。


如果出现问题,孩子需要自己通过执行效果,梳理逻辑,找出问题并一点点纠正。但是,程序中的那些bug并不容易发现,可能会耗费几分钟、几十分钟、甚至几个小时,但当孩子找到错误的那一瞬间,能收获满满的成就感。

孩子的耐心、观察力和专注力就在这样一次次的训练中提升,也练就强大的心里承受能力。


孩子会明白,出错并不代表失败,而是成功的必经过程,是可以修复的bug,人生亦是如此!



每个人都应该学习编程,因为它教会你如何思考。

    

编程为孩子树立了正确的人生观,让他们不再被错误吓到,养成热爱挑战的积极态度,非常利于培养孩子的成长性思维。


WeCode在线少儿编程,用孩子们喜欢的方式,培养高效的做事视角,潜移默化的提升孩子解决问题的能力。

原文链接:dsnaiofneoifieowsnfo