怀念我难产的程序

我不知道我为什么要写这篇文字,但在我的意识里觉得必须写出来,首先,这是一个失败的经历,我写了一个非常糟糕的程序(天!那也叫程序?)。糟糕到了我最终只能放弃整个构想,也放弃了这个尝试,唯一的结果是我浪费了大量的时间而得到了那无比美妙的打击;其次,从感情上来说,我无法理解我的失败,这看起来是个多么简单的小问题,在最初看来几乎只是三个小时的事情,但我花了四天(除了吃饭睡觉),其过程让我真切的感觉到了《人月神话》中提到的那个焦油坑,我的一切努力只是加速了我的沉没,四天的恶梦后,我的程序还是合情合理的沉到了坑底,去陪伴那些远古的巨兽了,我没改变这个几乎成了真理的现象,我毕竟是个“人”(哦,这是我唯一能得到的安慰,感谢上帝!)。

对于这个问题本身,我不愿多说了,其简单的程度足以让一个任何学过半年c++的人在一天之内轻易搞定,全文索引的事情在《c++ primer》的第六章说的明明白白的,我也知道在我房间的那个地方可以找到这本书,但不知道脑子那里出了问题,我居然非常相信我那个667MBHzcpu能在1秒钟之内给出在1MB的文件中每个字符出现的次数,然后我就把这个荒唐的信念当成了事实。直到我听到了那些远古的巨兽在向我深情的呼唤(感谢他们,让我明白了我的程序为什么离开了这个世界),

毫无疑问,我的程序建立在一个错误的假设之上。其根本原因是我在程序总体设计上只花了5分钟,并一切在大脑中进行,而且这个大脑带着美好的神奇的梦想,就像把那个焦油坑当成游泳池那样神奇,现在应该明白了为什么在一个软件设计过程中编码只占有六分之一的时间量,其实这个东西不要软件工程的那些理论。任何没有准备的事情都不太会有什么好结果。但我们常常忘记这点,悲剧往往随之而来。

有时候我一直在想,自己为什么总是不能一开始就明确问题的关键,是不是在我的思维中少了什么东西?或者在以往的学习中忽视了什么?在这次尝试中,很明显,我对算法是毫无感觉的,这个不止是我那个荒唐的信念的作用,我一直以为程序设计的根本在于对数据结构的选择,从这点上我做到了,这使得我在文件的处理上做的还算过得去,但是我忘记了那个知名的等式(程序=数据结构+算法)的另一个加数,盲目的搜索使得程序的复杂度翻了大约50倍,数据结构的选择也无法适应后来对算法的改进,使得我在文件处理方面的努力归于徒劳,我不知道那个等式吗?当然不是.,我的错误在于想好了数据结构再来考虑算法,而事实上该做的正好相反,再好的数据结构只能针对特定的算法而言的。也就是说等定好了数据结构算法已经自明了,没有很大选择余地了,到那个时候你再发现这样的算法需要很大改进的话,那么好吧,恶梦开始了!

这的确让人不可理解。我犯的错误几乎都是常识,我也不止一次告诉我的朋友该这样不该那样,但在这四天里我自己却忘得干干净净,想到了一个典故?是的,纸上谈兵!这是个不可原谅的错误。唯一可以安慰的是,两千年他导致了四十万人的死亡,而我只是做了四天的恶梦,比较前辈总算有些进步。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值