月度归档:2013年11月

我是程序员(二)

90 年代末的中国,流行着“计算机要从娃娃抓起”的口号。电脑这一新鲜事物也是这个时候开始进入我所在的那个小县城的,企业、学校开始配备计算机机房,但是当时的计算机可不是什么人都能用的,想操作计算机,那得先培训。于是,各类计算机培训机构应运而生,居民楼的楼道里贴满了“学电脑,去 xx”的牛皮癣。

因为每周都能接触到电脑,我对电脑的狂热兴趣保持了一个学期,很快,暑假到了。我爹怕我假期没事干,暑假第一天,就带我去了一个设在工人文化宫的电脑培训学校。工人文化宫离我家特别近,而且这个电脑学校是当时市里最知名、规模最大的电脑学校,光是牛皮癣广告的尺寸和张贴规模就力压别的各种电脑培训机构。在那个学校的办公室里,我对着长长的课程列表纠结:这里有专门针对“娃娃”的课程,但是列的课程内容是“DOS”、“WPS 排版”、“五笔输入”等。我跟我爸说这个我在兴趣班都学过,都会了。然后就在老师的建议下放弃了“娃娃班”,选了一个成人基础班。我记得这个班的课程除了和“娃娃班”一样的部分之外,还有一个“Windows 98”。Windows 已经在我心中神秘一个学期了,就为了这个,我一定要上成人班。

就这样,整个暑假,我就和一群二三十岁的成年人在一起学计算机。一周有三四天上课,一般上午在教室听老师讲理论知识,下午上机实践。这学校有大概有三四个机房,每个机房好几十台电脑,比小学的机房大多了。更重要的是,每台电脑都装着 Windows 95 ——与宣传的 Windows 98 不符——和 DOS 双系统,重启可以切换。我第一天上机就学会了 Windows 的操作方法,感叹它的神奇。

最开始的课程依然是 DOS、五笔、WPS。因为在之前学校就学过,而且又是小孩,所以我很快就在班里引起了老师和同学们的注意。印象最深的一件事是老师出了一个题,把某某目录的某某文件移到另一个目录,并改成某某名某某属性,无人会,我说我会。最后叫我去黑板上写命令,我歪歪扭扭、大小写不分地把几个命令写完,老师说:完全正确。从此确立了我在班里的地位。

然后发生了一件对我产生了深远影响的事。

某一天下午,我正在机房玩电脑。一位姓杨(别的不记得了)的老师把我单独叫到另外一个机房 ,在他的电脑上敲了一个我从没见过的命令:“qbasic”。然后一个蓝白界面出现了,老师在这个界面下敲入了三行字符,至今记忆犹新:
a = 1
b = 2
PRINT a + b
然后老师选了菜单里的运行命令,一个“3”出现在了控制台中。
DOS
我只记得老师告诉了我这个叫“写程序”。

我突然意识到,不管是自己用的 DOS 还是 WPS、UCDOS,甚至是 Windows 以及在 Windows 里面运行的绚丽多彩的应用程序,都是用“写程序”的方法创造出来的。从此对“写程序”这件事产生了极浓厚的兴趣。妈妈陪我逛了全市大大小小的书店,买了一本谭浩强的计算机等级考试二级教材《C 语言程序设计》,和另一本同样是谭浩强的二级教材《QBASIC 语言程序设计》。另外,某一天在奶奶家玩,在书架上居然奇迹般地发现了一本泛黄的《QBASIC 语言程序设计教程》。

这时候,我开始学习 C 语言和 BASIC 语言。利用上机的机会在 TurboC 和 QBASIC 下把书上的示例代码一遍遍敲。这些软件界面都是英文的,我刚读完小学三年级,所以单词肯定是基本都不认识的。我认识一个很关键的单词:RUN。把程序原样抄到屏幕上之后,再到菜单里找 RUN,找到了就敲个回车。编程初学者写的第一个程序肯定是连编译都通不过的,我也不例外。第一次 RUN 屏幕上就没有出现结果,出现了一堆看不懂的英文,现在也想不起来是什么了,反正一定是语法错了。反反复复尝试之后总算有程序跑起来了,我非常高兴。

之后的日子,我就完全是在学习编程了。BASIC 语言进展顺利,我很快就学会了顺序、分支和循环三种基本程序结构。甚至能用 BASIC 语言编出一个“百位内四则运算随机出题”程序。同时我还在学习更“高级”的 C 语言,但是进展似乎不那么顺利。首先就数据类型就不那么理解,既然浮点数能表示非常宽的范围,那为什么还要整型数呢?显然,我完全没有意识到这两种数据类型在内存中的存储方式完全不同,也没意识到浮点是会损失精度的。哦,什么是内存,什么又是精度呢?我还只是个刚学会四则运算的小学生。总之,当时我一直对 C 语言这种到处都是花括号的语言感到十分奇怪,也搞不明白什么是指针、文件指针又是什么,指针移动又是什么。

这个暑假,我的收获就是:见识了 Windows、学会了 BASIC、得到了培训学校奖励给优秀学生的一个笔记本。

(未完)