计算机思维,是现在比较流行的一种思维方式。原谷歌科学家,著名投资人吴军在他的《谷歌方法论》上,援引清华全球创新学院院长,计算机专家,教授史元春关于计算机思维的解释,回答了听众的问题。他把计算机思维整理成三点,分享如下。
第一点,宏观层。把现实问题转变成可以通过计算来完成的问题。比如阿尔法狗战胜李世石这件事。关于这一点,就是一种把现实问题建立成模型的能力,说得通俗一点,就是解决问题的套路。举一个简单的例子,比如用excel做一个可以计算的表格,来简单计算你的财务问题。如果扩展一下呢,比如你想要做时间管理。可以用计算机做一个模型来统计你的时间使用情况,你可以根据你自己的需要进行不同方向的统计输出。比如可以统计某一个时间占总时间的比例,也可以统计某一个项目的计划用时间和实际用的时间的相差百分比,进而调整你的时间使用方式。计算机看视频,就是把视觉信号转换成数字信号进行传送,然后到了你的电脑上,再把数字信号还原成色彩信号,让你的眼睛能够看得到。各种音频也是如此,是音频到数字再到音频的变化过程。只要能够计算的,计算机就可以去做。
电脑游戏也是通过建立一个模型,把这个模型做成程序,你下载这个程序,安装到你的电脑或手机里,然后你敲键盘或者按鼠标,或者在手机触屏上的操作,吧动作传输给电脑或手机,电脑或手机再转换成数字信号,传送给电脑或手机已经建立好的模型,也就是游戏程序。这样,你操作的人物就有了各种动作,可以打怪升级了。
现实生活中,我们遇到的事情可能会更复杂。如果想要建立计算机模型,就要把复杂的问题进行简单化。把可能不相关的干扰问题省略,只把最相关的问题挑出来建立模型,然后便于计算机进行计算。当然有时候我们建立的模型如果太简单,也容易让计算机做出不靠谱的运算来。比如你去某饭店吃饭,吃饭之前,可能会有免费的小菜,比如花生米。你把花生米吃掉了,计算机就会判断你很喜欢花生米,服务员根据计算机得出的结论,不断给你送花生米。还比如你在网上浏览某一个页面,看到了电饭锅。你在电饭锅页面逗留了几分钟,不太靠谱的大数据就以为你对电饭锅感兴趣,你打开网络,会不断收到各种电饭锅的页面,搞得你不胜烦恼。这是失败的模型的例子。成功的模型,比如谷歌电脑下围棋战胜人类棋手这件事。虽然计算量很大,但是计算相对简单并且有逻辑。我们人类的大脑有时候对一件事情的判断非常随机,就像前面说的饭店的花生米问题,也许就是那天饿了,早饭没吃,所以就多吃了几粒花生。计算机就误以为你特别喜欢花生。
第二点,是中观层。这个词是史元春教授发明的,针对宏观,和微观两个层面,介于这两个层面之间的一个区域,史教授定义成“中观层”这是什么区域呢?就是计算机的处理不同任务的整体优化。我们在生活中,有时候是来什么任务,就去处理什么任务。而计算机的方式,是进行优化。优化的好处,就是合理利用计算机的资源。什么是优化呢?就是让处理任务的顺序,以及处理什么任务更加合理。什么是合理利用资源呢?通过调整顺序,可以让计算过程更加合理。比如炖牛肉的时候,先炖肉,后放土豆,否则土豆可能就太烂了。这就是合理调配资源。
在中观层,史教授还提到了计算机的递归原理。这种方式,是从上到下的分解一个任务,在自下而上地一步步完成。整体结构就像一个金字塔。著名的麦肯锡的金字塔原理,我们翻译成结构化思维,就是这样一种思维方式。在我们论述一个问题的时候,层层递进,自上而下,每一级,都是对下一级的总结,自下而上,而每一个下级,就是对上一级的说明。
第三点,是微观层。微观层,首先是检索,所有的资源,可以用最快的方法访问,或者说找到。在生活中,我们经常有找不到一件衣服,或者一样东西的情况,这就是没有用计算机思维去管理自己的物品。大脑反复想这些同样的问题,是对大脑资源的极大浪费。比如一个女孩子衣服很多的时候不知道穿哪一件。如果几十件,翻一翻的时间还算可以接受。如果是几百件上千件的时候,麻烦就来了。计算机思维,就能够解决这样虽然很多,但是计算起来有逻辑可遵循的问题。
前一段时间,在知乎上有一个非常有意思的问题,问,李白都喝过什么酒?我们通常的思维方式,是买一套李白全集,然后一页一页的翻找关于酒相关的页面。省钱一点的方法,是去图书馆查阅藏书。这种方法虽然省钱,但是会费时间。去图书馆来回的路程,加上找到书架上的书,然后再一页一页的翻。都需要时间。
如果用计算机思维,怎么解决这个问题呢?计算机思维,思考的是能不能让跟酒有关的页面自动的跳出来。如果从网上搜索的话,也很不经济,页面太多,而且,我们也不知道能不能穷尽。就是说,就是无法判断搜到的页面是不是涵盖了所有跟李白和酒相关的页面。那么,有没有专门的唐诗的电子书呢?如果有,就可以通过电子书里面的检索来搜索。于是去亚马逊,发现有全唐诗。才0.98元。买来以后可以搜李白和酒了。但是这种搜索还是太麻烦,电子书不支持模糊搜索,就是不支持搜两个关键词。那么再进一步思考,有没有专门是李白诗集的电子书呢?又是在亚马逊,找到了李白全集电子版,也才0.98元。到此,就差不多解决了李白喝过什么酒的基本问题了。在电子书李白全集里输入酒,然后数就可以了。当然有些诗没说什么酒,只是提到了酒,这些页面可以略过。提到就的名字的,有些酒的说法,跟现代可能有所不同。比如白酒,据说在唐朝还没出现,那么李白诗歌中的白酒,指的就不是我们现在所说的白酒了。 这是题外话。
微观层的第二方面就是缓存。凡事留有余地,便于快速反应。很多使用手机的用户会发现,打开一个程序以后,不完全关闭,只是把界面关掉,这样重新调用这个程序会很快。但是如果彻底关闭手机的app,再想打开使用,会发现需要的时间更长。之所以能够快速打开,就是缓存在起作用。
越是大的复杂的程序,就越需要大的内存来支持。所以,让缓存留有余地,是以备不时之需。
在工作中,我们出差或者办事,最好是预留一些时间,避免路上出现其他情况,导致赶不上飞机。这也是计算机思维。所谓凡事留有余地。
总结一下计算机思维处理问题的方法,有宏观、中观、微观三个方面:
宏观,就是把现实中的问题转换成计算问题,把问题转换成计算机模型。
中观,就是把转换成的计算问题进行优化,并用递归原理,把问题分解成小问题,从上到下,层层分解,在从下到上,层层解决问题。
微观,就是建立检索,高效运行。通过建立缓存,留有一定的余地。
网友评论