现在是凌晨,想想起来,我写程序,已经有十年了。

  如果不是最近合同到期了,还真的从来没想过要总结提炼一下。还记得,在上个项目结的时候,我还对三个○六届的同事说:“要总结,一定要总结!不然你这个项目就白做了!”,每做个项目,每完成个模块,每写完一个类,我都会总结,有什么可以提高的,有什么不足的。可是,我何曾对自己的编程生涯做过总结呢?趁着这几天思考的比较多,就写在这里,既是给自己的总结,也希望,能给同样爱好的人有点帮助。

第一行程序

  大概是小时候妈妈经常教育我“穷人的孩子早当家”之类,所以我从小的时候就不要家里给买东西,买也不要(虽然真的买了就真的很激动很高兴)。结果在学校经常有时候会不好意思和别人站在一起,因为穿的太古怪了——我家当然不至于连衣服也买不起。但是惟独一件东西例外。

  我上初中二年级的时候(96年),正是谭浩强的BASIC和电脑第一次普及的时候,也是小霸王学习机做广告的年代,什么“你拍一我拍一,小霸王出了学习机”,或者486什么来着。同时,各种各样的学习机也像雨后春笋一样,或者说程序里的bug一样冒了出来。有一天爸妈去逛街,我不在(现在也想不起来为什么他们没带上我),他们看到有卖学习机的,就想起来,学习机,那买一个来促进学习如何呢?那时候我成绩还不拔尖,父母看到了学习机自然就联想起来可以帮助学习,看来起个好名字真重要啊。然后立即又想起来,挺贵的,那他应该又不会要了吧?

  揣着这种思想(个人臆断),他们回来了就给我说起来了这件事。我记得很清楚的是,我当时听了很高兴,连连说要买一台,而且是连续几天的想买,大概是没事儿了就问两句,买不买,买了没之类的。爸妈看着我有再不买就开始往地上打滚的趋势,只好在周末开始带上我看各种的学习机,大概,他们也要计算一下经济吧!那时候学习机还挺贵的,最好的自然是小霸王486,价钱就是486块(还好8086退出市场了);还有裕兴,那个更贵,现在想起来还有觉得裕兴就是电脑的感觉,因为它似乎支持软盘呢;其他的便宜的也要一百以上的——就这也很贵,96年的内地小城市(鹤壁,听说过没?),应该有我爸妈一个月工资了吧,咳,真难为他们了。那边是孩子急着想要,这边是家里一个月的支出,最后咬咬牙,买了个两百三的,大忽悠老板说是有二十五种功能,能背单词背唐诗欣赏音乐练习打字驱除蚊虫辟邪招福打酱油……我妈还在问,是不是标准键盘,要不,那练了打字不就白练了么?我早就急的不耐烦了。最终当然是我欢天喜地的回去了。

  回去了,立即叫我爸把我家的电视(十四寸黑白,直接导致后来我的电脑也是十四寸,还好是彩显,不过是台式!)搬到院子里,接上学习机,哈哈!急不可耐的把“二十五种功能”试用了一遍,果然呢,可以欣赏音乐,可以让电脑背唐诗,可以让电脑背单词,哇!太了不起了!就是游戏功能弱了点,只有一个打字游戏,其他就什么也没有了。不过没关系,很快我身边就聚集起来了几个小朋友,大家很好奇的研究这“二十五种功能”。同样很快的,他们就不来了,因为隔壁娟娟家买了的是小霸王486呢!当时我很高兴,因为可以专心研究这“二十五种功能”了,特别是其中的背单词和打字游戏。其实那些功能,不过有名无实,唐诗可以背,但是只能背静夜思一首;音乐可以欣赏,不过只有那么五六首,配个蜂鸣器发音;背单词的那个,才有几十个单词……用C语言,普通水平,最多一个月就可以把那二十五种功能写出来——当然是在PC上,在学习机上的,是单片机编程,要复杂一些。回到正题,我爸妈觉得背英语单词的功能太弱了,于是又狠了狠心,跑去花八十块给我买了个“词霸卡”,这个可不是金山词霸那个,是小霸王出的。学习机就是个键盘,上面有个插槽,各种卡插进去,就有不同的功能,那些卡应该是软件固化以后了的,我觉得,是把CPU、内存都集成了进去的。如果插“二十五种功能”卡,那就有了“二十五种功能”;如果插“词霸卡”,就可以背单词,如果插游戏卡……,反正兼容性挺好的。玩的最多的,是背单词和打字,很快背单词就不用了,因为有了词霸卡;但是打字是练了很久,经常有人羡慕我打字时候速度快,甚至有人说动作潇洒,哈哈!不过那时候太小,手指不够长,结果形成的习惯就是我现在打字还是左手比右手熟练,而一些键,比如数字键、符号键盲打就很不准确。

  词霸卡,真的不是吹的,挺好用的,从初中英语到高中英语单词全都有,还可以把你的名字记在龙虎榜里(当然去了电池就不能记了,看来它用的是RAM存储器)。用那个东西学英语,唯一的作用就是能提高兴趣,但是这兴趣是不是对英语的,就不好说了。至少到高中我就不再用它了,说实话,用词霸卡的效果,未必就比扯着嗓子背好。也许是这个原因导致到现在我还坚持认为,电脑不可能帮学生学习,至少对学生应付考试是没一点用处的,包括编程课,甚至是汇编语言这样的,不用电脑照样能考高分——但是电脑可以帮助不是以考试为目的的学习。词霸卡我用了很长时间,因为惦记着那八十块钱呢!

  因为那个年代正是电脑普及的时候,我爸爸单位就组织大家学习计算机语言,用的教材,当然是谭老师的BASIC了!我也跟着去看,当然不是看电脑,是看发的那个教材,上面讲计算机的起源,用BASIC语言的编程,如何使用命令行与BASIC系统交互……还有那些代码,看得我心里庠庠的,虽然不太懂,但是总觉得不想放下那本书。那本书是黄的皮子,有方格的,有一个角给圈起来了,现在还记得清清楚楚。电脑是不用想了,其实那时候我觉得学习机就是电脑,不同的是换个卡就可以了么——于是跑去娟娟家,借到了她的小霸王486卡,现在还记得,当时说的是“让我长期借来用用”。拿回去,轻车熟路的插上去,启动小霸王卡里的命令行BASIC,试着敲入了我的第一行程序……

  它从一个单片机键盘里输入,输出在一台破旧的十四寸黑白电视屏幕上,电源切断以后它就永远消失。而我能感觉到的只是,我在写程序。

  从此,开始了,而且不会结束。

  那是九六年,十年后的今天,活跃在计算机软件编程行业的小伙子们,大概有很多是和我类似的经历吧,从学习机、命令行交互的BASIC(我初次接触的,大概是GW-BASIC)语言开始走向计算机编程的道路。那个时候,Borland和MS的C++大战才结束,淡淡的硝烟弥漫着散去后,Borland C++虽然依旧能勉力维持,Visual C++却已经大获全胜;Java和Delphi已经呱呱坠地,宣告新时代的到来;BASIC早已经从命令行-集成界面(QBASIC)-可视化(Visual BASIC),发展得百花齐放;Windows 95才让微软确定了巨头的地位,Linux已经崭露头角,开始对抗隐然成形的微软;网景公司却在一个意外的角落里,给了这个新巨人个教训;OOP、OOD的各种概念,正在蓬勃生长,泛型、设计模式、针对契约编程、防御式编程早已经成为惯用的技术,敏捷开发大概还没有提出来。互联网,也在快速崛起——计算机行业一如既往的拼命扩张着,各种各样的新东西被翻上去,再打下来——而我们,却在一个闭塞的小城市里,写下第一行PRINT语句,激动的等待着输出的结果:

  会是我期望的吗?

[原文在百度空间已经关闭]