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

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

从北京、广州、上海等地区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工程师一个月都招不来几个”。

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

转载于:https://blog.51cto.com/ftd2013/534911

解惑:学.Net还是学Java?相关推荐

  1. 学.Net还是学Java?两者有什么区别?

    为什么80%的码农都做不了架构师?>>>    解惑:学.Net还是学Java? 经常有初学者问出"哪门语言更有前途?是java好还是.net好?大公司用哪门语言的多?学哪 ...

  2. 没有统计学基础可以学python-统计学专业应该学Java还是Python?

    在你的问题里面,你自己说你是一个善变的人.至于到底应该学习哪个语言,还是要看你自己,看你自己想要从事哪方面的岗位工作.就目前国内的一个IT行业发展情况的话,我比较建议你选择Java,当然Python也 ...

  3. Java怎么学?在学Java的过程中要注意些什么呢?

    Java是属于一种面向对象的编程语言,现在很多企业都是使用Java进行大项目的开发.所以在学习Java之后,从业前景是非常广阔的.那么,Java怎么学?在学Java的过程中要注意些什么呢?下面,跟着小 ...

  4. 学妹问我Java枚举类与注解,我直接用这个搞定她!

    很多人问我学妹长什么样,不多说 上图吧! 学妹问我Java枚举类与注解,我直接一篇文章搞定! 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举 ...

  5. java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...

    原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...

  6. java transferto_小六六学Netty系列之Java 零拷贝

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在 我知道很多人不玩qq了 ...

  7. 后端用java还是python_【后端开发】已学php再学java还是python?

    在考虑学java还是python之前先来说说二者的应用领域. Python的主要应用方向: 1.科学计算 随着NumPy,SciPy,Matplotlib,Enthoughtlibrarys等众多程序 ...

  8. 【我来解惑】.Net应该学什么怎么学(二)

    接上篇<[我来解惑].Net应该学什么怎么学(一)>. 二.C#面向对象基础 初学者学面向对象的时候没必要(也做不到)把面向对象学的非常透.非常深,因为如果想深刻的理解面向对象,必须要有大 ...

  9. 学 Python 和学 Java ,哪个好找工作?

    对于程序员初学者,或者稍微了解互联网行业的人,这几年最频繁地听到的两种编程语言就是 Python 与 Java . 如果你问一名 Java 程序员,肯定会建议你先学 Java,因为他们认为Python ...

最新文章

  1. C++中extern的使用
  2. Chrome 科研神器!论文代码快速复现
  3. mysql 新建子查询_Mysql创建SQL子查询ALIAS
  4. php手册数组函数,PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集...
  5. centos6查看java命令_linux 常用命令(五)——(centos7-centos6.8)JDK安装
  6. 启明云端分享|直接用ESP32-S2和ESP32-C3驱动1.54寸串口屏,有哪些区别呢,他们的亮点又有哪些呢
  7. ajax servlet设置响应,在jquery的请求ajax与在servlet中的响应ajax
  8. PHP 做图片锐化处理
  9. js 获取 当天凌晨时间
  10. Skywalking-09:OAL原理——如何通过动态生成的Class类保存数据
  11. IDEA 2021.1正式发布,新增了这几个超实用功能!
  12. 人人都是程序员?一边吐槽,一边却偷偷用,低代码工具真香
  13. 乐味煲耳机软件中文版解读
  14. 摄像头视场角-对角线视场角-水平视场角
  15. 适合520送礼物的无线蓝牙耳机,颜值高性价比高的520无线蓝牙耳机
  16. android背景气泡,仿Android微信消息气泡
  17. 整理几个国内外常用的广告联盟给大家参考
  18. 甜度超标,程序员的尿竟是甜的,但更可怕的却是...
  19. 【 反向传播算法 Back-Propagation 数学推导以及源码详解 深度学习 Pytorch笔记 B站刘二大人(3/10)】
  20. QT安装教程(简易)

热门文章

  1. 上分神器:训练调参与模型集成
  2. 马斯克:我有一个大胆的想法!给红绿灯加个AI视觉「外挂」
  3. Fine-tune之后的NLP新范式:Prompt越来越火,CMU华人博士后出了篇综述文章
  4. 高校教授称已推翻爱因斯坦相对论,项目还被推荐入选河北科学技术奖?!回应来了!...
  5. 引燃AI社区,不用跨界也能从文本生成图像,OpenAI新模型打破自然语言与视觉次元壁...
  6. 谷歌或被迫拆分Chrome浏览器,谁将会接盘?
  7. 论文LaTeX、项目README:无脑套用格式、开源模板最高10万赞
  8. 实战:手把手教你用朴素贝叶斯对文档进行分类
  9. 【每日一算法】两数相加
  10. 整理对应_JSP第二版课后习题答案【侵权联系我删除】