编程
编程(Programming)是编写程序(一说编订程序)的缩写。那程序又是啥呢?
刚刚讲了计算机的四个主要功能。那么我可以直接说,程序(Program)就是计算机的一个控制流程。也就是说,程序决定了计算机的一系列动作——计算机应该干些什么。在人类世界中,就类似一本手册一样,指导人们下一步应该去做什么。
举个例子吧。我们现在打开计算机,然后打开浏览器准备“百度一下”。这里,网页浏览器就是一个程序。(不仅如此,浏览器是目前人类设计的最复杂的程序。)为什么说这是一个程序呢?来想想浏览器可以用来做什么——通过计算机来浏览网页——没错。浏览器决定了计算机一系列工作:接收网址输入、进行网络通信、呈现网页等等等等。因此浏览器是一个典型的计算机程序。
再比如我们要办公,打开了 Office Word。那么,Word 也是一个程序。它告诉计算机应该这样做:打开文件、呈现文件,通过键盘和鼠标的操作实时显示编辑的状态等等。类似地,电脑游戏、微信QQ、各种音乐视频软件,都是计算机程序,它们都是在指导计算机如何工作。
上述这些例子不仅是一个程序,而且是一个软件(Software)。学术上,软件包括两个方面:不仅要给计算机提供工作流程,同时也要提供一个面向使用者(用户)的友好界面,指导人类如何正确使用程序。后者被称为程序的文档(Documentation),软件就是程序和文档的集合体。
那么显然编程就是编写这样一个工作流程;也就是说,编程是在指导计算机做一些事情。一般地,人们给计算机编程是为了解决一些问题。当人们遇到问题的时候,就想怎么用计算机解决呢?于是就把解决问题的思路、方法和手段以“编程”的形式告诉计算机,然后计算机就会按照程序所指明的控制流程去执行人们想要执行的动作。
然而有一件事情是显然的,就是计算机并不能很轻松地理解人们给他们的东西。比如我面前有一台电脑,我不可能对它大吼一声:“给老子算一加一得多少”然后它就乖乖去算了。这是因为计算机毕竟是机器,它只能理解某些特定形式的东西。这就是编程语言。