美文网首页读书
都说有“编程思维”的人更优秀,那么该如何学会“编程思维”呢?

都说有“编程思维”的人更优秀,那么该如何学会“编程思维”呢?

作者: 温书而知新 | 来源:发表于2019-04-15 14:13 被阅读0次

    我对于编程这项技能一直都很向往。我经常在做到一些繁琐的重复型的工作的时候,想如果有一个小程序能帮我做一些简单的重复工作就好了,这个时候往往就觉得自己如果会编程的话,就能帮助自己更好的工作了。但是隔行如隔山啊,像我这种美术出身的人来说,编程简直就像另一个世界的语言,完全不能理解。看了这本《写给所有人的编程思维》之后,我觉得我和编程的世界好像拉近了一点。

    这本书的书名叫做《写给所有人的编程思维》,顾名思义,它非常的通俗简单,可以让所有的人都懂。所有人是什么概念,我想大约是从儿童到老人都可以吧。

    这本书的封面上就把这本书的主旨给写的非常清楚了。什么是编程思维呢?。就是框架设计思维--发现问题,问题拆解思维--思考问题,函数思维--解决问题。如果用“框架设计思维,拆解思维和函数思维”,大家一定都觉得很难。但是如果用“发现问题,思考问题,解决问题”,大家都会发现,这不就是我平常都在做的事情吗?

    比尔盖茨说过:学习编程可以锻炼你的思维,帮助你更好地思考,创建一种我认为在各领域都非常有用的思维方式。

    没错,感觉这本书的作者的初衷就是希望大家都能从日常生活中发现自己的编程思维,进而对编程这门课程有一个非常系统的了解。

    一,

    这本书的开始第1章,介绍了一下计算机的特征,计算机的分类。计算机并不是我们大家所认为的就只有电脑,其实很多的我们身边的电器现在也都算是计算机的一部分,甚至我们看的电子书也算是一种计算机。第1章还介绍了编程与计算机的历史,帮我们梳理了一下计算机从最原始的状态到现在遍布我们身边这段时间发生了怎么样的变迁。

    二,

    第2章就直接跳到了解决问题,这里就有了一个疑问。“发现问题”这一章在哪里呢?我思考了一下,发现“发现问题”这个根本就不用专门的讲,因为我们平时身边都是在不停的产生问题。

    如何用编程的思维来解决问题呢?这里面讲的其实非常的详细,大致上来说就是,当碰到问题的时候,我们应该怎么解决?

    第一, 弄清楚我们碰到的是什么样的问题。

    第二, 思考问题是否有不同的解决方法?

    第三, 我们验证我们想到的这些解决方法是不是可行?

    听起来是不是很熟悉,这不就是我们平时碰到问题解决问题的一个思路吗?其实人的大脑就是一台特别精密的天然计算机,所以计算机可以说是在模仿人的一个大脑,但是并不及大脑那么精细。所以当人们给电脑下指令的时候,就需要把它拆解成非常非常精细的一步一步的指令。

    比如说叠被子这个指令就需要告诉机器人,

    ——先查看羽绒被,被子拉平了吗?没有的话就拉平。

    ——再看毯子,毯子拉平了吗?没有的话就拉平毯子

    ——在看枕头,枕头放在毯子上了吗?没有的话就把枕头放在毯子上

    ——然后才能结束。

    这个看起来是不是觉得计算机很傻呢?嗯,其实就是如此,聪明的还是编程的程序员啊。

    看到这里的时候才发现,作者其实并不是告诉你该如何编程,而是告诉你,我们做任何事情都要有一个编程思维,编程思维是什么思维呢?就是把各个方面都想到,然后做到最完善最圆满最不会出错的那一个行动。

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

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

    当遇到简单问题的时候,可能只需要几个步骤就可以圆满的解决一件事情。但如果遇到一个很复杂的问题的时候,我们该如何用编程思维来解决呢?这本书里面也给了一个完美的答案,就是把这个复杂的问题拆成无数个,或者说若干个简单的小问题,然后一步一步的来解决,这个是不是就跟王首富说的,先给自己定一个小目标是一个意思呢?

    当我们碰到一个很难的问题的时候,我想大部分人都可能会觉得非常的棘手,一部分人就会马上开始做,其实辩证思维告诉我们最正确的方法应该是先把这个问题拆解了,拆解成一部分,然后我们立刻就能知道这些问题的难点在哪里。我们需要攻克的方向在哪里?并且这个看起来很复杂的问题拆解完之后就会变成无数个简单的小问题,这样是不是对人的压力更小一些呢?

    作者还提醒我们解决这些问题的时候,要关注那些没有给出的条件和信息,因为答案会藏在我们看不见的地方。有些时候这些问题可能会受到约束,我们记得一定要在这些约束条件之下做。

    三,

    第3步学习编程语言。这一部分其实可能是我看的最累的一部分,因为我实在是跟不上理科生的这个思维。

    作者先介绍了各种编程语言,世界上有那么多的编程语言,人不可能全部都学会。作者把一些经常用的程序语言都做了一个普及性的了解,让我们知道了原来这些编程语言的原理是什么,该如何的运用。

    作者在其中还配套了有趣的小游戏和小小的插画,让看的人更能简单易懂的了解作者到底在说什么。当你的编程语言编程思维都已经准备好的时候,剩下的就是不停的练习了。

    这本《写给所有人的编程思维》,看完之后给我最大的感受并不是说如何学习编程,而是说原来我们生活中遇到的所有的事情都可以用编程思维来解决,让问题分解简化,可以大大的减少我们对于碰到问题时候的焦虑,这不是比学会编程更大的收获吗?

    正如美国麻省理工学院的计算机教授瑞斯尼克所说的:“在学编程的过程中教会孩子们如何将复杂的想法分解成几个部分,不管孩子以后做什么,都可以用的到,这才是学编程的意义所在。”

    相关文章

      网友评论

        本文标题:都说有“编程思维”的人更优秀,那么该如何学会“编程思维”呢?

        本文链接:https://www.haomeiwen.com/subject/vuluwqtx.html