自己编程( programming ),听上去好像很难很高深,实际上一点也不高深,以后也越来越不高深,为什么呢?我们看一张图片。
图里的漫画很有意思,图中的小猪是程序员,它身后的狗问:“伙计,你说你觉得编程是更像艺术呢?还是更像科学?”程序员说,“你别吵,你没看见老子正在把300行代码给复制到7个地方去吗?”狗在后面无语的说好吧。其实这部漫画讲什么呢?它想说明在某些场合下,编程似乎已经变成一种体力劳动了。当然实际上没有这么夸张,这幅漫画试图告诉我们——其实编程离我们还是非常近的,并不是一个非常高深的学问。
那么编程到底是什么呢?其实就是把怎么样做一件事情,用机器的语言告诉计算机,让计算机能听明白。从本质上看,这跟给产品写一份人类能看懂的使用说明书也没有什么太大区别。比如使用微波炉热菜,说明书会告诉你首先需要把门打开,再把菜放进去,然后把门关上,选好火力,扭个时间,等时间到了,“叮”的一声响起,这时把门打开,东西拿出来就可以吃了。
编程也是一样的道理。如上图所示,我们把人比作计算机,他手里拿的纸上写着着一大堆步骤,就像产品说明书一样,称为指令,桌子上的飞机模型就是数据。指令,或者叫程序实际上是告诉计算机对什么样的东西进行怎样的操作,在这里的什么东西就是数据,怎样操作就是指令。程序的本质其实是一套逻辑,要把这种逻辑以合理的方式表达出来。
可能会有小朋友问,听起来好像很简单,但为什么还是有人说编程很难呢?这是因为教计算机做事跟教人做事还是有区别的。
首先,我们使用的语言不一样。教计算机做事或者写程序,需要用编程语言,而跟人说话则是自然语言。虽然现在编程语言很多,甚至有一些大家接触到的编程语言非常接近自然语言(以英语为代表),但是我们也不能够认为它跟自然语言是完全一样的。在结构、表达方式上,编程语言跟自然语言还是有很大差别的。
其次,计算机能理解的逻辑的严密程度,和逻辑的组织方式,跟人讲话是不一样的。因为计算机的结构和人类大脑的结构是两种完全不一样的结构。编程需要按照计算机的思考方式去组织逻辑,而跟人说话则是用人的思考方式去组织逻辑。
人可以通过常识来判断、弥补一些逻辑不足的地方,比如人听到“你去帮我去买个菜回来”这句话时,假设他知道应该带多少钱、菜场在哪里,应该怎么走路等等,他就可以买个菜回来。但对于计算机则没有这么简单。你必须得思考它接受什么样的逻辑,拥有什么样的知识,能够做什么样的事情?所有这些必须要一步一步告诉它。从这个角度我们也能看出计算机对于逻辑的执行都是非常严密的,因此在机械性操作时,计算机的准确率也要比人高很多,只要保证程序是对的,计算机没有硬件故障,得到的结果就是准确的。