计算机思维
《谷歌方法论》
7对关系
1. 大和小
1. 什么是大数,什么是小数呢?我说1你可能明白,我说银河系中所有的星星,你可能就没有感念。人类是无法计算大数的,所有有了计算机。
2. 计算机每秒运行百万或上亿次的计算,我们也没有概念。这就是量级的差别,什么是量级呢?
3. 举个例子,芝麻,西瓜,多少个芝麻也比不上一个西瓜对吧。好,接下来这样来对比,芝麻——西瓜——山脉——地球——太阳——银河——宇宙。
2. 快和慢
1. 人的进化很慢,每个世纪只有百分之几;
2. 经济和社会发展也很慢,每年几个百分点;
3. 人本身不适应于非常快速的的发展变化;
4. 计算机的发展变化是18个月翻一番,10年增加100倍,在智能时代人要适应这
种变化。
3. 多维度和单一维度
* 从总体来讲,人脑是线性处理事物的,看问题是一个角度,也没有能力把很多角度综合起来;
* 但是计算机有这个能力,占了多维度的便宜。
4. 网络和个体
* 人的思维是个体行为,做决定彼此不干扰。这有好的一面,但也难以集中很多人的智慧,产生叠加的效果。
* 事实上,群体智慧的简单叠加甚至不如个人的智慧。
* 但是人工智能是建立在网络效应的基础上的,它是通过彼此联系的计算机共同协作工作而产生的。
5. 自顶向下和自底向上
* 自顶向下做事这一点是计算机的精髓, 而人更适合自底向上。
* 在一个组织内,自底向上的做事方式更容易激发群体的积极性,但是容易造成资源的浪费。
6. 全局和局部
* 人做事情时限于自己的认知,通常得到的是局部最佳,失去对全局的优化的可能性。
* 由于计算机有处理大数的能力,以及是自顶向下的做事方式,共容易得到全局最佳。这一点在AlphaGo和人际对弈时表现得淋漓尽致
7.成本和表现
* 人很多时候喜欢强调对错,喜欢追求绝对的公平,喜欢要求最好的结果。
* 但是,从工程的角度讲,好和坏只是在固定成本下相对的表现,计算机里边无论是软件设计,还是硬件设计,都是在平衡**性能**和**成本**的关系。
掌握计算机思维还需要理解下面两个原则:
1. 等价性原则
很多时候,一个较难的问题A和相对容易的问题B是等价的,但是人类常常容易给什么问题就解决什么问题,给了A就解决A,尽管它很难。而计算机则会试图解决等价,但是却更简单的问题。
2. 模块化原则
我们在生活中,做一个桌子或椅子,会直接去做。而在计算机世界里,永远是限制做几个非常简单能够大量复制的乐高积木块然后用很多这样简单的模块,搭出复杂的桌子和
椅子
因篇幅问题不能全部显示,请点此查看更多更全内容