计算机思维的前世今生

作者: 航哥很帅 | 来源:发表于2019-07-28 19:02 被阅读90次

最近在得到APP上听万维钢老师讲解一本今年4月份出版的新书《计算机思维》,书中提到计算机思维已经影响到了现代人生活的方方面面,比如在计算机没有出现之前,当人们压力很大的时候,都愿意说:变压力为动力。其实这就是典型的工业革命时期的思维影响人类思维的例子。而现在很多年轻人压力很大的时候则更愿意说:我的大脑死机了。这就是典型的计算机思维在影响我们的生活思维。计算机思维不仅对我们的生活有影响,而且这个思维非常重要,可以说影响到了人类技术发展的进程,下面我们就通过三个问题来看看,计算机思维到底重要在哪里。

是先有的计算机思维还是先有的计算机?

这仿佛是一个鸡生蛋蛋生鸡的问题,但其实不是,这是一个很简单的问题。因为,肯定是先有的计算机思维然后才有的计算机。说到这里就不得不说计算机里一个非常重要的概念——算法。算法其实就是一波流程化的操作,只要按照这个流程走下去,就可以得到想要的结果。所以你从这个定义就可以看出,虽然算法是计算机里一个非常重要的概念,但是这个概念绝对不仅仅适用于计算机。甚至可以这样说:

生活之中处处有算法。

比如,你上小学就已经学会的一个算法,求两个数的最大公约数。求最大公约数的算法是:这两个数的最大公约数,和这两个数的差与其中较小的那个数的最大公约数是一样的。也许你不知道这个算法是怎么得来的,但是只要你按照这个算法进行执行,就肯定可以得到这两个数字的最大公约数。最后,我还要告诉你的是,这个求最大公约数的算法,在计算机编程时还一直在用,这不就是典型的先有计算机思维才有计算机的典型案例吗?

我相信仅仅从上面那些内容还不够说服你是先有的计算机思维,那我们就来看下面这个例子:在十七世纪至计算机出现之前,社会上有一个职位叫Computer,翻译成中文叫计算师(当然现在一般都翻译成计算机),计算师在那时候就是专门做计算的人,二战期间美军甚至还给了计算师一个专门的编制。计算师的工作就是根据制定好的流程,进行标准化的操作,然后得出设定好的结果。在计算师非常多,而且流程也比较复杂的情况下,这就要满足以下三个条件:

一是:计算过程必须是可拆分的,每一步干什么必须是非常明确的和简单的;

二是:所有这些步骤要能够拆分开来,分给不同的计算师来负责;

三是:必须有纠错机制,让计算师们能觉察到自己哪里算错了。

如果你是一个程序员,你看到这三个条件是不是会情不自禁的来一句:哦~。没错,这不就是“分布式并行计算吗!”更难能可贵的是,这不但是计算机思维,而且还是超级计算机或者是叫大型分布式计算机系统的思维。

其实说到这,我相信也许您可能已经意识到一个问题了,就是让人去按照流程使用算法,即使算法设计的再精确也还是会出错,因为人是动物,是动物就会有走神和状态不好的时候。因此要想设计好的算法绝对不出错,或者是出错概率极低,那就必须计算机登场了。

计算机思维的第一个原则是什么?

计算机思维的第一个原则就是:

把人的情感和主观判断排除在计算过程之外。

这样就能保证把一切理论的推理都标准化、流程化、机械化,不管是谁来操作,只要你严格遵守规则,就一定能推出客观的、正确的判断。现在的计算机已经有了非常非常大的进展,20世纪的学者发明了像“布尔代数”、“逻辑谓词”这些理论准备,信息论祖师爷香农发明了用电路实现通用逻辑运算的方法,之后就逐渐出现了让人快的无法想象的计算机。今天真的有很多理论推导,可以交给计算机去做,甚至计算机可以证明数学定理。

我们都知道,计算机是发明出来的东西,那发明出来的东西能单独发展成一个学科吗?既然现在各个学科都要用的计算机,为什么还要有一个计算机系呢?下面我们就来详细说说这个有趣的问题。

计算机能不能算是一个真正的学科?

首先我们要明白一点,计算机科学系,不是给程序员提供职业培训的地方,计算机科学系是研究计算机的地方,这是因为计算机科学里有各种层出不穷的高妙思想,计算机是一个想法产生技术(先有计算机思维已经证明了这一点),技术刺激想法,想法又产生新想法的故事。

