学习计算机编程本质上是在学习一种思维方式——编程思维,它是一种思维体操,可以极大提升人的逻辑推理能力和解决问题的能力。?
微软创始人盖茨说过:“应该让孩子们从小就学习编程,这与学习语言一样重要,它能培养孩子们的创造性解决问题的能力。”整个社会已经逐渐迈入人工智能时代(AI时代),AI时代是一个以计算机科学为基础的时代,其核心则是编程思维。
那么什么是编程思维呢?
具体来看编程思维包含四大内容:分解、抽象、模式识别和算法
1、分解(decomposition):分解思维是将一个大问题拆解成许多小的部分。这些小部分更容易理解,让问题更加容易解决。
比如,举办一次生日晚餐
这看起来是一件容易的事,但也涉及很多方面的细节,包括:敲定时间,预约朋友,购买食材和酒水,订蛋糕,布置房间,做菜,活动安排…..等等模块,每个模块也可以再次细分。
2、模式识别(pattern recognition):找出相似模式,高效解决细分问题。
识别模式,意味着新问题变成了老问题,我们在经验库里搜索以往的类似问题及解决方法,套用解决。识别的模式越多,解决问题的速度就越快。
举个例子:假如你需要画100只猫,你会怎么办?找100只猫来挨个临摹?还是找出猫的“基本模式”?
如果是后者,你可能要知道猫长毛,有眼睛、尾巴、四条腿。然后,按照这个“模式”,你就可以“批量”画猫了——你不用每次画一个新动物,只需要变换局部特征:黄白条的猫还是黑猫,长尾巴的猫还是短尾猫。
3、抽象(abstraction):聚焦重要的关键信息,忽视无用细节。
这是一个过滤的过程,是通过分析综合,把事物的一般的、本质的属性抽出来,认知问题的核心本质,帮助我们形成解决问题的构想。接着举刚才画猫的例子,我们了解了猫的特征,就可以根据这些抽象的特点,形成关于猫的整体设想,构建猫的模型。
4、算法(algorithms):设计一步一步的解决路径,解决整个问题。
通过这四个步骤,一个复杂问题先被拆解成一系列容易解决的小问题;每一个小问题被单独检视、思考,搜索解决方案;然后,聚焦几个重要节点,忽视小细节,形成解决思路;最后,设计步骤,执行——问题解决。
所以,所谓“编程思维”并不是编写程序的技巧,而是一种高效解决问题的思维方式。
那么编程思维有哪些好处呢?编程思维能培养人五个方面的能力:策划构思能力、逻辑分析能力、模式识别能力、问题分解能力、测试纠错能力。
以解数学题为例:先解题→调用大脑存储的相关信息——搜索相关知识点→套用知识点→解决问题。不管你从事什么,编程思维都能让你更容易成为处理问题的高手。
从玩到学习,编程思维可以用于处理任何事。比如——组织朋友聚会。你可能需要拆分问题:你们能去哪、做什么,每个人喜欢什么、想干什么,之前你们一起玩的成功经验和失败教训,预算和每项活动的成本,时间长短,天气……显然,用编程思维组织朋友聚会,选择起来会更容易,也更有可能让大家玩得开心。
再比如——写作。想把文章写得又快又好,得先拟定主题,拆分出可能的层次内容;然后调用大脑存储的相关信息——例子、格言,甚至曾经写过、看过的文章;列出提纲,理清思路;最后,写。
编程思维不仅能大大提高解决问题的效率,也能让我们更理性做出选择。而最重要的是,具有编程思维的人不会被貌似艰巨的困难吓倒,他们知道并相信——问题是可以解决的。因而往往也会更有勇气、毅力和自信去面对生活的挑战,不会轻易被挫折打败,陷入迷茫焦虑。
学业、事业、社交、玩乐,无论你的目标是什么,编程思维都能让你更迅速、更容易地应对挑战,人生又怎么会不快乐,不幸福?