写给设计师的技术书:从智能终端到感知交互
上QQ阅读APP看书,第一时间看更新

第2章
必须掌握的计算思维

2.1 计算思维是什么

第1章提到技术架构师的工作重点不是一天比别人多写几行代码,而是能否设计出一个根基稳但又便于拓展的技术架构。成为一名技术架构师需要时间的沉淀,笔者认为在这段时间内最重要的是对计算思维(Computational Thinking)的锻炼。计算思维和计算机科学密切相关,那么它跟编程是一回事吗?不是,但有一定的关系。自计算机编程诞生以来,研究人员设计出的编程语言有100多种,例如Android使用的Java、iOS使用的Swift等。有一定经验的Android开发人员能迅速适应iOS开发,靠的就是计算思维。以写文章作为比喻,编程好比写汉字、写英文,懂得编程只是掌握了和计算机直接交流的语言,而计算思维则类似于构思文章的组织和内容,拥有计算思维才能写出正确的程序。计算思维包含了一系列抽象和具体的思想,在学术上有以下定义:

(1)计算思维涉及通过利用计算机科学的基本概念来解决问题、设计系统和理解人类行为。

(2)计算思维是抽象问题和制订可自动化解决方案的心理活动。

(3)教计算思维就是教如何像经济学家、物理学家、艺术家一样思考,并了解如何使用计算来解决他们的问题,创造和发现可以富有成效地探索的新问题。

(4)计算思维是将问题表述为一些输入到输出的转换,并寻找算法来执行转换。它能扩展到包括具有多个抽象层次的思考,并且使用数学来开发算法以及检查解决方案在不同大小问题上的扩展能力。

(5)计算思维是在制定问题时,以人类或者机器可以有效执行的方式,表达其解决方案时所涉及的思维过程。

(6)计算思维是从最坏的情况下通过冗余、损害遏制和纠错来进行预防、保护和恢复的思考。

(7)计算思维是使用启发式推理来发现解决方案。它是在存在不确定性的情况下进行计划、学习和安排。

综上所述,计算思维其实是一种解释、拆解和重构设计的思维方式,它能更好地指导设计师认识和理解哪些技术可用、产品是怎么运转起来的,并且帮助设计师设计一系列的解决方案完成工作。虽然计算思维来自计算机领域,但计算思维强调的重点是思维而不是计算,在日常生活中到处都会运用到计算思维,以下面的场景为例:当你早上上学时,会把一天中需要的东西放在背包里,这在计算机术语中称为预取和缓存;当你不小心丢了钱包,朋友会建议你原路返回寻找钱包,这被称为回溯;当电话在停电期间仍能工作,这被称为冗余的独立性……从以上案例可以看出计算思维可以被任何人使用。目前业界公认的计算思维包括4个方面:抽象、分解、模式识别和算法,它们在解决复杂问题时可以通过以下流程配合:

(1)应用抽象和分解过程将复杂问题分解为更小、更易于管理的部分。

(2)运用抽象过程和模式识别来理解、描述和表述问题。

(3)通过模式识别理解数据的相似性。

(4)构建算法思维以逐步解决问题。