- 两个原则
- 七对关系
计算机思维是全方位的,不太可能用一两句话概括。简单地讲,需要处理好这样七对关系:
- 大和小
人类生活的环境,决定了我们对大数字是没有感觉的。
不同的生活环境,决定了我们对“大”和“小”的理解是不一样的。
计算机天生就是为大数字而设计的,
第一台计算机可以1秒钟执行5000次运算,比人已经快很多了。
- 快和慢
人的进化是很慢的,每个世纪只有百分之几,总体来讲经济和社会的发展也是比较慢的,每年最多几个百分点。因此,人本身并不适应非常快速的发展变化。但是,计算机本身的发展是18个月翻一番,大约相当于10年增加100倍,在智能时代,人的思维要适应这种快速变化。
- 多维度和单一维度
从总体上来讲,人脑是线性处理事务的,看问题常常是一个角度,也没有能力把很多角度综合起来。但是,计算机有这个能力,因此占到了多维度的便宜。
- 网络和个体
人的思维是个体行为,作决定彼此不干扰。这有好的一面,但是也难以集中很多人的智慧,产生叠加的效果。事实上,群体智慧的简单叠加甚至不如个人的智慧。但是人工智能是建立在网络效应基础上的,它是通过很多彼此联系的计算机共同协作工作而产生的。
- 自顶向下和自底向上
自顶向下做事这一点是计算机的精髓,而人更适合自底向上。在一个组织内,自底向上的做事方式更容易激发群体的积极性,但是容易造成资源的浪费。这一点以后我会专门举例说明。
- 全局和局部
人做事情时,限于自己的认知,通常得到的是局部最佳,失去对全局的优化的可能性。由于计算机有处理大数的能力,以及是自顶向下的做事方式,更容易得到全局最佳。这一点在 AlphaGo 和人对弈时表现得淋漓尽致。
- 成本和表现
人很多时候喜欢强调对错,喜欢追求绝对的公平,喜欢要求最好的结果。但是,从工程的角度讲,好和坏,只是在固定成本下相对的表现。计算机里面无论是软件设计,还是硬件设计,都是在平衡性能和成本的关系。
此外,掌握计算机思维,还需要理解下面两个原则:
一、等价性原则
很多时候,一个较难的问题 A 和相对容易的问题 B 是等价的。但是人类常常容易给什么问题就解决什么问题,给了 A 就解决 A,尽管它很难。而计算机则会试图解决等价,但是却更简单的问题。
二、模块化原则
我们在生活中,做一个桌子,或者一个椅子,会直接去做。而在计算机的世界里,永远是先制作几个非常简单,能够大量复制的乐高积木块,然后用很多这样简单的模块,搭出复杂的桌子和椅子。
网友评论