「今天我们从人生的哲学方面来说明程序的本质。」
「老爹,我们昨天刚从神学的角度来学习了C语言,今天就转到哲学了?这跨度也太大了吧?」
「科学源于哲学,哲学源于神学,我们这是在追本溯源,没有毛病。」
老爹笑了笑说道。
「这都行?」
「其实无论用什么语言写程序,有很多理念都是相同的。
设计程序,无非就是要弄清楚四个哲学问题:我是谁?我从哪里来?我要干什么?我要到哪儿去?」
「这个我知道,不是表情包的懵逼四连问么?」
老爹的话一下就勾起了我的兴趣。
「哈哈,的确是有很多网友将这几个问题配图做成了表情包,但这四个问题看上去虽然简单,却极难回答。那么这么高深的哲学问题又如何与程序设计联系到一起呢?
首先要弄清楚一件事,问题中的我并不是指的设计程序的人。」
「那是指的谁呢?」
「是数据,准确的说是二进制数据。
我是谁?这个问题是指数据的意义,比如对一个银行账户来说,数据就是账户信息,如姓名、密码和余额。而对一个游戏来说,数据就是血量、法力值和攻击力等。用一个专业的词汇来说,叫做数据模型。」
「听上去有点绕,但是我大概能够明白是什么意思。」
「那就行,我们再说我从哪里来这个问题。
这个问题说的是数据的来源,你现在写的程序比较简单,数据来自于写程序时给变量赋的值,或者来自小黑屏中键盘输入的值。其实数据的来源有很多,比如说可以从文件中读取,或者通过网络等方式得到。
弄清楚了前面两个问题,就相当理清了应用题中的已知条件。」
「哈哈,老爹你这么一说,我就明白了。」
「至于我要干什么,这个问题就是字面意思,最好理解,就是我们要对数据进行什么样的操作。而最后一个问题我要去哪儿,则是在对数据进行处理后数据的归属地,比如说你现在写的练习一般都是将数据显示在小黑屏上。
除此之外,可能要将数据保存在文件中,或者通过某种方式,如网络传送给其他程序。例如微信,你收到消息后回复消息。」
「嗯……要干什么就类似应用题的求解问题吧?至于要去哪儿,我暂时想不到什么与之对应……」
我挠了挠头说道。
「没关系,让你把这些知识和生活中熟悉事物联系起来是为了加深理解,如果你本就可以理解就没必要了。下面老爹通过一个简单的例子来说明。
比如说现在有一个联系题:从小黑屏中获取键盘输入的两个整数,将它们的和输出在小黑屏上。
这个例子中数据就是两个加数,并且是从小黑屏中输入的。我是谁,从哪儿来这两个问题弄清楚了。」
「将两个加数做加法,这是要干什么,将做加法的结果显示在小黑屏上,这是要去哪儿。」
本站域名已经更换为m.adouyinxs.com 。请牢记。