编程的本质是什么?
编程的本质是,为计算机或相关设备编排任务,而不论什么任务,都离不开计算。说到计算,就不得不说数学,别担心我们需要学习的只是最简单,并且经常在生活中使用的东西——数字。
谁能告诉我,数字有哪些用途。如果一下无法回答完整,不妨停下来,先思考2分钟,把答案记录下来,再接着往下阅读,看看我说的和您的答案有什么不同。
计量
数数看您的键盘有多少个按键,或者如果您正使用的手机、平板电脑上装有多少个APP。如果进展顺利,您的回答必定包含数字,这就是数量,用数字确定并描述事物存在的量。
键盘上有多少个按键?
排序
在赛跑比赛中,如何区分参赛运动员的名次。是不是通过计时,运动员们站在同一起跑线上,裁判在发出起跑信号的同时开始计时,每个运动员到达终点都会掐一次表,记录一个结束时间,最后,多个运动员的结束时间减去开始时间,差最小的运动员便是比赛第1名,差其次小的获得第2名,再次小的第3名…… 这里,人们利用数字为事物编排顺序。
跑表能够记录多个时间
映射(编号)
等等,刚才的赛跑故事里,有很多参赛运动员,我们是怎么区分他们的呢?您可能会说,他们都在报名时注册登记了自己的姓名,但是裁判们如何区分他们,比如终点掐表的裁判,他如何区分这次掐表对应的是那个运动员的成绩。
没错,还是数字,每个运动员胸口和背上都会贴有独有的数字,在比赛中这些数字代表这个运动员,也许您还记得数学上是怎么称呼这样的对应关系——映射,给运动员分配数字的过程我们通常称作编号。
描述抽象事物
当然,还有跑表上的时间,也是用数字描述,时间和之前提到的东西不一样,它是看不见,摸不着的,是个抽象个概念。所以人们还使用数字描述抽象的东西,比如时间。那么您还能列举其他用数字描述的抽象事物吗?计量单位是不是呢,比如厘米,厘米可以计量各种物体的长度,但是它又不直接存在与这些物体身上,物体身上并没有刻度,所以厘米这个长度单位是人类发明的,是个抽象的事物。这么说来,所有的计量单位都是抽象事物,除此之外还有没有使用数字表示的抽象事物呢?圆周率π以及其他数学或者物理常数是不是呢,所有基于数字衍生出来的公式中的数字不是是呢。这下我们可以非常确信,数字可以像描述现实事物一样表述抽象事物。其实用数字描述抽象事物在生活中随处可见,比如:一件事,两条信息,三个关键点,四种流派,五类观念……
各种单位都使用数字来计量
总结一下,我们罗列了四种数字的用途,它们分别是:计量、排序、映射(编号)、描述抽象事物,数字的这些能力是不是很强大,但实际上人们想让数字描述能力可以描述整个世界。
回忆一下,小时候玩过的积木游戏,您要怎样堆建一个和别人一模一样的形状。停下来,思考一下,然后接着阅读。我们使用今天学到的数字知识来解决这个问题,首先,我们给目标积木建筑的每一块积木编号;然后记录下每个编号所在的位置,比如,目标积木是在桌上搭建的,那么就记录下每块积木在桌子上的位置x,y坐标
坐标(x,y),就是积木在桌子的某个长度、宽度上
积木是一层一层搭建的,我们需要描述每块积木所在的层,所以我们还需一个维度层高,我们用h表示;还没完,我们不能先搭建积木的顶层,再搭建底层,这需要遵循物理规律,不过我们不关心这个定律,我们只需要知道目标积木的搭建顺序,所以得给每块积木编上有序的编号;至于数量是否一致,编号就已经解决了这个问题,剩下要做的就是按照这个方法操作实施,搭建出一模一样的目标结构。
积木所在的层 h
现实世界也是如此,假设我们找到了最小单位的物体,知道顺序,能够描述位置等信息,也就能够克隆出一模一样的物体,这就是人们设计数字希望得到的表达能力。现在这样的能力已经在被广泛运用于实践,想想你玩过的游戏,模拟能力越来越逼近现实,气象观察局也会使用计算机模拟气象变化,以得到变化的在未来的结果,这些无不证明了数字强大的表达能力。
一款运行在电脑上的积木游戏
学习编程,就是利用数字这些能力,对计算、储存、网络传输等等现实中的资源进行任务编排,而编排的目的就是快速的完成大量计算任务,收集关注的信息数据进行统计分析,模拟现实世界,预测现实世界的结果……
这篇文章中,我们学习了数字的四个能力,以及数字与编程的关系,下次我们将一起学习现代可编程计算如何利用数字发挥出强大的功能,再见。














网友评论