我国的中学信息学教育,教的编程语言是Visual Basic。我觉得,虽然VB学起来简单,但用VB入门就是坑害小童鞋啊。
其一,VB上来就是GUI编程,掩盖了很多的编程基础知识。学了VB的同学,看到我用C语言写出来的“DOS程序”,还觉得十分落后。恐怕初学者学了VB后,实在是无法接受其他“只能写出DOS程序”的语言了吧。
其二,VB宽松的语法不利于培养编程习惯。VB不用声明变量,又是弱类型,字符串都能和数字相加,给了编程者太多的自由。过度宽松的语法,可能导致各种意想不到的问题。编程习惯的重要性,就不多说了吧……
其三,VB是Windows-only的(虽然有个gambas什么的移植VB到Linux,但可以忽略之)。真正的程序员,不能烂到Windows一辈子吧。学个C/C++、Python什么的,好歹也到处能用。
其四,VB发展前景不好。微软都抛弃VB了,开发另一个貌似也很垃圾的VB.net了,我们却还在学VB。没准儿Windows 8就不支持VB了…… 就算烂到Windows一辈子尚可忍受,也不能烂XP上吧。
其五,Visual Basic编译器(就这么叫吧)是收费软件。虽然这是天朝,百度一下D版到手。但做大项目,用个D版不合适吧。全国学校都装D版VB,更不合适吧。
强烈建议使用Python代替VB,作为中学生学习编程的入门语言。Python要简单足够简单,要严格足够严格,要强大足够强大,有免费的跨平台解释器(手机能用,Win能用,Mac能用),很适合作为第一门编程语言学习。
2011年9月11日 00:42
不用python是因为python不用钱...中小学与教育局的各级官员还怎么忽悠经费?
2011年9月12日 01:14
这算什么?5年前劳资还在大学里搞foxpro呢。。。大学啊!!!
2011年9月13日 12:44
我高中用的PASCAL~~
2011年9月21日 19:26
@tsuui: foxpro 又怎么了?我一年前还在 NetWare 弄的 DOS 系统上用 edit 写 DOS 汇编呢。。
2011年9月21日 19:34
我觉得这也没什么的。不能用一个IT 技术人员的角度来看。中学生,这个软件开发就是个副科,了解一下什么是编程的感觉就行了。有兴趣的人自然会去探其究竟。 没兴趣的人,了解一下就可以了。
我们自己学知识也是有选择的,有些要深究,有些就了解点皮毛就行了。
2011年9月26日 00:07
完全赞同。我们的高中教材本来是讲QBasic的,但是我们下一届(高2013级)的学生(课改),用的广东省那边出版的教材,就讲Visual Basic 6.0。美其名曰《程序设计与算法基础》,但讲的真的说要计算机工业不计算机工业,要计算机科学部计算机科学的。不过把GCD算法和QuickSort等算法通俗的讲了一下,还挺不错的。
然后他们还要学《人工智能简介》,可能要学习Lisp和Prolog。
其实我觉得教授QBasic或者C挺好的(不用太深,能使用简单的算法设计简单的程序就行),Delphi、Pascal作为信息学奥赛讲也凑合(虽然听很多人说很坑爹),Python、Ruby这两个OO的语言也很入流。总之,高中的信息学技术在当下中国的应试教育下,任务就是启蒙,是启发那些对程序设计有天赋、有兴趣的孩子。
教育部门对信息技术还是不够重视,没有深入探究啊。
以上全是个人胡诌,仅供参考。
2011年9月26日 00:09
@DeathKing: 看到第二点我又想起Ruby和Python之争了……
2011年9月26日 00:12
@DeathKing: Ruby和Python怎么了?
2011年9月26日 00:34
@依云: Ruby语法灵活,可以写出漂亮的DSL。Python相对死板。Python坚信“解决方法只有一个”,Ruby相反。
一说“如果你想让自己看起来像个摇滚明星,那么你就用Ruby吧”。
程序员社区经常拿另外一个主流的面向对象脚本语言Python和ruby来做对比。从全球范围来看,Python的社区更大,应用更广泛,但ruby的语法相对Python来说更强大和宽松,给程序员发挥的自由度更大,可以基于ruby创建各个领域的DSL,比方说ruby on rails就是一个基于ruby的web快速开发领域的DSL。
参考链接:
http://robbin.iteye.com/blog/969154
http://robbin.iteye.com/blog/444015
http://www.wikivs.com/wiki/Python_vs_Ruby
robbin(ITeye创始人)的总结:
PHP用一句话来总结就是: quick and dirty
Python用一句话来总结就是:quick and clean, but not convenient for web development
Ruby用一句话来总结就是:code for fun and quick for web
2011年9月28日 09:38
@DeathKing: 你们高中好厉害…… 高中就开始上人工智能了……
2011年9月28日 10:20
@Wayne: 人工智能只是入门,而且是选修部分。
2011年9月28日 10:49
@DeathKing: 有已经很不错了。
2011年10月03日 13:35
本人是中学生,表示必须vb极其无奈。还不如basic。
最近准备oi,看到lz表示自愧不如。
鄙人虽然约10年网龄,编程5载,算法仍一窍不通。深知多练即可,但不知学习方法。实在悲剧。
现在想来,5年前先学的vb真是害人啊。
请教lz有无好的建议。thx
2011年10月03日 20:59
@koc: 算法啊 - - 我也很纠结……
最近与本校OIer矛盾较深,退散回班好好学习文化课ing……
2012年1月25日 22:08
从VB开始玩起的表示压力比较大。。。。我觉得VB其实也不怎么害人,而且还启发了我对“事件驱动”模型的认识。
至于你说的那些理由我也评价一下
1) GUI完全自动化:这不好吗?如果你真的纯粹用代码写GUI(尤其是C的GTK+)你会发现难以忍受的折磨(除非是写hello world级别的toy),尤其是还老是崩出来乱七八糟的警告。虽然熟练掌握用代码写GUI是必须的,但是有一个自动化工具也是非常有必要的,否则维护/修改GUI会非常困难。至于GTK+写的GNOME,仔细看看其实大多数GNOME程序你会发现都是用Glade写的,如Totem, Nautilus等等。
2) 宽松语法:这个主要是看编程者自己的习惯。曾经还有人问我“为什么把数字和字符串连接起来要先转换?转换干什么啊?”我就相当无语,因为这牵扯到了各种底层。这个算是一个理由吧。
3/4/5完全同意。但是掌握编程思想更加重要,而不是纯粹“编程写软件”,否则什么语言都学不会。
2012年2月17日 00:42
@koc: 找到一些具体的问题来解决是精进任何技能的必要步骤, 在提升exp的时候积攒各种skill point, 也会很快找到自己的角色, 是力量型的底层技术,还是智敏型的改善程序感官的开发者, 这个比练级要漫长多了..
2012年7月24日 20:53
我觉得大学入门可以用 Python。
当年还用 VB 参加比赛,觉得吧,虽然 VB 不好,但是仍可以用来初次接触编程,并不是每个人都有编程能力,兴趣培养是学校考虑的第一位