解惑:学.Net仍是学Java?

     由于.Net和Java是国内市场占有率最高的两门技术,对于准备学习编程语言的初学者来讲,.Net和Java是初学者首先考虑的两门技术,所以不少人一遍遍的问“学.Net仍是学Java”,社区中也天天都有“.Net控”在唱衰Java,也有“Java控”在唱衰.Net,一时间硝烟四起,让初学者更加迷惑。html

    作为一个.Net、Java、Delphi、Python、PHP等语言都进行过有必定复杂度的项目开发的人来讲,我对任何一门语言都没有宗教式狂热崇拜,所以我也相对理性的对整个问题进行分析。java

    从北京、广州、上海等地区2010年的就业统计数据(因为没有找到更权威的数据,这些数据是我对主流招聘网站和技术网站的相关数据进行的并非太严谨的分析)来看,.Net和Java的职位数量比例为2:3,从就业网站和主要技术社区数据来看,2010年.Net和Java的学习人员数量比例为1:3。从数据上看,.Net的职位绝对数量比Java低一些,不过Java学习人员数量比.Net学习人员高出3倍,所以.Net职位的竞争激烈程度低于Java。程序员

 

    因为.Net秉承了微软技术的入门简单的特色,通过短期的学习就能够掌握拖拉控件的快速开发方式,不少人被.Net的快速开发方式所知足,认为本身“学成了”,再也不深刻研究,所以人才市场上充斥着不少只会拖控件、而不懂.Net更深刻一步技术的.Net开发人员,好比不少ASP.Net的书上都是讲ASP.Net服务端控件,不少所谓“精通ASP.Net”的人连什么是Http、HTML、JavaScript、Dom等基本概念都稀里糊涂,实际公司项目中不少功能点的实现不是简单的拖一个ASP.Net服务端控件就能搞定的,所以看似学习.Net的人很是多,可是真正知足企业要求的人则比较少;而Java则入门门槛比较高,若是想要配置一个Hello World级别的学习环境就会涉及到不少技术,开发环境也要学习者自行配置,对于初学者来讲可能花费一周时间都没法配置一个最简单的环境出来,Java的开发环境也不像.Net开发环境那么可用性强,Java和.Net的区别就像Windows和Linux的区别,正由于Java学习门槛很是高,不少学习者被淘汰了下来,这样可以撑过一个个难关学习下来的开发人员都是水平比较高的人员。所以.Net初级开发人员的工资平均是比Java初级开发人员的工资平均略低的。可是因为.Net中高级人才很是缺少,所以掌握.Net深刻技术的开发人员在企业内部是很是吃香的,招聘人员常常发出这样的感叹“招合适的Java工程师能招来一堆,招合适的.Net工程师一个月都招不来几个”。web

 

    .Net入门快,在.Net中微软为开发人员提供了一套最佳的技术架构搭配、集成的开发环境,用微软的技术架构开发出的系统就能够保证最好的效果,而不用像Java开发人员那样去学不少开源框架再去学习搭建技术架构、开发环境,所以.Net学习周期比Java短,有了语言基础后再进行集训式的就业班学习,那么.Net学习者学习3个月能够进入就业,Java学习者须要5个月能够进入就业。面试

 

    微软的本地化推广工做作得很是好,所以学习.Net有大量的中文资料能够参考,所以除非研究很高深的领域,不然中文资料基本能知足开发者的需求;而Java因为走的是高端路线,所以除了初学者资料外,大部分Java资料都是英文的,学习Java须要参考不少英文资料。所以若是英文很是好的学员学习Java就会很轻松,而英文不是很好的学员学习.Net会更好。编程

 

    综上,Java入门门槛比较高,须要有足够的毅力和百折不挠的精神,只要你能坚持下来你就能够将不少人在入门门槛上就将不少竞争者甩在身后。.Net入门门槛比较低,装上VisualStudio就能够立刻进行开发,不须要进行太多的配置、不须要学太多基础知识,这样能够很轻松的掌握入门.Net学习,是有很成就感的事情,能让你有兴趣进一步学习,可是你不能止步于此,所以你会发现身边也有无数的人也是“轻松入门”,你就须要继续深刻学习,深刻学习一样须要毅力和探索的精神,你要在这个阶段上把绝大部分竞争者甩在身后,小吹一把:我教的有个学生面试回来讲“在咱班里比我感受我掌握的不是太好,可是和一块儿参加面试的北大某鸟的学生比我简直就是高手”,呵呵。在我讲“.Net入门简单”的时候,有学生问“.Net把问题都简化了岂不是.Net程序员都不值钱了?”,个人回答是“微软简化的是重复性的东西和低级的东西,这样咱们就能从这些低级的工做中脱身出来研究更深刻的东西,所以.Net把问题简化了只是使得那些只沉迷于简单的东西的人不值钱了,会使得研究深刻的人更值钱”,这就是“.Net入门容易,深刻一样难”这句话的意思。有人会问“哪些知识属于深刻的知识呢?”,好比你不只要会用ADO.Net,还要研究ADO.Net架构中的设计模式,再好比你不只要会拖拉ASP.Net控件,更要明白ASP.Net控件内部发生了什么。这里容许我作一个广告,若是你想从学习一开始就尽快脱离控件型开发人员的行列,你能够跟着视频教程《传智播客.Net视频教程》学习,而后天天登录博客园等高端.Net社区,你会发现你进步是很是快的。设计模式

 

    可能由于我最近都是在讲.Net的课程,对.Net的描述中有或多或少的偏向,可是抛去我的因素考虑,我没有暗示Java好仍是.Net好,请根据本身的状况进行选择。并且.Net和Java并不像360和QQ那样必须两者选其一,并不像不少初学者认为的那样“学一门语言就靠这门语言吃一生”,工做中极可能这个项目用Java,那个项目用.Net,所以你能够喜欢某个语言,可是不要抱着一门语言不放,更不用担忧“Sun被Oracle收购了,Java是否是完了?”、“我学.Net,若是微软没落了我是否是就失业了”之类的问题,不一样语言只是不一样的工具,换了一个新的工具能够很快的熟悉新的工具,大部份内容都是相通的,好比java中的web开发很熟悉了,转而用ASP.Net也会发现大部分东西都是和JavaWeb同样的,很快就能上手ASP.Net,难道你如今用的是诺基亚手机,你会惧怕诺基亚倒台你就不会用手机了吗?“Java完了、微软死了”这类问题不是开发人员去关心的事情,而是华尔街那些金融大鳄去考虑的问题,我们只管用技术去赚钱养家就是了。架构

原文:http://www.cnblogs.com/rupeng/archive/2010/11/21/1883499.html框架

相关文章
相关标签/搜索