刚刚进入大学的时候,就知道必须要学好一门程序设计语言。那时对程序设计的了解很少,也不知道有什么样的程序设计语言。《计算机文化基础》教材中介绍了一些,其中印象非常深的是说Java是一门非常先进的语言。于是我在大学的第一个学期开始学习Java。先说说结果吧,当然是一事无成了。Java的编译环境非常大,我记得似乎21兆,Sun官方网站上提供了两种下载方式,一种是单一的大文件,另一种是十几个小文件(刚好一张软盘装一个)。1999年的网速绝对是现在不可想象的,每秒钟可以下载1K多一点!也不知道有FlashGet这样的断点续传工具,直接点击下载,结果经过了多次的下载之后终于凑齐了这十几个文件,但是安装时报错!于是,经过了一个学期断断续续的学习之后,我发现我自己根本就写不出一个Applet。
第二个学期开设了Pascal程序设计课程,此时也知道了C,知道了C++,似乎也打定主意日后学好C++。那时很清楚Pascal是基础,知道要认认真真地学好。于是那个学期我的电脑除了运行《极品飞车》之外,还运行了不少的Pascal小程序。结果非常不错,至少是期末考试异常轻松。由于入门比较快,而且平时也做了一些,所以最后发现根本不用复习。考试前的那天晚上我照样打打游戏,但发现同学似乎挺紧张,而且有很多人在背例程!不可思议,我觉得学习程序设计语言就像是学习数学一样,不需要背这些东西,不过背程序似乎可以应付考试。但是我的记性不好,背不了那些东西。不过看着别人复习自己心里也不踏实,十点之后还是用了十分钟把课本翻了一遍。第二天考试出了点小问题,忘记带准考证了,而且邻近考试才发现。只好回宿舍取,这样耽误了七八分钟。进入考场后就赶快做,颇有点紧张,毕竟不出师不利。我们是上机考试,有选择和程序设计两种题,选择题的数量及不清了,程序设计有两个题目,一个是冒泡法排序,另一个忘记了。完成选择题之后就感觉很轻松了,剩下两个程序设计题目以前都做过。第一个完成之后偷眼看看别人的屏幕,却着急了,因为我看到大多数人都在看选择,我想:他们怎么这么快?!都开始检查了!其实考完回到宿舍后才闹明白,他们说我太快了,自己选择还没做完呢,我已经写了一大堆程序了。但是在那个学期最高兴的还是从一开始就意识到了代码格式的重要性,什么地方要大写,什么地方要小写,什么地方换行,什么地方空格。
大二上学期开设C程序设计课程。那时就打定主意日后要用C++,觉得现在学C并不是很关键,反正日后还要好好学C++。于是C语言学的非常糟糕,期末考试的时候非常狼狈,又是两个程序设计题,这次一个也没有完成。也许是我的编码风格比较好吧,勉强及格了。C语言的确比Pascal复杂的多。记得课本的一开始比较了C语言和Pascal的不同,其中有一点是同样的语句用C比Pascal要简洁,也就是用C能够少写一些代码。的确如此,连一个简单的赋值语句C都要比Pascal省下一个冒号。但是我始终认为这是在开玩笑,因为我从来都怀疑输入的多少能在多大程度上决定语言的优劣?但大学毕竟是卧虎藏龙之地,这一点在这个学期里的C语言课程设计里我深有感触。课程设计有两周,要求用C语言写一个带有图形界面的程序。当然是基于DOS的,用Turbo
C,不过老师没有要求。
下周要开始,在这周五的晚上就有人完成了,时间距周五下午老师讲解完题目要求和其它问题不过六个小时!对我来说就是后面两周他们就什么也不用干了,而我却可能在时速三百公里的时候突然想起课程设计的问题!不过那天晚上优哉游哉,心里盘算着下面的两周要干点什么。去隔壁宿舍里发现他们在疯狂的抄程序,原来他们早就借好了一本C语言教材,里面有一个长达百十页的完整的例程,刚好符合课程设计的要求。“真是疯了”,这是我的第一反应。我没有这样的教材,三天前图书馆里就一借而空。但是即使有我也不抄,那种皱巴巴的书里面不知道有多少个错误呢,输入计算机又不知道要产生多少个错误,改错简直就是不可能完成的任务。果然,每次编译都要出现成百上千个错误,把高年级的师兄也拉过来改错。说实话,到现在我也还是非常佩服他们,我宁愿写新的。那时我在书店里看到了一本C++
Builder教材,因此了解到了现在的程序设计已经跟过去用Turbo C不同了,尤其是界面的设计。所以对这次课程设计也没有兴趣,因为课程设计最大的难点就在于界面的设计,课本上没有,需要自学,用C写界面真是太落伍了。不过确实有人写出了很漂亮的界面,真是佩服。当时用C++
Builder做了一个简单的界面,不过然后就什么也不知道了,更重要的是觉得不会及格,毕竟一行代码也没写!最后拷贝了别人一个时钟,改了颜色了事。最近重新学习了C语言,看了几本很有分量的教材:《C程序设计语言》、《C的陷阱与缺陷》,才觉得对C语言的了解算是差不多了。
编写一个具有界面的Windows程序一直是个梦,这个梦在大二下学期实现了。寒假里看到了一些讨论Visual
Basic、Delphi和Visual C++的文章。认识到Visual Basic最容易,Delphi其次,Visual
C++最难。于是打定主意开学后学习Visual Basic,然后看Delphi,最后再深入学习C++。这个想法似乎是好的,从简单到复杂,不过执行的时候出了点问题。当时觉得为什么不直接学Delphi呢?据说Delphi也非常简单,只是比Visual
Basic稍难一点,不过功能却强太多,如果学不会在学Visual Basic。于是就开始学Delphi。很快就完成了第一个程序,无非是一个窗体加上一个按钮之类的。程序虽小,但是却让我明白了一个问题:Delphi这样的开发环境与Turbo
Pascal有什么不同?尤其是在程序设计上有什么不同?从此一直学习和使用Delphi,几乎都不再考虑C++了。
不过在大学里还是接触到了C++,大四上学期开设了C++程序设计选修课。不过最重要的不是C++,而是面向对象。那时学习Delphi也已经很长时间了,总感觉用Delphi和用Turbo
Pascal并没有本质的区别,换句话说我没有看到Delphi先进的方面,那时对面向对象一无所知,所以在后来对Delphi的学习也基本上处于停顿状态。C++选修课的开设给了我学习面向对象的好机会,也给了我一个比较Object
Pascal和C++的机会。每当老师讲到C++的一个地方的时候我就想在Delphi中的实现方式。我不喜欢听课,听课的时候总是云游四海,这门选修课算是少有的听的比较仔细的一门。而且那时我认识了一个老师(半年后的毕业设计他作我的导师),他非常熟悉面向对象,也非常熟悉Delphi。想想那时真是非常幸运。
毕业之后很少写程序,较多的看了一些理论书籍,比如:《操作系统概念(第六版)》。但也一直在想一个问题:程序设计怎样入门比较好。现在看来学习程序设计语言其实非常简单,无非是学习这么几项:变量和常量的定义,涉及到数据类型和语法;语句,赋值语句、条件转移语句、循环语句等;文件结构,也就是接口和实现的分离;面向过程方面,子程序的写法;面向对象方面,类的定义,尤其是继承的方式。去年看了看《Java编程思想》,觉得真是不难,也就是根据上面大概看了一下。觉得没有必要深入研究,用得着的时候再说。
我觉得最好的程序设计语言入门语言是Pascal,再加上Borland的Turbo Pascal,真是一对完美的组合。我的导师说他认为从一开始就学习面向对象比较好,因为有些人从面向过程转向面向对象遇到了很大的困难,主要是思维的转变有难度。仁者见仁,智者见智了。Pascal比较简单,比较严谨,这对初学者来说是好事。而且还有个Delphi,Delphi作为面向对象程序设计语言也非常的优美,文件结构也非常清晰,而且太多方面都比其它语言简单。从Pascal到Object
Pascal,非常适合培养学习者的程序设计思维。
C语言不适合作为入门语言,太麻烦了,时常产生的问题比解决的问题还多。但是C语言又是非常特殊的语言,如果你不知道该学什么语言好,那就学C语言吧!我觉得《C程序设计语言》这本书并不适于初学者,各个地方都讲解的比较深入。如果对编译原理和操作系统没有了解,而只是会用C语言写几个程序,那么看这本书可能会非常累。 |