说到编程,往往我们想到的是每个人坐在在电脑前输入指令去控制电脑执行动作,这体现了人类利用机器来改造世界的基本方式,即使我们今天有更炫酷的“输入指令”方法,例如语音,体感,脑电波,各类传感器等,有更多的“电脑”以不同形态甚至“无形”包围在我们的生活当中,从制造到物流,从商务到家居,从植物到人体,这些不同手段方式的进化和创新的目标仍然脱离不了通过输入指令和控制这些基本元素,指令控制其实就是我们所说的“编程”。
编程是一种手段或者技能,过去数十年计算机科学的发展已经使编程的壁垒大幅度降低,以前可能只是科学家做出的高大上程序,今天一个十几岁的孩子可以在几分钟完成,二十多年前体面的电脑工程师今天已经被戴上IT屌丝帽子,编程已经从一种十分专业的技能演进到人人都可能学会的操作表和说明书,嵌入在儿童玩具、智能家居和机器人,貌似比较专业的IFTTT技术也已经渗透进日常百姓家。随着技术进步,编程技能已经可以被很多人自然掌握,不用进行系统学习或者“挖掘机学校”深造。那么我们需要具备何种能力去更好更有效地编程?这就是编程背后的基本素养“计算思维(computational thinking)”,这个由时任美国CMU计算机科学系主任的周以真(Jeannette M. Wing)教授在2006提出的概念和一系列计划,试图使所有人能够像计算机科学家一样进行思考,让计算思维成为新人类的基本能力。世界各国包括美国中国等的教育部门正在有计划地推动这一理念的实施。
计算思维实际上是人类站在机器角度的“感同身受”,从机器角度思考去制造更有效率的机器,同时更有效指导我们日常决策。抽象和自动化是目前业界普遍共识的计算思维本质,对于计算机科学专业的学生来说这两者的威力不用赘述,实践证明其对各领域创新作用巨大。计算思维里的层次抽象、分而治之、递归、并行和并发,以及经典数据结构(数组、栈、集合、树等)和机制(流水线、缓冲、API等),到计算可行性和复杂性等,都无一不对我们的日常生活和工作产生巨大影响。我们需要的是在未来人人都具备计算思维,并用这个武器来指导我们,不仅是编程,而更多的是提升工作和生活效率,甚至人生职业规划。
从中,我们可以得出,人人都应该具备计算思维,才能在科技日益推动下游刃有余,与时俱进,改变世界。在充满科幻感的世界里,每个人都在享受善用科技带来的便利,而他们的脑海里都充满了0和1 的计算思维。
正是这种计算思维,让我们在这个充满新奇科技的世界畅游。