level 3
是学Java好还是学.NET好呢?有木有人给我专业指点下啊 貌似目前.NET和Java是最流行的语言吧,不知道哪个就业前景好啊?
2012年10月30日 02点10分
1
level 9
首先,我们要分清几个概念:.NET、C#、VB、VC++等,虽然这些是大家经常说的,但对于初学者而言却经常弄不清楚。 .NET和java一样,它是一个平台的概念,但.NET和java又很不一样,原因是java平台里面就一种java语言, 而.NET则提供了若干种语言,C#是伴随着.NET平台出现而量身定做的平台语言,在.NET平台之前是没有的, 说到这里大家就应该明白了,.NET是程序开发和运行的平台,在这个平台基础之上开发者可以选择自己喜欢的开发语言, 比如C
#、VB.NET、VC++.NET等,C#
语言继承了C、C++和java语言的优点,重新整合设计,所以C#语言非常容易学, 其语法结构和java及C++非常相似,尤其是java,因为都是完全的面向对象语言,两者语言特性几乎都能吻合在一起。 而VB.NET和VC++是在以前非.NET平台的时候就有了,而且当时VB的程序员是一统天下,当微软推出.NET平台的时候, 肯定会把VB的程序员和VC++的程序员吸引过来,所以.NET平台下的VB.NET和VC++.NET,是平台的移植, 这样在.NET平台下的C#、VB.NET、VC++.NET三种主流语言并驾齐驱,您可以任意选择,同时,这三种语言的开发者, 在开发同一个项目的时候,可以完全根据需要选择语言类型,不同语言开发的模块,可以直接使用,而不像其他语言那样, 如果一个模块使用了其他语言编写,要想集成到自己的项目中会变得非常麻烦,而微软的.NET平台对多语言编程简直就是 一个彻底的颠覆!这也是.NET平台大一个重要特点之一:跨语言,而java和PHP是跨平台,.NET也可以实现跨平台,但 是在linux和unix平台上部署的时候相对麻烦,这也是它的一个小小不足,但是毕竟微软的windows平台在全世界是占有 率最高的,所以主流的平台依然是windows,这一点是不可否认的。 谈到这里,大家也许要问了,每个语言都有自己的优缺点,那我究竟该选择哪一个呢?好,那我就把我的想法和大家谈一下, 我个人建议初学者学习.NET平台的C#语言。原因如下:(1).NET平台现在的版本是2.0、3.5、4.0,从2.0开始就是一个非常成熟的平台,后面都是完全继承前面的, 这个请大家放心。微软在世界的地位是人人皆知的,有这么强大的公司做支持,大家完全可以不用担心产品的使用问题。(2)C#语言语法简洁、完全的面向对象特性,当然最关键的是和.NET平台同时推出的Visual Studio开发工具, 现在发展到了2010版本,这个开发工具的出现令世界震惊,因为程序的编写、编译、调试、发布于一体,而且最关键的是这 个开发工具的调试能力是如此强大,当您编写的程序语句有语法或其他错的时候,编译会直接给你指向错误的语句,并且告诉 您这是怎么错误,并适当给出解决方法,这一点对于初学者而言是相当关键的,初学者在学习的时候最害怕的就是出现错误不 知道从哪里修改,而VS这个开发工具的使用让初学者完全不必担心错误解决问题,就这一点是其他任何开发语言的开发工具 都无法比拟的,就凭这一点初学者您有什么不能完全接受C#呢?(3)强大的类库、MSDN帮助文档和唾手可得的各种控件无疑给开发者又增加了很多乐趣,当然这种乐趣是基于开发的 高效率而言的,尤其是开发桌面应用程序,强大的控件,可以让开发者节省约70%的代码量,就这一点其他开发语言更是无 法相比的,试问,不管你是初学者还是有经验的高手,难道你在开发中和效率过不去吗?如果C#能用一天的时间搞定,你非 得选择其他语言用一周去搞定吗?当然也有好多人说.NET就是拖放控件,我也遇到过,但凡跟我说这样话的人都被我扁的一 文不值,我不想说别的,只想告诉大家,说这些话的人是因为他们根本就没真正做过.NET开发,或者根本就不了解.NET。(4)我建议大家学.NET,不是说其他语言不好,刚开始我说java和php一直说他们的优点,我是想告诉大家, 开发语言之间没有好坏之分,主流语言都是非常棒的,而我们今天要谈的是对“初学者”而言,记住是“初学者”, 因为您还不懂开发语言,而C#的特点是非常适合初学者的,您可以学习很短的一段时间就能做项目,而java语言你要学习很 多框架,框架的使用对于初学者而言还是有难度的,并且程序的调试有时候真的就足以让初学者头疼的连吃药都不管事, 当然我这个有点夸张,呵呵。而php呢,虽说非常强大,但应用领域单一,而且代码混编,看不出您的个人真实水平,因为 我们要学习开发语言之外的“面向对象思想”,PHP做为面向对象语言,去无法很好给初学者体现出这一点。而当您学完C# 以后,等到工作了,想学java了,那会变得非常轻松,因为“面向对象”思想都是一样的,您只需要熟悉一下语法的区别、 类库的区别和框架的使用就可以了,如果您学C#用了一年搞定,那么再学java两个月就可以搞定了。而PHP呢,我只想告诉 大家,如果您真的在工作用到了,必须得学的时候,再看看吧。最后,用一句话概括一下,开发语言没有优劣,初学者选择入门语言却非常重要,学习.NET平台下的C#语言, 您将会在学习的过程中其乐无穷!
喜科堂------常老师
2012年10月31日 02点10分
3
老师分析的太详细了
2012年10月31日 02点10分
啊! 醍醐灌顶!
2012年10月31日 12点10分
老师,你收我为徒呗?
2012年11月01日 00点11分
level 9
大家好,这是我们常老师写的文章,更多详细的文章请登录喜科堂
2012年11月01日 01点11分
5
level 3
因为
.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
。
2012年11月08日 05点11分
7
level 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
和
2012年11月08日 05点11分
8
level 3
Linux
的区别,正因为
Java
学习门槛非常高,很多学习者被淘汰了下来,这样能够撑过一个个难关学习下来的开发人员都是水平比较高的人员。因此
.Net
初级开发人员的工资平均是比
Java
初级开发人员的工资平均略低的。但是由于
.Net
中高级人才非常缺乏,因此掌握
.Net
深入技术的开发人员在企业内部是非常吃香的,招聘人员经常发出这样的感叹
“
招合适的
Java
工程师能招来一堆,招合适的
.Net
工程师一个月都招不来几个
”
。
.Net
入门快,在
.Net
中微软为开发人员提供了一套最佳的技术架构搭配、集成的开发环境,用微软的技术架构开发出的系统就可以保证最好的效果,而不用像
Java
开发人员那样去学很多开源框架再去学习搭建技术架构、开发环境,因此
.Net
学习周期比
Java
短,有了语言基础后再进行集训式的就业班学习,那么
.Net
学习者学习
3
个月可以进入就业,
Java
学习者需要
5
个月可以进入就业。
微软的本地化推广工作做得非常好,因此学习
.Net
有大量的中文资料可以参考,因此除非研究很高深的领域,否则中文资料基本能满足开发者的需求;而
Java
由于走的是高端路线,因此除了初学者资料外,大部分
Java
资料都是英文的,学习
Java
需要参考很多英文资料。因此如果英文非常好的学员学习
Java
就会很轻松,而英文不是很好的学员学习
.Net
会更好。
2012年11月08日 05点11分
9
level 3
综上,
Java
入门门槛比较高,需要有足够的毅力和百折不挠的精神,只要你能坚持下来你就可以将很多人在入门门槛上就将很多竞争者甩在身后。
.Net
入门门槛比较低,装上
VisualStudio
就可以马上进行开发,不需要进行太多的配置、不需要学太多基础知识,这样可以很轻松的掌握入门
.Net
学习,是有很成就感的事情,能让你有兴趣进一步学习,但是你不能止步于此,因此你会发现身边也有无数的人也是
“
轻松入门
”
,你就需要继续深入学习,深入学习同样需要毅力和探索的精神,你要在这个阶段上把绝大部分竞争者甩在身后,小吹一把:我教的有个学生面试回来说
“
在咱班里比我感觉我掌握的不是太好,但是和一起参加面试的北大某鸟的学生比我简直就是高手
”
,呵呵。在我讲
“.Net
入门简单
”
的时候,有学生问
“.Net
把问题都简化了岂不是
.Net
程序员都不值钱了?
”
,我的回答是
“
微软简化的是重复性的东西和低级的东西,这样我们就能从这些低级的工作中脱身出来研究更深入的东西,因此
.Net
把问题简化了只是使得那些只沉迷于简单的东西的人不值钱了,会使得研究深入的人更值钱
”
,这就是
“.Net
入门容易,深入同样难
”
这句话的意思。有人会问
“
哪些知识属于深入的知识呢?
”
,比如你不仅要会用
ADO.Net
,还要研究
ADO.Net
架构中的设计模式,再比如你不仅要会拖拉
ASP.Net
控件,更要明白
ASP.Net
控件内部发生了什么。
2012年11月08日 05点11分
10
level 3
这里允许我做一个广告,如果你想从学习一开始就尽快脱离控件型开发人员的行列,你可以跟着视频教程
《传智播客
.Net
视频教程》
学习,然后每天登陆博客园等高端
.Net
社区,你会发现你进步是非常快的。
可能因为我最近都是在讲
.Net
的课程,对
.Net
的描述中有或多或少的偏向,但是抛去个人因素考虑,我没有暗示
Java
好还是
.Net
好,请根据自己的情况进行选择。而且
.Net
和
Java
并不像
360
和
QQ
那样必须二者选其一,并不像很多初学者认为的那样
“
学一门语言就靠这门语言吃一辈子
”
,工作中很可能这个项目用
Java
,那个项目用
.Net
,因此你可以喜欢某个语言,但是不要抱着一门语言不放,更不用担心
“Sun
被
Oracle
收购了,
Java
是不是完了?
”
、
“
我学
.Net
,如果微软没落了我是不是就失业了
”
之类的问题,不同语言只是不同的工具,换了一个新的工具可以很快的熟悉新的工具,大部分内容都是相通的,比如
java
中的
web
开发很熟悉了,转而用
ASP.Net
也会发现大部分东西都是和
JavaWeb
一样的,很快就能上手
ASP.Net
,难道你现在用的是诺基亚手机,你会害怕诺基亚倒台你就不会用手机了吗?
“Java
完了、微软死了
”
这类问题不是开发人员去关心的事情,而是华尔街那些金融大鳄去考虑的问题,咱们只管用技术去赚钱养家就是了。
2012年11月08日 05点11分
11
level 2
你是来打广告的还是来问问题的 简单来说 一句话 各有所长 你学哪个都可以
2012年11月09日 13点11分
12