大家经常听说“学编程可以培养编程思维”,而编程思维是什么?学编程和培养编程思维有什么联系你知道吗?
一、什么是编程?
在了解编程思维之前,首先,要和大家说一说什么是编程。
编程就是和电脑对话,用电脑能听懂的语言,告诉它我们想让它做的事情。
举个例子:
如果我们想要休息,我们会搬个凳子,放下,然后坐上去休息。
如果我们想让电脑听懂这句话,就需要这么和电脑表达:
步骤:
1、定义对象:什么是“凳子”;
2、把凳子向上移动20厘米;
3、往前移动两米;
4、把凳子向下移动20厘米。
这样,电脑就完成了我们想要它做的事情。
所以,相比于人类之间交流的随意与感性,和电脑对话时,必须具备严谨、理性的思路,每一步都要给出准确的指令,这样就能让电脑按照自己的想法行动,不会让结果跑偏。
想要让电脑听懂我们说的话,需要让自己变得理性、严谨,思维具有条理。当我们试着从电脑的角度去思考问题时,也就学习并锻炼到了我们常说的“编程思维”。
二、编程思维是什么?
很多人都听过编程思维,但对它了解的却不多,甚至会产生这种误解——编程思维就是编程算法。
其实,编程思维并不是编写程序的技巧,而是一种高效解决问题的思维方式,它是“理解问题——找出路径”的高效思维过程,由分解、模式识别、抽象、算法四个步骤组成。
01、分解
锻炼拆解复杂问题的能力
分解,就是把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。
假如,要为自己全家人做一次出游规划,“全家旅游规划”听起来非常庞大、繁琐,而懂得“分解”的话,就可以把这个大难题分解成几个容易解决的小步骤:确立目的地、安排行程、预定机票和酒店、准备行李清单。
所以,在学习编程的过程中,就是在不断地训练他们把复杂的问题拆解、理顺的过程。这个过程是解决问题的基础,把问题拆解清楚,才有接下来实现的可能。
02、模式识别
发现并整合“重复规律”的能力
模式识别,就是识别不同问题的模式和趋势(共同点)的过程,在我们的经验库里找出类似问题的解决办法,套用解决。识别的模式越多,解决问题的速度也就越快。
例如,如果需要画100只猫,你会怎么办?是找100只猫来临摹还是找出猫的“模式”?
对猫进行模式识别,我们会发现猫有这些共同点:有眼睛、耳朵、尾巴、四条腿……
我们根据这些特点建立起猫的“模式”,按照这个模式就能批量画猫了。不用每次画一个新动物,只需要变换局部特征(例如毛发颜色、尾巴长短)就能轻松解决。
这样看来效率是不是瞬间飙升N倍?
在编程过程中,其实我们一直在进行着这样的训练,当发现一些可重复的步骤,就会把它们整合起来,建立模式;再遇到类似问题时就能让计算机套用此模式,快速解决。
03、抽象
锻炼找出问题本质的能力
抽象,是指聚焦最重要的信息,忽视无用细节。简单来说就是找到问题的本质,过滤掉其他无关紧要的因素。
例如,面前有一套房子,我们看到的是这样的:
但是在建筑师眼中,这套房子可能是这样的:
通过抽象,建筑师过滤掉对他来说无用的因素,找到了房子最重要的信息。
抽象思维,能够让我们在大量信息中抓住关键信息,提高学习效率。
04、算法
锻炼高效解决问题的能力
算法,是一步步解决问题的过程。根据前面对问题的分析与理解,设计每一步的路径方法,解决整个问题。
在具体解决问题的过程中,最关键的是逻辑思维能力和调试纠错能力。
计算机程序需要很强的逻辑性,逻辑顺畅才能顺利运行。例如,正确代码呈现出的五角星动态图这样的:
而只是把其中两行代码交换下顺序,结果就成了这样:
所以,我们需要严格遵循编程的规则,把解决问题的步骤转换成计算机能理解的语言。在这个过程中,我们的逻辑思维能力能得到很好地锻炼。
而调试纠错,就是当出现结果与预期不符时,需要找出算法之中的漏洞并解决。
在编程练习中,任何一行代码出问题,程序都会出错无法正常运行下去。这时,就必须要自己一步步执行步骤、梳理逻辑,找出问题并想办法解决。
苹果CEO乔布斯曾说过:“每个人都应该学习编程,因为它教会你如何思考。” 编程思维在各个行业都用得到,是未来人工智能时代每个人都应具备的一种思维,先人一步学习编程,快人一步把握未来机遇。