理解【机器思维】

(清华大学计算机系的史元春教授)她的观点
选存自 吴军 《谷歌方法论》

史教授对计算机思维的观点大致可总结为这样三句话:

  1. 宏观:找到现实世界和虚拟世界的对应;
  2. 中观:在有限资源的情况下做到全局最优;
  3. 微观:合理组织和利用资源,凡事留有余地。

史教授讲,【计算机思维】是在学习和应用计算机学科理论和技能的过程中,所体验和获得的思想方法做事方法

  • 它分为三个层次:

01 宏观层

  • 首先是宏观层面,包括对“可计算”这个思想的理解,也就是如何使用计算机这个工具,将虚拟世界处理问题的方法变成解决现实生活中的各种实际问题的方法。换句话说,计算机思维需要你针对现实生活中的问题找到计算机的解决策略

无论是 Google 让计算机下围棋,还是实现计算机开车,都首先要将现实生活中的问题和虚拟世界的问题对应。我在《数学之美》一书中讲的内容,都在这个层面。

02 中观层

  • 接下来是“中观”层面,“中观”这个词是史老师发明的。要理解中观,一个很好的例子就是计算机的操作系统。

任何操作系统都要求按照各项任务的优先级和可使用的资源,设计出调配资源、让计算机各部分协同工作的方法,并且对于各种任务进行整体优化

一个好的操作系统,不是做某一件事特别好,而是在资源有限的情况下整体上让人感觉特别流畅,比如苹果的操作系统就是如此。

接下来,史教授又举了一个比较学术化的例子,就是计算机科学中的递归原理。它将大事分解、从小事做起,步步干净利落、自顶向下设计,再自下而上回归,非常具有美感。 我(吴军)个人也觉得,递归是计算机科学的精髓所在。

03 微观层

  • 微观层面 这才涉及到具体技能,但还不是简单的编程等技能,而是这样几个方面:
    a)设计出计算机内部整理和查找信息的技能(addressing)。简单地讲,就是管理10000本书,或者10000双鞋子的方法。
    计算机内外的各种资源都要合理地编号存储,然后根据编号来访问,要有合理的编号方案,以及与其配合的高效率访问算法,这是实现计算机各种应用好坏的关键。在生活中,它等同于我们处理各种事情的条理性。
    b)缓存。凡事要留有余量,很多时候要预先准备好数据和程序,这就是缓存。这样当大事当前时,能有所准备,有空间回旋。

至于编好程序,史教授认为,这是计算机从业者所必需掌握的,属于“雕虫小技”。

你可能感兴趣的:(理解【机器思维】)