乱弹语言的学习(答网友问)
覃士国
(本文转载自软件工程专家网www.21cmm.com)[url=http://www.21cmm.com/prelogin.asp?page=/bbs/index.asp?Type=F][/url]
“你好!我比较喜欢编程,而现在编程语言比较多,我比较喜欢c系列的语言,但是有VC,C++,builder c++,java等,不知那种语言好,请问选那种语言比较有实力和适应社会的能力好呢?谢谢!!!”这是一位网友的来信。
借着这位网友的来信,我想谈一谈关于程序语言的选择问题。但是,我知道,由我这个刚入道,或者说还未完全入道的小弟来谈这个问题,总有点“班门弄斧”之嫌。所以,如果有说得不恰当的,还希望各位大哥不吝赐教。
这位网友的来信是很有代表性的。有好些朋友想学编程,但是觉得不知该学什么好。的确,当各种RAD工具出现之后,程序设计似乎已经变得太容易了。有人就说,用RAD工具,你一行代码都不需要写就能编出一个很好的程序。
在这篇文章中,我不想比较语言优劣,也不想评选最能适应社会的语言。我只想就这个问题谈几点我自己的观点。
一、任何一种语言之所以能够存在,它必定有它可取的地方,同时语言之所以需要发展,也说明任何语言都是有自己的劣势的。我常常在网上,特别是一些大学的论坛上见到关于BCB与VC谁优谁劣,C#会不会取代C++这种论题,而常常这种话题是最热门的话题。我没有资格去评价这种现象,但是我是从来不参与这种讨论的。因为我觉得这种讨论没有任何意义!每种语言之所以能成为一种语言,它必然有它的可取之处。比如说,BASIC语言的简便易学,C语言的简洁高效,C++语言的功能强大。但是如果你是初学计算机语言,我却会建议你去学Pascal,为什么?因为它的结构严谨。要培养严谨的编程习惯,它可能是最好的了。
二、每个人学习的目的不一样,可以选择的学习对象会不一样的。如果您是想做一些小程序的开发,我觉得VB是很好的。简便易学。如果您要做的是大项目的开发,VC和BCB都是比较适合的。如果您有C或C++语言的背景,也许您会喜欢BCB。但是如果您要做UNIX下的软件开发,可能C和C++还是首要的选择。因此,根本就没有一种统一标准来衡量哪种语言是好的,我觉得只要是适合您的语言就是好的。
三、任何一门语言,入门是很简单的,但是要想能真正达到实用,能够写出好的程序是需要花很多时间的。没有速成法,没有捷径。对于VB或BCB等一类RAD工具来说,要想入门,大概一个星期差不多了吧。但是,如果您想做的是软件开发,可能不是一两个星期能解决问题的。
四、软件并不仅仅是代码。要想开发出好的软件,还有其他别的知识是必需要掌握的,特别是软件工程的东西。现在由于有好些人员对于软件开发总是认为,能写出代码就算完成了开发,他们认为软件就是写代码。但是事实并不是这样。
五、为了真正学好一门语言,学一些与此相关的知识我觉得是很有必要的。比如您想要学习Java,如果您学习一些面向对象的知识绝对有助于您对于这门语言的理解。如果您能学习一些标准C++方面的知识对于您学习VC或者BCB都绝对是有好处的。
六、对于一个编程入门者来说,选择一门容易上手的工具可能是最好的,因为对于初学者来说,树立信心可能比编程本身更来的重要。VB和BCB可能是最好的选择。VB和BCB有一个共同的特点就是上手容易。但是要清楚的是,容易上手并不代表它很容易驾驭,要真正精通一门语言绝对不是一件很简单的事。
七、语言的学习不可过于功利。我想我说这句话可能得冒被拍的危险,但是我还是要说的。有些朋友说,想学一门很容易掌握的语言以便于好找工作的。还有的朋友说,想学能够适应社会形势的(我都有点没搞懂他这句话是指什么)。但是,我要说,如果您已经到了必须找一份工作来准备明天的早饭的话,我劝你还是做点别的吧。软件的开发并不是一朝一夕的事。
就着这位网友的话说了这样一大篇,不知是不是有点您认为有用的东西,如果您觉得一点有用的东西都没的话,请尽管“拍”吧。
注:如果您还有什么问题的话,请看一看《程序员》杂志第五第六期上,侯捷先生的一篇文章《漫谈程序员与编程》。这是一篇很好的文章。