为啥有“编程思维”的人,运气不会太差?

目前,发达国家都在大力推行编程教育,培养人才,储备竞争力。

当我们学编程时,我们该学什么?

学知识吗?为了将来做程序员吗?

其实,学会编程思维才是人生赢家的入场券。

▲1.什么是编程思维

会编程不一定有编程思维

电脑能帮人类解决问题,但在此之前,人类首先要做的是理解这个要解决的问题,并找到解决问题的路径。换句话说,电脑只能搬砖,搬哪块砖、搬到哪去、走哪条路,还得人说了算。

所谓“编程思维(computational thinking)”就是“理解问题——找出路径”的思维过程,它由四个步骤组成:

1、分解(decomposition)

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

复杂问题很难一下子破解,但如果把它细分成很多个小问题,逐步解决,就容易多了。

比如,破案。

找出犯罪分子可不是件容易的事。但通常警察都会通过搞懂一系列相关的小问题破案,包括:发生了什么犯罪,什么时间,什么地点,有什么证据,有没有目击者,最近、附近是否有相似案件发生……等等。

通过拆解问题,可以深入了解犯罪的过程、细节,获得大量信息。而理解是解决的第一步。

2、模式识别(pattern recognition)

找出相似模式,高效解决细分问题。

这点至关重要。识别模式,意味着新问题变成了老问题,我们在经验库里搜索以往的类似问题及解决方法,套用解决。识别的模式越多,解题的速度就越快。

举个例子:假如你需要画100只猫,你会怎么办?找100只猫来挨个临摹?还是找出猫的“模式”?

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


3、抽象(abstraction)

聚焦重要的关键信息,忽视无用细节。

这是一个过滤的过程,通过认知问题的核心本质,帮助我们形成解决问题的构想。

接着举刚才画猫的例子,我们了解了猫的特征,就可以根据这些抽象的特点,形成关于猫的整体设想,做出一个模型。

4、算法(algorithms)

设计一步一步的解决路径,解决整个问题。

通过这四个步骤,一个棘手的复杂问题先被拆解成一系列好解决的小问题;每一个小问题被单独检视、思考,搜索解决方案;然后,聚焦几个重要节点,忽视小细节,形成解决思路;最后,设计步骤,执行——问题解决。

所以,所谓“编程思维”并不是编写程序的技巧,而是一种高效解决问题的思维方式,不当程序员也用得上。

▲2.编程思维=赢家思维

从学到玩都能用上

编程思维可以用于处理任何事。

比如——组织一次朋友聚会。

你可能需要拆分问题:你们能去哪、做什么,每个人喜欢什么、想干什么,之前你们一起玩的成功经验和失败教训,预算和每项活动的成本,时间长短,天气……

显然,用编程思维组织的朋友聚会,选择起来会更容易,也更有可能让大家玩得开心。

再比如——打电子游戏。

为了玩到一定级别,你需要知道:要收集什么物品,去哪收集,怎么收集,时限是多少,最佳路线是什么,怎么躲过敌人……通过了解细节、掌握要点,你就能制定计划,用最短时间完成升级。

处理正经事,更离不开“编程思维”,比如——写作。

想把作文写得又快又好,得先解题,拆分出可能的层次内容;然后调用大脑存储的相关信息——例子、格言,甚至曾经写过、看过的文章;列出提纲,理清思路;最后,写。

做数学题也一样,拆解、理解新问题——搜索出对应的老问题和公式——理清思路——做题。

职场牛人个个都有“编程思维”。

麦肯锡的第一个女咨询顾问芭芭拉·民托(Barbara Minto)曾提出著名的思考方式——“金字塔原理(The Minto Pyramid Principle)”。

其中,提到了一个重要原则:MECE,即Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”。也就是,将影响一个重大议题的原因,不重叠、不遗漏地拆分,借此有效把握问题核心,找到解决方案。

▲ 芭芭拉·民托

和编程思维类似的“金字塔原理”不但是麦肯锡的经典教材,也是顾问及学术界的必读书目。

网上曾有一个段子,说就算高考改成考怎么玩,玩得好的也还是这些学霸。

这是有道理的,因为人的选择决定事的结果,而选择是以思维模式为基础的。

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

编程思维不但能大大提高解决具体问题的效率,当拥有编程思维的人面临人生选择时,也会更理性地分析利弊,目标更明确,更善于利用有限的资源。

而最重要的是,具有编程思维的人不会被貌似艰巨的困难吓倒,他们知道并相信——问题是可以解决的,也会更有勇气、毅力和自信去面对生活的挑战,不会轻易被挫折打败,陷入迷茫焦虑和自怜自艾。

学业、事业、社交、玩乐,无论你的目标是什么,编程思维都能让你更迅速、更容易地达成,人生又怎么会不快乐,不幸福?

▲妥妥的人生赢家啊。

——————————

“我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。C/C++、编程爱好者的聚集地就在我这里 <进入我的专栏即可>!欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以跟我一起学习!”

关注我的专栏,带你遨游代码世界!C语言/C++进阶之路 - 专题 - 简书

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 01 反思能力是精神生活的关键,而独处则是反思的前提。教学就是帮助个体重新认识自己的真正追求。 02 男女之间...
    树苗妈妈爱树苗阅读 3,332评论 0 0
  • 先生预约了今天牙齿消炎。 前面有病人拔牙,医生看到我们等了很久,出来路过的时候一直安慰我们说,稍等一下哦。 感觉医...
    秀秀868阅读 1,373评论 0 1
  • 母亲节马上就要到了,学生写作文、做卡片,祝贺母亲节日快乐。他们写的情真意切、做的热泪盈眶,家长们都激动地在朋友圈里...
    咖啡遇茶阅读 3,707评论 5 10
  • 一天比一天起的早,六点多就叫我起来带他出去散步,由于道路改造,路不平,今天没答应他开电动摩托车出去,听着一路上的蛙...
    一一麻麻love一一阅读 1,207评论 0 0

友情链接更多精彩内容