1. 编程 到底是什么详细解释
我认为楼上的食谱的比喻不是很恰当。
因为食谱是一种工作流,描述的是先干什么后干什么以亩芹袭及所用的迅兄资源和时间,而程序除了可以被看成一种工作流之外,还可以被看成一种生成工作流的逻辑描述,也就是说,除了要安排好食谱中的步骤,还要知道食材和步骤的逻辑关系,比如是先炒后炖还是先炖后炒,是先放油盐酱醋还是后放油盐酱醋,什么东西和什么东西不能放一起等等。这些是通过编程和程序中的逻辑判断来实现的,这种逻辑判断在食谱中是没有首源的(例如,食谱中是不会出现"如果炒糊了就放点糖"这样的描述的)。因此,食谱只是单纯的流程描述,编程和程序是比食谱更高级和复杂的概念。
其实,编程用大白话来说,就是如何控制计算机利用各种硬件资源来处理数据和信息。因此,编程分为几个层级。最底层是直接与硬件打交道的,用来控制硬件的执行,一般是汇编编程;最上面的是软件编程,直接处理数据和信息,编写的程序直接面向程序的使用者;在他们之间的是操作系统级编程,用来建立连接底层和上层的桥梁。每一层就不展开说了,否则都够写几本书了。
大多数程序员都属于软件编程这个层级的,其他的程序员一般都必须非常了解他们使用的硬件,因为他们的程序就是要操作这些硬件的。
说完了编程的分类,再来说说编程到底干什么。我也来比喻一下,我把编程比喻成教育,计算机就是小孩,综合起来就是教计算机做什么以及怎么做,也就是教育小孩做事情,而编程写出来的程序,就是一种行为规范。
比如,我要教小孩过马路,那么我告诉他一个过马路的行为规范:"先向左看,如果没车过来就走到路中央,如果有车就等车过去;到了路中央向右看,如果没车就过去,如果有车就等一等。"
我把这个过马路的"行为规范"(程序)告诉我的"小孩"(计算机),他就能严格照着去执行。
这个比喻不恰当的地方,就是我的"小孩"的学习能力实在有限,他只会照着我写好的"行为规范"去做,我没写的他就不知道怎么做了。但是,将来的"小孩"肯定会增强自己的学习能力,通过"行为规范"来产生新的"行为规范",并且新的"教育方法"(编程方法)也在不断的被研究着。