经常有初学者问出“哪门语言更有前途?是java好还是.net好?大公司用哪门语言的多?学哪个编程语言工资高?”这样的问题。这样的问题其实本来就是一个伪命题,就像“说英语的人有钱还是说德语的人有钱”一样没有答案。

学习编程是一个学习编程思想的过程,用哪门语言并不重要。只要把自己选定的语言一门心思去学习就可以,达到“一通百通”的境地以后任何编程语言在你眼中都是一样的。语言无高低,内功心法才分上下。菜鸟拿到倚天剑也只能当铁棍子抡,高手飞叶也能伤人。

    当然不同的编程语言还是有自己特色的,以目前最流行的java和.net来比较。很多人都有“java学习门槛高、学习起来难、工资高;.net门槛低、学习起来简单、工资低”这样的看法。这样的看法是对的吗?

由于java开发环境配置复杂,很多java初学者被拦到了java的入门,很多java初学者把一个能打印一个“Hello world”的开发环境配置运行起来可能就要一周,而后续的tomcat的配置、eclipse的配置、struts配置文件的编写、开发框架的搭配组合等等都需要手工完成,绝大部分初学者都被拦在了java语言的大门之外,而经历千辛万苦把java学下来的人都是毅力和自学能力非常强的人。

而且java没有visual studio那种傻瓜化开发工具,完成一个程序你需要对java复杂的语法、java类库、javaweb的原理、struts原理等非常熟悉才能开发出一个简单的增删改查的程序,因此java程序员的基本功都比较扎实。对于一个java程序员来讲,即使没有被重重挫折所打败,从开始学习到最终开发出一个能进行最简单的增删改查的javaweb网站也需要最少两个月。

而.net程序员则幸福多了,由于有了visual studio这个傻瓜化的工具,什么都不用学习,只要把visual studio装好启动,然后拖几个.net控件、设置几个属性、绑定一下控件,不用写一行代码几分钟就能开发出来一个管理系统。但是由于不明白这些傻瓜化的拖控件技术背后的原理、不熟悉C#的语法、不知道什么是ADO.Net、不熟悉.net的一些高级技术、不了解http原理,因此在遇到一些复杂的问题的时候就会束手无策,用这种拖控件形式开发出来的系统效率非常低,访问人数一多网站就会非常卡。上过大学的同学相信都对学校里的教务处选课系统记忆深刻,在全校一起选课的时候所有人都卡的要命,这种系统一般就是用这些拖控件的技术开发出来的。

但是可悲的是,到书店里一看,所有讲.net开发的书籍全部都是讲怎么拖控件,从Label讲到Button、从SQLDataSource讲到GridView,作者辛辛苦苦的把控件的每个属性、方法、事件讲解一遍,但是唯一没有讲的就是这些控件的内部原理。

由于这些初学者赖以学习的学习资料全部都是讲怎么拖控件的,因此跟着这些教材学下来的程序员也是只会拖控件、不明白原理的菜鸟。这样由于国内大部分.net程序员都停留在只会拖控件的水平,那么就导致了.net程序员平均工资偏低了,不少.net程序员毕业后只有三千来块钱工资。

由于合格的.net工程师很少,而合格的java程序员则很多,因此用人单位在招人的时候.net的人招聘起来也比java招聘的难度更大,下面是从网上一部分HR发出的感叹:

现在学习.NET还是学习JAVA那个学科重要呢?_第1张图片

现在学习.NET还是学习JAVA那个学科重要呢?_第2张图片

但是这对于有心者来讲则是一个好机会。由于.net程序员整体水平偏低,对于那些深入掌握.net技术的人来说,他们进入公司之后,他的技术比其他人都强,更会得到领导的重视,那么工资提升和职位提升也就不足为奇了。

比如徐欢同学在传智播客.net班培训的时候在班中学习成绩属于中下等的,但是由于在传智播客培训期间学习了很多.net底层、深入的技术,来到公司中工作了一个月后打电话跟老师说“在传智播客培训期间班里的同学各个技术都比我好,但是去了公司中才发现我竟然成了公司中.net技术最厉害的人了,咱们讲课中一些很原理性的编程技术在公司中很多人都不懂,老板看我技术很好很重视我。”徐同学半年后工资涨了一倍,而且公司让他带领组建新的.net技术团队。

像徐同学这样的案例在传智播客并不少见,在2012年9月份传智播客组织的.net老学员技术沙龙上,有50多名毕业一到两年的传智播客.net培训班的老学员参加,经过调查统计数据如下:
工资涨幅200%及以上的有 12.7%
工资涨幅100%-200%的有 33.8%
工资涨幅50%-100%有 22.7%

25.6%的老学员被提升成为了经理或者主管级别


下面是一部分老学员的数据(为了保护学员,这里隐去了学员的部分隐私信息,想要了解全部信息,请联系咨询老师):


综上,Java入门门槛比较高,需要有足够的毅力和百折不挠的精神,只要你能坚持下来你就可以将很多人在入门门槛上就将很多竞争者甩在身后。.Net入门 门槛比较低,装上VisualStudio就可以马上进行开发,不需要进行太多的配置、不需要学太多基础知识,这样可以很轻松的掌握入门.Net学习,是 有很成就感的事情,能让你有兴趣进一步学习,但是你不能止步于此,因此你会发现身边也有无数的人也是“轻松入门”,你就需要继续深入学习,深入学习同样需 要毅力和探索的精神,你要在这个阶段上把绝大部分竞争者甩在身后。

.Net和Java并不是必须二者选其一,并不像很多初学者认为的那样“学一门语言就靠这门语言吃一辈子”,工作中很可能这个项目用Java,那个项目用.Net,因此你可以喜欢某个语言,但是不要抱着一门语言不放,更不用担心“Sun被Oracle收购了,Java是不是完了?”、“我学.Net,如果微软没落了我是不是就失业了”之类的问题, 不同语言只是不同的工具,换了一个新的工具可以很快的熟悉新的工具,大部分内容都是相通的,比如java中的web开发很熟悉了,转而用ASP.Net也 会发现大部分东西都是和JavaWeb一样的,很快就能上手ASP.Net,难道你现在用的是诺基亚手机,你会害怕诺基亚倒台你就不会用手机了 吗?“Java完了、微软死了”这类问题不是开发人员去关心的事情,而是华尔街那些金融大鳄去考虑的问题,咱们只管用技术去赚钱养家就是了。