昨晚,看了一个朋友开发的一个评测代码的系统。这个系统是如此的:访问网站,并登录,在网站上会有一些题目,用户可以打开这些题目并将代码写到网页上指定的位置上,系统便将用户的代码编译、执行,并返回结果给用户。这个系统现在不妨称之为X系统吧。
说到这里,我得申明一下,我不是针对这个系统或者这位朋友,而是这是一个值得讨论的技术问题。
我们学校提供给学生的编程平台,是一个Linux服务器,学生可以登录到服务器并在上面编程(C语言教学)。学生可以在学校任何一个能连接到校园内网的地方访问到服务器,并登录到服务器进行编程的练习,同时服务器也作为考试平台。对于这个系统,现在不妨称之为Y系统吧。 对于Y系统,由于建立时间不长,现在有一个很明显的缺陷:题目数量太小。而X系统恰好有大量的题目。我最开始认同两个系统相结合的原因便是将X系统的这个优点弥补Y系统的缺点。
后来了解了一下X系统。X系统是基于windows开发的,有着诸多优点,不仅可以评测C语言代码,还可以评测C++、java等语言代码,这是一个很大优点。但是我也发现,这个系统可以做的事情,在windows系统上都可以实现,当然,如果觉得不想安装那么多编译器,那么这个系统将是一个很好的选择。也发现一些缺陷,这个系统想要移植到其他操作系统上而不用windows系统的话,可能有些麻烦,不过这不是最主要的确定,最主要的确定是:用户没有调试的机会,或者说用户确缺少了很多调试的机会。
程序的调试,是一个很重要的技能。自从开始编写程序,调试就始终伴随着每一位程序员。不客气地说,调试水平的高低反映了一个程序员水平的高低。即使有一天你不做程序员了,当你遇到难题的时候,曾经在调试程序的时候养成的沉着、耐心,以及由此锻炼出的逻辑思维能力,甚至在调试时查找bug的一些方法,都可能对你有莫大的帮助。调试程序这个技能的重要性,想必每一位做过开发的人都很清楚。调试程序的能力,不是老师们所能教的,而是学生自己练习的结果,没有写过大量的代码,调试程序的能力绝不高到哪里去。
X系统恰好将这个重要的学习环节给屏蔽了,X系统的用户,很难提高调试程序的能力。就这条理由,可以将我之前的观点给否认了。事实上,X系统在C语言上,文件操作是没法深入的考察的,用户也没法深入的练习文件操作。而文件操作却是一个C语言中很重要的一个模块。比如Linux系统中,很多软件的配置,都是以文件的形式存在,如此很方便用户配置成自己想要的系统。
X系统也有着诸多优点。
我只是想说,对于一个新手,平台的选择要慎重,不要因为觉得某个平台简单易用,而选择之。