【标题】初学者如何选择第一门开发语言?

众所周知,万事开头难。对于想学习软件开发的人来讲,之前对软件开发肯定有了一些了解,但您在决定学习之前,必然会遇到一个问题:那就是学习什么语言?您看到身边的朋友或同学,有的学.NET,有的学java,有的学PHP,有的学CC++等等,而往往初学者对这些开发语言又不能很好的区别,究竟自己应该选择什么开发语言呢?我想这个问题肯定会让好多初学者感到迷惑,下面我就给大家分享一下我的工作体会和对初学者朋友的一些建议,希望能给您提供一些帮助。

开发语言的专业方向比较强,应该正确划分不同开发语言所属的专业方向。现在对于大多数的学习者而言,开发语言基本可以划分两个方向:

第一、 硬件底层开发语言。

这类语言一般是汇编语言、C语言、C++等,当然C++相 对于前两种开发语言更加高级,并且应用范围更加广泛。比如,我们的计算机操作系统开发,我们所用的家电设备的控制、手机的底层软件、汽车的行车电脑,以及各类电子电器设备的运行等等,都需要这些底层软件支持,一般我们把从事这方面的工作的开发称之为“嵌入式开发”,因为这些程序一般都固化在硬件设备里面, 一旦开发完毕,不会经常修改,当然,也会适当升级。学习这些主流的底层开发语言一般都有比较好的硬件基础,因为这个开发语言往往和硬件关系非常大,它的开发好多情况是直接依赖于硬件设备的,所以,如果您不是这方面的专业人才,我不建议您学习,原因:学习成本高,难度大,即使入门了,想深入的话,也非常困难。这些语言一般都是大学里面的专业基础课,好多人都略知一二,但做开发的确很少。但是,这方面的人才却很重要,因为它的学习成本高,经验非常重要,适合边工作边学习。

第二、业务应用层开发语言。

这类开发语言主流的有.NETJavaPHP等。 之所以把这些语言称之为“业务应用层”开发语言,是因为这些语言开发的软件一般都是直接和我们使用者打交道的,是为了提高我们的工作效率或实现某种信息交互(比如电子商务网站等类型的应用)而开发的。这些开发语言也是现在大多数软件开发者在工作中使用的,需求潜力巨大,学习成本低,是我们大多数从业者需要学习的。那么如何正确的区分这三类语言,并选择一个适合自己的开发语言来学习呢?

1. 首先说java语言。因为这个语言出现的比较早,企业使用的也很多,现在的应用范围也是非常广泛的。Java语言在web开发领域具有很强的竞争力,这种竞争力源于本身语言的强大性。目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro EditionJava ME)、适用于桌面系统的Java2平台标准版(Java2 Platform Standard EditionJava SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise EditionJava EE)。从上面三个版本相信大家能看出java语言在桌面系统开发、web开发、移动设备开发等都被广泛使用,但web和移动设备开发更是java的强项,java语言之所以被广泛应用还有另外一个重要特点就是开源性,这样全世界的开发者都可以为java语言奉献自己的力量,使得java框架的类型非常繁多,并且更新速度快。由于java是开源框架,所以企业在使用的时候成本几乎可以忽略不计。最后一点,java语言还具备很好的跨平台性,也就是不管是在windows平台还是linuxunix等主流平台,java程序都会很轻松的部署和维护,这一点尤其受企业的青睐。java语言还有好多优点,这里我们就不多说了,当然任何语言也会有自己的不足,java语言应用非常广泛,但学习成本比较高,因为是开源框架,需要开发者时刻关注版本的变化,开发者在轻松享受别人贡献的同时,也带来程序调试的困难。

2. 下面我们简单说一说PHP。现在好多企业网站也都是用PHP做的,如果您看到浏览器地址栏里面最后结尾处有.php,那么该网站一定有php网页。那么PHP有哪些优点和不足呢?下面我们看一下:PHPjava语言以及.NET平台开发语言不同,它是将程序嵌入到HTML文档中去执行,而java.NET平台的开发语言现在都是前台和后台分开设计和编写,PHP现在的黄金搭档是LAMP,也就是linux平台+Apache服务器+MySQL数据库+PHP语言,如果用户使用这种组合形式开发出的网站,除了人工成本以外,几乎可以不支付其他额外产品费用,同时,由于PHP的跨平台性和java一样方便,同样也深受企业的喜爱,这几年PHP也非常流行,在全国知名的淘宝网平台上面,就有很多PHP网页,当然淘宝网的设计绝不是一种开发语言能够完成的。PHP的语法也非常简洁,学习起来也比较容易,但PHP除了web应用外,在其他领域几乎看不到它的身影,所以PHP语言的使用领域比较单一,同时,因为PHP程序编写的时候前台和后台代码是混编在一起的,而java.NET平台在设计的时候是极力避免这种情况的,毕竟混编在一起会使得程序的修改和维护带来一定麻烦。

3. 最后我们谈谈.NET.NET(英语读作dot net)我们习惯于读作“点儿”NET,其实这是不正确的读法,但是大家都习惯了也无所谓,在正式场合还是希望大家按照英语的标准读音使用,我们看看.NET是怎么回事。

