IT人如何修炼编程的内功[1]
很多年以前,我还是一个学建筑的学生,但是很喜欢学计算机。不过呢,由于专业限制,我没有计算机用的。学校只开了一个学期的Fortran语言,上机时间只有可怜的5节课,那会把我憋坏了,呵呵。
大家不要笑啊,90年那会,生活不富裕,PC机还是一个很贵的东东,一般家庭都还停留在18吋电视机的时代,大学生又是最穷的,物质条件更为匮乏,我当时有个小收录机,京华牌的,呵呵,在同学中已经很牛叉了。因此,像现在的同学们,一考上大学,MP3、MP4、笔记本电脑家里给配齐的,在当时是根本不可能想象的事情。我作为过来人,还是要说大家一句,大家真是生在好时代了,很幸福的。
不过呢,我很喜欢编程,就养成一个习惯,想象编程,找一个题目,自己在脑子里把程序构思出来,写在纸上,然后自己模拟电脑的run,把程序过一遍,看能不能执行正确。这个习惯现在都还有。呵呵,我老是劝大家写简单的程序,其实和这个习惯有很大关系,因为我比较笨,稍微复杂的程序,脑子就想不过来了,就晕了。
也正因为有了这个经历,我就开始思考一个问题,编程究竟是什么?呵呵,当时我在学校,也是小有名气,大家都知道有这么个程序疯子,没事喜欢发呆,喜欢想程序。在一次舞会上(别激动,我也是过来人,也会跳舞的,虽然很难看哈,呵呵),一个计算机专业的`师姐就考我,问我编程是什么?
我当时想了一下,很郑重地回答她,我的理解,编程就是拆解任务,把一个任务,拆解成很细很细的步骤,一步步教计算机去做。计算机很笨的,举个例子,我们说早上起来去上课,是个人都知道做什么,但是它不知道,因此,我们要告诉它:
起床--穿衣--拿饭盒--去食堂--买早饭--吃饭--洗饭盒--回宿舍--放饭盒--拿书--出门--如果人都走完,要记得锁门--去教室--推门--找到自己的座位--走过去--坐下来--等待上课--上课。
说到这里,我突然自己有点明悟了,编程,就是把复杂的问题简单化,简化到每个动作都是1+1=2那么简单,然后计算机照做就好了。这就是我理解编程的真谛。我师姐听到了,也若有所悟,这个话题就没有再说了。
我们来分析一下计算机的特点,准确的讲,目前我们这个社会的计算技术,还很原始,说它是计算机,正确,它确实只能计算,说它是电脑,太抬举它了,它不可能有思考能力。
在冯诺依曼体系架构中,计算设备就是具有一定计算能力,有能力和外界做出IO互动,并且能高速重复动作的这么一种设备,这可能和大家在教科书里面学到的不太一样啊,不过,我是这么理解的。
因此,我从一开始,就没有把计算机作为一个伙伴,一个可以帮助我出主意,或者代替我思考的伙伴,仅仅是看做一种工具,这种工具有什么用呢?我认为它最重要的,有两个作用:
1、无限可重复性,一个动作序列,一旦编订程序,计算机就可以无数次重复这个序列,不会感到累。这特别适合于那些乏味的,不断重复的劳动,比如,我们一个学校每天要敲钟,打上课铃,如果让人来做,这个人会很乏味,做久了,就可能出错,但是让计算机来做,它可没有什么思想,不会觉得累,而且做的很好。计算机特别适合做重复性工作。
2、服务品质的稳定性。计算机适合做重复工作,还有个有点,就是每次执行结果都是一样的。这体现了工业化时代最重要的一个思想:量产思维,大家可以看到,现在的社会,不可重复的艺术固然很好,但公众需要的是量产的产品,因为质量稳定,产量稳定,能满足大众需求。劳斯莱斯虽然很美,但绝大多数人在开大众、丰田等低端车。就是这个道理。还是打铃那个例子,如果是人,可能会生病,可能会请假,或者干脆搞忘了,但计算机不会,只要有电在正确工作,打铃就不会出错。
这样,我就慢慢理解到了,计算机其实就是能以恒定品质不断重复输出服务的机器而已。
版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。
本文地址:https://www.gunzhua.com/jiuye/zhiyeguihua/76223.html