其次,我们现在假定一个初学者没有任何程序设计语言的基础。先来比较一下各种语言:
Pascal PK C
现在,看我们学习Pascal和C的过程:学Hello world,然后知道怎么编译,运行。然后学习基本数据类型,然后输入输出。不管学校希望学生能学多好,实际来看,学生学Pascal跟学C是没什么区别的。不同的只是语言风格。有人也许会说,学C的精华在于指针。学C的人会比Pascal强很多。没错,指针是学C的一个重点。但是就按我学C的课本来看,用到的指针只是很简单的。理解了*p和p有什么不同,就够了。然后会编个简单的几行代码,就自认为会C了。C库中有很多函数,教师在课堂上几乎没讲。比如 memset,qsort等,少了这些。你学Pascal和C没什么不同,只是作为了学习其他语言的铺垫而已。而新生由于没有语言根基,有不少好学生由于教师在课堂上没讲,就以为学完教师所教的了。这正是好学生的弱点所在。如果是“坏”学生,不听课堂的。倒还可能发现课堂所学的C是多么肤浅。还有,我至今没见过有学校会教C的图形开发的。虽然图形开发不是语言基础。不过对于扩展新生的编程视野是一个不错的选择。现代程序软件支持图形窗口的太丰富了,几乎不会太多的学生去在意窗体的设置,定位等功能。图形编程还能激起学生的编程欲望。笔者曾经实现过C的动画演示,当里面的所有图形都按预期的运动起来的时候,那种兴奋感犹如你在冰天雪地的情况下忽然淋你一盘冰水所感到的那种感觉。
C PK C++
C++是在C的基础上发展起来的。看起来似乎这两个pk,赢者肯定C++。其实未必。C至今还有生存的空间,而没有被C++全盘代替。说明了C还是具有不可替代的作用。C目前主要应用在于硬件底层的部分,以及对于性能要求较高的应用程序中。但是对于复杂的系统级的开发,显然C++显得从容自在。联系实际,不少人学C++的时候,就已经有C 的基础了。有C的基础,学C++的基本类型的时候可以快速渡过,然后学类,继承,多态等概念。还是从我的经历说起,我选了C++,然后几乎没怎上课,因为实在听了想睡觉,期末前用C++做了一个大作业后,就叫懂C++了哈,然后考试当然轻松过了。其实我那时还是没学到C++,本质点说,我只是还是在会点C 的基础上。多了一个结构类型:类,而已。后来使用了1年的C++后,才恍然察觉到当年的无知。才明白C++是什么。我相信已经学过C++的同学估计现在连 IO流的概念还没搞清楚的人很多。造成这种现象的原因在于:1. 学生本身没有认真去编程实现。2. 教师只是重复的讲课本而已。最终判定学生是否会C++的标准也只是考试为主。关于高校的考试制度在计算机系中的效用,笔者将在未来几天内出一篇个人观点文章。