其实好多家长都存在一个误区——让孩子学习编程,就等于让TA长大以后成为程序员。
每当这个时候,家长是不是也要考虑一下,学习语文等于长大以后成为文豪?学习数学就等于长大以后成为数学教授?学习英语就等于长大以后成为翻译官?
先入为主的定式思维,其实恰恰说明了,家长这一代,确实缺少了编程教育。
毕竟编程教育的主要作用,就是培养编程思维,帮助我们在思考过程中理清思路,理解问题并找出的解决方式。
具备了这种思维能力的人,在任何场合,遇到各种问题时,都不会慌,稳如泰山,运筹帷幄。

编程带来的是一种思维
电脑的诞生,可以说是20世纪较伟大的科学技术发明之一。难以想象,如果没有这项伟大的发明,21世纪的我们,现在会处于一种什么样的生活状态中。
随着计算机科技的发展,人类借助计算机可以解决的问题,越来越广泛。
世界上台电子计算机,看上去不太便携
不过,计算机终究只是一种工具,控制计算机的,归根结底还是人类。换句话说,电脑只能搬砖,搬哪块砖、搬到哪去、走哪条路,还得人说了算。
所以说,在借助计算机之前,人类首先要做的,是理解要解决的问题,并找到解决问题的路径。
而这个过程,就是编程思维的所在。
编程思维的四个步骤
编程思维(Computational Thinking),就是“理解问题——找出路径”的思维过程,它由四个步骤组成:
①分解Decomposition
——把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。
那些看起来很棘手的复杂问题,恐怕是很难一下子就能破解掉,但如果把它拆分成多个小问题,然后逐步解决拆分出来的小问题,这样和直接破解复杂问题比起来,可就容易多了。
举个例子,我们在推理小说中经常看见的——破案。
找出案件的真凶,并不是一件显而易见的事。但通常侦探都会通过探究一些和案件相关的小细节,找到背后有真相的蛛丝马迹,比如:发生了什么,什么时间,什么地点,有什么证据,有没有目击者,较近、附近是否有相似案件发生……等等。
通过拆解问题,可以深入了解案件的过程、细节,获得大量信息,而理解是解决的步。
②模式识别Pattern Recognition
——找出相似模式,解决细分问题。这点至关重要。
识别模式,意味着新问题变成了老问题,我们在经验库里搜索以往的类似问题及解决方法,套用解决。识别的模式越多,解题的速度就越快。
举个例子:假如你需要画100只猫,你会怎么办?找100只猫来挨个临摹?还是找出猫的“模式”?
如果是后者,你可能要知道猫长毛,有眼睛、尾巴、四条腿。然后,按照这个“模式”,你就可以“批量”画猫了——你不用每次画一个新动物,只需要变换局部特征:黄白条的猫还是黑猫,长尾巴的猫还是短尾猫。
③抽象Abstraction
——聚焦重要的关键信息,忽视无用细节。
这是一个过滤的过程,通过认知问题的核心本质,帮助我们形成解决问题的构想。
接着举刚才画猫的例子,我们了解了猫的特征,就可以根据这些抽象的特点,形成关于猫的整体设想,做出一个模型。
④算法Algorithm
——设计一步一步的解决路径,解决整个问题。
通过这四个步骤,一个棘手的复杂问题先被拆解成一系列好解决的小问题;每一个小问题被单独检视、思考,搜索解决方案;然后,聚焦几个重要节点,忽视小细节,形成解决思路;较后,设计步骤,执行——问题解决。
所以,所谓“编程思维”并不是编写程序的技巧,而是一种解决问题的思维方式,不当程序员也用得上。
编程思维=赢家思维
从学到玩都能用上,编程思维可以用于处理任何事。
组织一次朋友聚会
你可能需要拆分问题:你们能去哪、做什么,每个人喜欢什么、想干什么,之前你们一起玩的成功经验和失败教训,预算和每项活动的成本,时间长短,天气……
显然,用编程思维组织的朋友聚会,选择起来会更容易,也更有可能让大家玩得开心。
打电子游戏
为了玩到一定级别,你需要知道:要收集什么物品,去哪及怎么收集,时限是多少,较佳路线是什么,怎么躲过敌人……通过了解细节、掌握要点,你就能制定计划,用较短时间完成升级。
处理正经事,更离不开“编程思维”——写作
想把作文写得又快又好,得先解题,拆分出可能的层次内容;然后调用大脑存储的相关信息——例子、格言,甚至曾经写过、看过的文章;列出提纲,理清思路;较后,写。
做数学题也一样,拆解、理解新问题——搜索出对应的老问题和公式——理清思路——做题。
职场牛人个个都有“编程思维”
麦肯锡公司的个女咨询顾问芭芭拉·民托(Barbara Minto),曾提出的思考方式——“金字塔原理(The Minto Pyramid Principle)”。
其中,提到了一个重要原则:MECE,即Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”。
金字塔原理
也就是,将影响一个重大议题的原因,不重叠、不遗漏地拆分,藉此有效把握问题核心,找到解决方案。
和编程思维类似的“金字塔原理”不但是麦肯锡的经典培训教材,也是顾问及学术界的必读书目。
日本管理学家大前研一的《思考的技术》也是据此写成的。
网上曾有一个段子,说就算高考改成考怎么玩,玩得好的也还是这些学霸。
这是有道理的,因为人的选择决定事的结果,而选择是以思维模式为基础的。
正如电影《教父》中所说:“花半秒钟就能看透事物本质的人,跟花一辈子都看不清事物本质的人,注定有截然不同的命运。”
编程思维不但能大大提高解决具体问题的效率,当拥有编程思维的人面临人生选择时,也会更理性地分析利弊,目标更明确,更善于利用有限的资源。
而较重要的是,具有编程思维的人不会被貌似艰巨的困难吓倒,他们知道并相信——问题是可以解决的,也会更有勇气、毅力和自信去面对生活的挑战,不会轻易被挫折打败,陷入迷茫焦虑和自怜自艾。
学业、事业、社交、玩乐,无论你的目标是什么,编程思维都能让你更迅速、更容易地达成,人生又怎么会不快乐,不幸福?