一起来看看:IT热门行业那一种最适合你
目前Java、android、.Net、php都是国内市场占有率最高的编程语言技术,对于准备学习编程语言的初学者来说,.Net和Java是初学者首先考虑的两门技术,因此很多人一遍遍的问“学.Net还是学Java”,社区中也每天都有“.Net控”在唱衰Java,也有“Java控”在唱衰.Net,一时间硝烟四起,让初学者更加迷惑。
做为一个.Net、Java、Delphi、Python、PHP等语言都进行过有一定复杂度的项目开发人来说,我对任何一门语言都没有非常偏执的喜爱,因此我也相对理性的对整个问题进行分析。
由于很多初学者并不特别了解什么是.Net和Java,我就简单的为大家阐述一下:
1、什么是.Net
.Net即Microsoft XML Web servicES 平台,是微软公司目前主推的开发平台, 是微软未来操作系统以及长远战略的基础。现在,无论是个人用户或企业用户,Windows操作系统已成为多数电脑使用者眼中的第一选择。同时.Net是一种现代的架构,最近几年流行开来,运用的是C#(C SHARP)语言,系统只在Windows平台上运行,拥有易学易用、开发迅速的特性。随着它的成熟和完善,使其受到越来越多企业的青睐,目前主要运用于网站开发和应用程序编制的工作。
2、什么是Java及其主要特性
Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
Java主要特性:Java的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java;另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。Java是一个面向对象的,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。
Java支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。
其次再来分析一下.Net、Java两种编程语言在就业环境和学习上的本质区别:
从北京、广州、上海等地区2010年的就业统计数据来看,Java和.Net的职位数量比例为3:2,从就业网站和主要技术社区数据来看,2010年Java和.Net的学习人员数量比例为3:1;从数据上看,.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会更好。
在分析了.Net、Java的区别后,再来说说Java和android 的区别:
Android工程师是目前很火热的一个专业发展方向,在此也简单为大家阐述一下Android的背景。
Android:一词的本义指“机器人”,同时也是Google于07年11月5日发布的基于Linux核心的开源手机软件平台,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android工程师:是以手机开发为主要对象,包括但不限于手机操作系统、手机游戏、手机其他多种功能的开发和优化人员。
Android系统架构由Linux Kernel、Android Runtime、Libraries、Application Framework、Applications五部分组成。Android系统的高级编程语言是Java,很多Java和C#程序员用来做基于Android系统的软件开发,比如基于Android系统的QQ等。
想要学习android,必须先学习Java语言,这一点是非常清晰地明白的,所以不用多做介绍;但是可能很多人会很迷惑,既然都是用Java语言进行编写那位什么要区分Java和android呢?
首先来看看区别: Android是一个完整的移动设备操作系统,由linux操作系统,中间件,C类库和核心应用程序组成;java针对移动设备开发应用程序的开发包,它必须有底层操作系统支持。 其次再来看看两者之间的联系:都是用java语言编写应用程序。最后说一下各自的优势: Android的优势在于开发性和开源,是一个优秀的移动设备操作系统;Java是一个移动设备软件开发包,跨平台是其主要特点。
总的来说,Android 用的是Linux内核,底层用C,C++开发,上层用Java开发。如果需要开发高效的AP,就会用到JNI来做,核心部分用C,C++来写,上层用Java来写,中间用JNI连接。所以,需要做好Android开发,不仅仅是要懂得Java语言,还需要懂得其他语言如C,C++等。Java语言只是做好Android开发的一部分。
目前Android和Java的就业前景都非常好通过以下信息可以看出:清华大学计算机系软件所知识工程研究室王克宏、李娟子认为,相对于发达国家,即便是与印度相比,中国的Java应用也还是有相当差距的,要表现在:开发者数量少,全球的Java开发人员将近450万,而中国还不到20万;在应用范围上,在中国的应用推广局面还没有完全打开,尤其是在能充分体现Java特色的跨平台和多线程领域,成熟的Java应用软件还不多见;另外在人才培养和宣传力度上也还有很大差距。随着Android平台的扩张,引发了Android人才荒,目前Android成亚洲市场份额最高手机操作系统,明年Android将成为欧洲第一大智能手机平台,2010年移动开发人才需求20万,明后年人才需求缺口将达百万,但符合条件的Android工程师屈指可数。
据我所知,很多从事Java的人员都在自学Android,认为只要有Java基础,学习Android是非常容易和简单的事情,但是这往往是一种误区Android的课程体系不只是大家想象的那么多简单,如果你Android非常感兴趣,在此建议你还是需要到专业的机构进行专业系统的学习。试问没有经过系统学习的学生就算行业人才再紧缺,又有那一家公司敢用这样的人呢?
在谈了.Net、Java和android后,再简单的说说 php目前的发展趋势和就业前景:
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,PHP具有和JAVA类似的Class关键字。因为不需要虚拟机,以致速度比JAVA快5倍。语言的风格有类似于C语言,目前被广泛的运用。
而经过近十年的发展,PHP已经毫无疑问的成为了国内外Web开发的首选语言之一。对于初学者而言,PHP简单、上手快,很容易能够让人产生兴趣和成就感;而在高级工程师的手中,PHP又能作为大型乃至超大型网站的主要构架语言。在经历了PHP3的简单、PHP4的完善和PHP5的成熟之后,PHP在海外已经被包括Yahoo!、Facebook等国外大型互联网企业所采纳;在中国,Discuz!、UCenter Home、Shopex、DedeCMS等这样的PHPWeb产品和PHP在大型网站中的广泛应用,更造就了国内对PHP人才的强烈需求。
2010年5月8日Marc Andreessen在Zend/PHP会议上预言,PHP在Web-based应用程序的开发上,将会比Java更受欢迎。从目前市场情况看,PHP的势力非常强大,大约有3200万的网站采用PHP,包括Yahoo!、Lufthansa 腾讯 新浪 百度等知名网站,数量并持续增加中, 而且目前也受到计算机工业大厂的闭佑,像Oracle跟IBM都致力开发让PHP软件可以撷取旗下数据库的程序,支持PHP的发展。互联网的猛烈发展,上网人数的与日俱增,用户建站的大幅需求,PHP的美好明天正在展示在我们的眼前!
总结,选择适合自己的才是你心中最好的行业!
综上,Java入门门槛比较高,需要有足够的毅力和百折不挠的精神,只要你能坚持下来你就可以将很多人在入门门槛上将很多竞争者甩在身后。而.Net入门门槛比较低,装上VisualStudio就可以马上进行开发,不需要进行太多的配置、不需要学太多基础知识,便可以很轻松的掌握入门.Net学习,是有很成就感的事情。
能让你有兴趣进一步学习,但是你不能止步于此,因此你会发现身边也有无数的人也是“轻松入门”,你就需要继续深入学习,深入学习同样需要毅力和探索的精神,你要在这个阶段上把绝大部分竞争者甩在身后。
在我讲“.Net入门简单”的时候,有学生问“.Net把问题都简化了岂不是.Net程序员都不值钱了?”,我的回答是“微软简化的是重复性的东西和低级的东西,这样我们就能从这些低级的工作中脱身出来研究更深入的东西,因此把问题简化了只是使得那些只沉迷于简单的东西的人不值钱了,会使得研究深入的人更值钱”,其他编程语言同样也是这个道理。
这里给大家推荐一个视频,预计在本月底上线,纯免费给大家提供各类开发视频教程噢~!到时候大家可以登录国信安官网免费收藏和分享。
总体来说,目前Java、android、.Net、php都各有各的优势,你只要选择你自己所感兴趣的、适合你自己,如果你英文好你可以选择Java,日后在往android方向发展;如果你觉得选择一个入门起点较低的就可以选择.Net和php,简单易学。其实并不在于说那一种行业好,俗话说的好“365行,行行出状元”,你只要选择适合自己的、在行业中不断地摸索创新你就是这个行业的佼佼者,这个行业对你来说就是最好的。但有一点很重要,Java、android、.Net、php都不是自己随便在网络中找一些教学视频和资料就能学会的,这只是辅助你学习好的方法之一,还是需要到专业的学校进行系统的培训学习,因为在培训学校中你能参与到实战项目中学习,这才是学习知识最重要的环节。不是因为我是培训学校的老师就说到学校学习才好,只是说出自己心中最真实的话。