三、非计算机专业学生软件开发工具的选择
计算机语言繁杂多样,即使是计算机软件专业的学生,也很难精通每一种计算机语言;对于非计算机专业的学生来说,更是眼花缭乱,无从下手。我们要清醒地意识到,对于非计算机专业的学生来说,计算机语言只是工具,并不是我们学习和研究的目的。这部分学生往往没有很多时间来专门研究各种计算机语言,只希望在最短的时间内掌握最需要学习的语言。所以,我们可以根据自身基础和应用目标来决定语言学习的内容。
下面给出学习计算机语言的几条路径,以供学习者选择:
(1)C++到VC
由C++到VC是大部分程序员自然的发展道路。VC的好处是能够完全兼容C语言,具有强大的底层开发功能,适合团队合作开发,并可开发大型应用软件。很多著名的单机软件或C/S软件都是用VC开发的,比如Microsoft的Office办公系统、Adobe的Page Maker、Photoshop等等。就连VB开发工具本身也是用VC做的。但由于VC是目前最复杂的语言,学习VC要经过C语言、C++语言再到MFC,还要学习Direct X多媒体开发工具,学习周期长。而且,由于C/C++语言具有很大的灵活性,使得经验不足的程序员容易犯错误。
(2)C++到JAVA
JAVA程序与C++有很多类似之处,可以说是C++的一个简化版。学过C++的人可以很快掌握JAVA的基本概念。JAVA去除了C++的指针、多继承等容易出错的概念,并有垃圾回收机制,使程序不容易出现诸如内存访问等低级错误,也易于编写可供网页调用的Applet程序。JAVA程序学习周期比VC短,能完成VC大部分的工作。
但某些底层运算还是VC好编。
(3)VB或Delphi
对于那些以界面为主,而且一个人就能完成的应用程序,使用VB就够了。当然,如果考虑使用继承、多态性等概念,并可实现代码重用,就需要采用Delphi。Delphi在数据库上有更加细致的访问手段,可方便开发C/S程序。VB和Delphi都是很容易入门的语言,不需要有其他语言的基础。但由于VB和Delphi都是基于控件的,如果没有恰当的控件,就不可能开发较为底层的程序,并且也不可能对控件进行修改,所以它们具有很大的局限性。
(4)动态网页语言
严格讲动态网页语言不能算是传统的计算机语言,因为它使用的是标记语言,甚至不能完成起码的程序算法。由于很多网页设计要用到它,也就成为热门的软件设计方法。这种语言学起来很快,一般通过自学就能学会。当然,网页制作还必须学习数据库的设计方法,还需要有一定的美术功底。
选择什么语言,当然是根据课题的需要和自身的基础。一般来说,如果掌握了难度最大的语言,如VC,学习其他语言就比较容易了。
四、软件开发工具的学习方法
在此需要专门讨论一下VC的学习方法。从上面的讨论我们知道,VC是目前所有语言中最难学的一种。学习VC需要注意的事项:
(1)学习VC需要基础,必须从C语言到C++再到VC++。一知半解很难成为优秀的VC程序员。
(2)学习VC必须有实践,不是看一两本书就能学会的,需要一定的经验积累。与其他语言相比,VC更复杂,所以需要更长时间的经验积累。从笔者多年培训的效果来看,如果在没有有经验的人指导的情况下,一般需要两年的摸索。如果有人指导,则只需半年或一年时间。
(3)VC与C语言一样灵活,而灵活对初学者来说就是容易出错,特别是指针类型的错误、多态性设计错误等。
(4)软件设计错误,一般参考书都是讲入门知识,而很少谈及如何使用VC进行软件设计。如果软件设计不合理,即使程序开发出来,也无法读懂,或无法对其进行扩展。
对于非计算机专业的学生,学习计算机语言时通常表现出以下几种情形:
(1)急于求成型:因为马上要进行软件开发,但语言基础比较差,希望在很短的时间内掌握软件开发技术。这种心情可以理解。这类学生可以选择快速应用程序VB或Delphi,上手快。但如果必须选择VC,则即使有C++基础,也必须学习一段时间。
(2)偏重理论型:以VC为例,由于VC的不断发展,除去C语言和C++语言的知识,VC理论本身也深奥难懂。有些人希望先学习VC的理论,然后再进行编程学习,其结果就会被VC艰涩的概念纠缠而无法自拔,耽误了宝贵的学习时间。这类学生应及早从VC理论的泥潭中拔出来,投身于实践中,在实际编程中学习VC。
(3)只求效果型:很多人只为了完成任务,只要结果正确,中间步骤能省就省。对程序不作保护(防止极端情况),不进行适当的注释,随意为变量、过程和类取名,程序编写不规范,使得后继者难以看懂,出了错也不好跟踪。
要避免上述几种错误,正确学习编程,就要遵循以下几项原则:
(1)根据实际情况选择开发工具。从上面的分析我们知道,针对不同的用途可以使用不同的开发工具。选择VC要慎重,尤其对于没有C++基础的学生,可以考虑选择其他语言,JAVA、Delphi、VB等都是不错的选择。
(2)程序编写务必规范。源代码本身对后续的开发者具有重要的参考价值,所以务必遵循源代码编写规范。有关的文档和注释也是必要的,它可以帮助后来者或其他合作者尽快熟悉程序。
(3)开发者之间需要交流。软件编写有很多经验性的东西,也许别人的一个建议或一些参考代码可节省你几天甚至几个月的开发或调试时间。没有学习环境,靠单打独斗难以走远。
(4)边干边学,循序渐进。永远不要等到把理论都学透了再动手,当然也不能什么都不懂就直接干。要边干边学,把大程序分解成一个个小问题、小实验,把这些小问题解决了再来考虑大的问题,这就是循序渐进。
五、结论
对于非计算机专业但又必须学习软件设计的研究生来说,软件设计是一个必须经过的门槛。由于软件开发工具的不断发展,提供给我们的选择也是很多。其实在开发工具的选择上也是“没有最好,只有适合”,根据各自的特点选择各自的开发道路,正是本文所要表达的意思。
参考文献
[1]Xu Pin.“Software Development Ability Training for the Non-Computer Engineering Undergraduates”.Macao SAR: e-Education Conference’2004.2004.
[2]杨芙清,梅宏,吕建,金芝。浅论软件技术发展。电子学报,2002(12)。
[3]孙肖子,郭万有,陈南,杨颂华。建立一个以培养创新精神和创新能力为核心的实验教学新体系。电气电子教学学报,2000(1)。
[4]李滨.VC与Delphi及C++之间的比较。机械职业教育,2004(9)。
[5]徐峰.ASP、PHP和JSP技术的比较研究。电子技术,2001(3)。
[6]陈力群,陈良,樊长兴。高校非计算机专业的计算机语言教学探讨。绍兴文理学院学报,2005(12)。