《计算机思维》这本书列举了计算机科学的各种进步,主要发展为三个方面:

初级,是怎么更好的实现自动化,主要解决应用问题。

比如:刚开始人们编程都用汇编语言(一种机器语言),后来发展出了高级语言VB(面向过程串行编程),再后来甚至发展出了面向对象编程的语言(面向对象是自然界一种非常普遍理解世界的方法),比如C++、Java,以及Python等。通过编程语言的发展你应该就能看出来,这些慢慢发展出来的东西都是学问呀!再进一步说,编程的“思想”在演化呀,这不就像是生命的演化过程吗?!

中级,是研究“计算”这件事儿本身,上升到了类似于自然科学的层面。

1967年三位计算机科学家在《科学》杂志上发表了一篇文章,说现在计算机科学已经算得上是一门真正的学科了:就好像动物学研究动物,植物学研究植物一样,计算机科学,研究计算机。那计算机有什么好研究的呢?其实,真正的程序员都认为计算机是有生命的,它有自己的脾气,有自己的特性和性格。要想操作好它,你得像动物学家理解动物一样,去理解它才行。

高级,则是把计算机思维用到其他学科领域中去,是带给人认知的升级。

随着计算机科学的发展,人们慢慢意识到,“计算”是个非常基础的逻辑,到处都是计算。生物学家说,DNA就是一个计算系统,DNA复制就是计算操作,甚至生命就是一个计算现象。物理学家也说,基本粒子的运动就是信息交换呀,物理定律就是计算。甚至还有人提出,整个宇宙就是一台计算机(你肯定听说过),当然这缺乏足够的证据。

所以说,计算机科学绝不仅仅是解决自动化问题的学问,它还有计算机和计算理论自身的学问。通过这么多的说明,不知你是否体会到了一点点学术的魅力。一门学科就好像有生命一样,它不但要发展壮大,而且要在不同的维度上发展壮大。这就好像幻想小说中的修仙一样,这门学问的发展,就如同一个人刚出道的时候被人看不起,但是他有很多奇遇,今天学个大招升级一项技能,然后过个几十年换了筋骨,再过几百年居然成仙升天了。但其实,在真实的世界里,计算机学科的发展,比修仙要高级和复杂的多,如果有机会,我们后面接着说。

我是徐建航,这是我写的第105篇文章,欢迎你加入007社群,七天写一篇,一起写七年,七年之后一起去南极。

相关文章

  • 计算机思维的前世今生

    最近在得到APP上听万维钢老师讲解一本今年4月份出版的新书《计算机思维》,书中提到计算机思维已经影响到了现代人生活...

  • 计算机的前世今生

    各种水平有限 不喜勿喷! 很久很久以前,大概在几千年以前吧。就诞生了数学。实在是太自然不过了,因为数学实在太有用了...

  • 计算机视觉的前世今生

    原创:王稳钺资料来源:安健侨 一、人工智能之智 这个图非常有意思,这是按照时间线排布的不同画师画的朱元璋。如果了解...

  • 将军在上之男昭女惜重生三世千年孽缘

    前世!今生!来世再续! 前世欠谁!今生还!来世再续前缘! 前世因!今生续!来世果!

  • 人死,并非如灯灭……

    “今生,是前世的“来生”,是来生的“前世”。在今生中,我们能见到自己的前世与来生。回溯前世,是为了改善今生;回到今...

  • 前世今生来世缘

    谈何前世情 今生还 今生情 来世还 前世孽债 前世还 未了 今生还 今生欠 今生还 谈何来世还 来世欠 来世还 能...

  • iOS Device ID 的前世今生

    iOS Device ID 的前世今生 iOS Device ID 的前世今生

  • 何世许今生

    前世的怨,今生的恨;前世的悲,今生的苦;前世的善,今世的乐。

  • 前生不欠 今生不见

    若無前世緣,何來今生見 前世不回眸,今生怎擦肩 前世若不欠,今生亦不見 今生且不欠,來生即自願

  • 今生的钥匙,前世的锁!

    今生的钥匙,前世的锁! 2019-05-24 午夜 今生的钥匙,前世的锁, 今生的...

网友评论

    本文标题:计算机思维的前世今生

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