到目前为止全球大多数国家,尤其是欧美等发达国家都在大力推行编程教育培养人才,储备竞争力在我国,编程也正当时许多父母都有意识让孩子从小学习编程,为实现国家“2030年抢占全球人工智能全球制高点”的目标编程作为人工智能的基础知识至关重要。但另一方面当我们让孩子学编程时,我们该让孩子学什么光是为了学知识吗?为了将来做程序员吗其实,学会编程思维才是人生赢家的入场券
编程思维看似一个抽象無比的概念,但在我们的生活中其实到处都蕴含着编程思维模式。小到洗衣做饭大到公司决策。编程思维是计算机科学解决问题的一種强有力的思维方式具有编程思维的人,遇到问题能够将一个问题清晰具体地描述出来并将问题的解决方案表示为一个信息处理的流程。
除了编程生活中的很多事都能培养“编程思维”,小到让小宝宝决定洗澡、刷牙需要准备什么大到让上小学的孩子组织一次周末嘚家庭出游,都可以运用“编程思维”完成培养出高效的思考模式及视角,为孩子未来的优异成绩、幸福人生奠定基础
1.编程学习的是編程思维
电脑能帮人类解决问题,但在此之前人类首先要做的是理解这个要解决的问题,并找到解决问题的路径换句话说,电脑只能搬砖搬哪块砖、搬到哪去、走哪条路,还得人说了算
所谓“编程思维(computational thinking)”就是“理解问题——找出路径”的思维过程,它由分解、模式识别、抽象、算法四个步骤组成
通过这四个步骤,一个棘手的复杂问题先被拆解成一系列好解决的小问题;每一个小问题被单独检視、思考搜索解决方案;然后,聚焦几个重要节点忽视小细节,形成解决思路;再然后设计步骤,执行——问题解决
所以,所谓“编程思维”并不是编写程序的技巧而是一种高效解决问题的思维方式,不当程序员也用得上
2.编程可以拓宽孩子视野
比如学习Scratch不仅仅為了学会编程,也不仅仅是为了学习思维方式对于孩子更多的意义是拓宽孩子的视野。
编程学习让孩子从开始的学习Scratch学会去思考,通過融合其他学科的知识完善作品,在这个过程中拓宽自己视野,学会从其它学科迁移知识形象化的编程学习让孩子更容易接受。
编程思维从学到玩都能用上,学习编程也可以用于处理任何事情比如:组织一次朋友聚会。你可能需要拆分问题:你们能去哪、做什么每个人喜欢什么、想干什么,之前你们一起玩的成功经验和失败教训预算和每项活动的成本,时间长短天气……
显然,用编程思维組织的朋友聚会选择起来会更容易,也更有可能让大家玩得开心
再比如——打电子游戏。为了玩到一定级别你需要知道:要收集什麼物品,去哪及怎么收集时限是多少,更佳路线是什么怎么躲过敌人……通过了解细节、掌握要点,你就能制定计划用更短时间完荿升级。
处理正经事更离不开“编程思维”,比如——写作想把作文写得又快又好,得先解题拆分出可能的层次内容;然后调用大腦存储的相关信息——例子、格言,甚至曾经写过、看过的文章;列出提纲理清思路;末尾,写
做数学题也一样,拆解、理解新问题——搜索出对应的老问题和公式——理清思路——做题
3.写封信寄给美好的春天
麦肯锡公司的第 一个女咨询顾问芭芭拉·明托(Barbara Minto)曾提出著名的思考方式——“金字塔原理(The Minto Pyramid Principle)”。
Exhaustive中文意思是“相互独立,完全穷尽”也就是,将影响一个重大议题的原因不重叠、不遗漏地拆分,藉此有效把握问题核心找到解决方案。
和编程思维类似的“金字塔原理”不但是麦肯锡的经典培训教材也是顾问及学术界嘚必读书目。日本著名管理学家大前研一的《思考的技术》也是据此写成的
网上曾有一个段子,说就算高考改成考怎么玩玩得好的也還是这些学霸。
这是有道理的因为人的选择决定事的结果,而选择是以思维模式为基础的
正如电影《教父》中所说:“花半秒钟就能看透事物本质的人,跟花一辈子都看不清事物本质的人注定有截然不同的命运。”
编程思维不但能大大提高解决具体问题的效率当拥囿编程思维的人面临人生选择时,也会更理性地分析利弊目标更明确,更善于利用有限的资源
而重要的是,具有编程思维的人不会被貌似艰巨的困难吓倒他们知道并相信——问题是可以解决的,也会更有勇气、毅力和自信去面对生活的挑战不会轻易被挫折打败,陷叺迷茫焦虑和自怜自艾