首先,我们要分清几个概念:.NETC#VBVC++等,虽然这些是大家经常说的,但对于初学者而言却经常弄不清楚。.NETjava一样,它是一个平台的概念,但.NETjava又很不一样,原因是java平台里面就一种java语言,而.NET则提供了若干种语言,C#是伴随着.NET平台出现而量身定做的平台语言,在.NET平台之前是没有的,说到这里大家就应该明白了,.NET是程序开发和运行的平台,在这个平台基础之上开发者可以选择自己喜欢的开发语言,比如C#VB.NETVC++.NET等,C#语言继承了CC++java语言的优点,重新整合设计,所以C#语言非常容易学,其语法结构和javaC++非常相似,尤其是java,因为都是完全的面向对象语言,两者语言特性几乎都能吻合在一起。而VB.NETVC++是在以前非.NET平台的时候就有了,而且当时VB的程序员是一统天下,当微软推出.NET平台的时候,肯定会把VB的程序员和VC++的程序员吸引过来,所以.NET平台下的VB.NETVC++.NET,是平台的移植,这样在.NET平台下的C#VB.NETVC++.NET三种主流语言并驾齐驱,您可以任意选择,同时,这三种语言的开发者,在开发同一个项目的时候,可以完全根据需要选择语言类型,不同语言开发的模块,可以直接使用,而不像其他语言那样,如果一个模块使用了其他语言编写,要想集成到自己的项目中会变得非常麻烦,而微软的.NET平台对多语言编程简直就是一个彻底的颠覆!这也是.NET平台大一个重要特点之一:跨语言,而javaPHP是跨平台,.NET也可以实现跨平台,但是在linuxunix平台上部署的时候相对麻烦,这也是它的一个小小不足,但是毕竟微软的windows平台在全世界是占有率最高的,所以主流的平台依然是windows,这一点是不可否认的。

谈到这里,大家也许要问了,每个语言都有自己的优缺点,那我究竟该选择哪一个呢?我就把我的工作经验和大家交流一下,我个人建议初学者学习.NET平台的C#语言。原因如下:

1.NET平台现在的版本是2.03.54.0,从2.0开始就是一个非常成熟的平台,后面都是完全继承前面的,这个请大家放心。微软在世界的地位是人人皆知的,有这么强大的公司做支持,大家完全可以不用担心产品的使用问题。

2C#语言语法简洁、完全的面向对象特性,当然最关键的是和.NET平台同时推出的VisualStudio开发工具,现在发展到了2010版 本,这个开发工具的出现令世界震惊,因为程序的编写、编译、调试、发布于一体,而且最关键的是这个开发工具的调试能力是如此强大,当您编写的程序语句有语 法或其他错的时候,编译会直接给你指向错误的语句,并且告诉您这是怎么错误,并适当给出解决方法,这一点对于初学者而言是相当关键的,初学者在学习的时候 最害怕的就是出现错误不知道从哪里修改,而VS这个开发工具的使用让初学者完全不必担心错误解决问题,就这一点是其他任何开发语言的开发工具都无法比拟的,就凭这一点初学者您有什么不能完全接受C#呢?

3)强大的类库、MSDN帮助文档和唾手可得的各种控件无疑给开发者又增加了很多乐趣,当然这种乐趣是基于开发的高效率而言的,尤其是开发桌面应用程序,强大的控件,可以让开发者节省约70%的代码量,就这一点其他开发语言更是无法相比的,试问,不管你是初学者还是有经验的高手,难道你在开发中和效率过不去吗?如果C#能用一天的时间搞定,你非得选择其他语言用一周去搞定吗?当然也有好多人说.NET就是拖放控件,我也遇到过,但凡跟我说这样话的人都被我扁的一文不值,我不想说别的,只想告诉大家,说这些话的人是因为他们根本就没真正做过.NET开发,或者根本就不了解.NET

4)考虑到初学者入门语言问题,我建议大家学.NET,不是说其他语言不好,我是想告诉大家,开发语言之间没有好坏之分,主流语言都是非常棒的,而我们今天要谈的是对“初学者”而言,记住是“初学者”,因为您还不懂开发语言,而C#的特点是非常适合初学者的,您可以学习很短的一段时间就能做项目,而java语言你要学习很多框架,框架的使用对于初学者而言还是有难度的,并且程序的调试有时候真的就足以让初学者头疼的连吃药都不管事,当然我这个说法有点夸张。而php呢,虽说非常强大,但应用领域单一,而且代码混编,看不出您的个人真实水平,因为我们要学习开发语言之外的“面向对象思想”,PHP做为面向对象语言,却无法很好给初学者体现出这一点。而当您学完C#以后,等到工作了,想学java了,那会变得非常轻松,因为“面向对象”思想都是一样的,您只需要熟悉一下语法的区别、类库的区别和框架的使用就可以了,如果您学C#用了一年搞定,那么再学java两个月就可以搞定了。而PHP呢,我只想告诉大家,如果您真的在工作用到了,必须得学的时候,再看看吧。

最后,用一句话概括一下,开发语言没有优劣,初学者选择入门语言却非常重要,学习.NET平台下的C#语言,您将会在学习的过程中其乐无穷!(当然,如果您是一个挑战性非常强的人,不妨学习Java语言)