來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-05-05 17:46:20
做為一個.Net、Java、Delphi、Python、PHP等語言都進行過有一定復雜度的項目開發(fā)的人來說,我對任何一門語言都沒有宗教式狂熱崇拜,因此我也相對理性的對整個問題進行分析。
因為.Net和Java是國內市場占有率最高的兩門技術,對于準備學習編程語言的初學者來說,.Net和Java是初學者首先考慮的兩門技術,因此很多人一遍遍的問“學.Net還是學Java”,社區(qū)中也每天都有“.Net控”在唱衰Java,也有“Java控”在唱衰.Net,一時間硝煙四起,讓初學者更加迷惑。
做為一個.Net、Java、Delphi、Python、PHP等語言都進行過有一定復雜度的項目開發(fā)的人來說,我對任何一門語言都沒有宗教式狂熱崇拜,因此我也相對理性的對整個問題進行分析。
從北京、廣州、上海等地區(qū)2010年的就業(yè)統(tǒng)計數(shù)據(jù)(由于沒有找到更權威的數(shù)據(jù),這些數(shù)據(jù)是我對主流招聘網(wǎng)站和技術網(wǎng)站的相關數(shù)據(jù)進行的并不是太嚴謹?shù)姆治?來看,.Net和Java的職位數(shù)量比例為2:3,從就業(yè)網(wǎng)站和主要技術社區(qū)數(shù)據(jù)來看,2010年.Net和Java的學習人員數(shù)量比例為1:3。從數(shù)據(jù)上看,.Net的職位絕對數(shù)量比Java低一些,不過Java學習人員數(shù)量比.Net學習人員高出3倍,因此.Net職位的競爭激烈程度低于Java。
由于.Net秉承了微軟技術的入門簡單的特點,經(jīng)過短時間的學習就可以掌握拖拉控件的快速開發(fā)方式,很多人被.Net的快速開發(fā)方式所滿足,認為自己“學成了”,不再深入研究,因此人才市場上充斥著很多只會拖控件、而不懂.Net更深入一步技術的.Net開發(fā)人員,比如很多ASP.Net的書上都是講ASP.Net服務端控件,很多所謂“精通ASP.Net”的人連什么是Http、HTML、JavaScript、Dom等基本概念都稀里糊涂,實際公司項目中很多功能點的實現(xiàn)不是簡單的拖一個ASP.Net服務端控件就能搞定的,因此看似學習.Net的人非常多,但是真正滿足企業(yè)要求的人則比較少;而Java則入門門檻比較高,如果想要配置一個Hello World級別的學習環(huán)境就會涉及到很多技術,開發(fā)環(huán)境也要學習者自行配置,對于初學者來說可能花費一周時間都無法配置一個最簡單的環(huán)境出來,Java的開發(fā)環(huán)境也不像.Net開發(fā)環(huán)境那么可用性強,Java和.Net的區(qū)別就像Windows和Linux的區(qū)別,正因為Java學習門檻非常高,很多學習者被淘汰了下來,這樣能夠撐過一個個難關學習下來的開發(fā)人員都是水平比較高的人員。因此.Net初級開發(fā)人員的工資平均是比Java初級開發(fā)人員的工資平均略低的。但是由于.Net中高級人才非常缺乏,因此掌握.Net深入技術的開發(fā)人員在企業(yè)內部是非常吃香的,招聘人員經(jīng)常發(fā)出這樣的感嘆“招合適的Java工程師能招來一堆,招合適的.Net工程師一個月都招不來幾個”。
.Net入門快,在.Net中微軟為開發(fā)人員提供了一套最佳的技術架構搭配、集成的開發(fā)環(huán)境,用微軟的技術架構開發(fā)出的系統(tǒng)就可以保證最好的效果,而不用像Java開發(fā)人員那樣去學很多開源框架再去學習搭建技術架構、開發(fā)環(huán)境,因此.Net學習周期比Java短,有了語言基礎后再進行集訓式的就業(yè)班學習,那么.Net學習者學習3個月可以進入就業(yè),Java學習者需要5個月可以進入就業(yè)。
微軟的本地化推廣工作做得非常好,因此學習.Net有大量的中文資料可以參考,因此除非研究很高深的領域,否則中文資料基本能滿足開發(fā)者的需求;而Java由于走的是高端路線,因此除了初學者資料外,大部分Java資料都是英文的,學習Java需要參考很多英文資料。因此如果英文非常好的學員學習Java就會很輕松,而英文不是很好的學員學習.Net會更好。
綜上,Java入門門檻比較高,需要有足夠的毅力和百折不撓的精神,只要你能堅持下來你就可以將很多人在入門門檻上就將很多競爭者甩在身后。.Net入門門檻比較低,裝上VisualStudio就可以馬上進行開發(fā),不需要進行太多的配置、不需要學太多基礎知識,這樣可以很輕松的掌握入門.Net學習,是有很成就感的事情,能讓你有興趣進一步學習,但是你不能止步于此,因此你會發(fā)現(xiàn)身邊也有無數(shù)的人也是“輕松入門”,你就需要繼續(xù)深入學習,深入學習同樣需要毅力和探索的精神,你要在這個階段上把絕大部分競爭者甩在身后,小吹一把:我教的有個學生面試回來說“在咱班里比我感覺我掌握的不是太好,但是和一起參加面試的北大某鳥的學生比我簡直就是高手”,呵呵。在我講“.Net入門簡單”的時候,有學生問“.Net把問題都簡化了豈不是.Net程序員都不值錢了?”,我的回答是“微軟簡化的是重復性的東西和低級的東西,這樣我們就能從這些低級的工作中脫身出來研究更深入的東西,因此.Net把問題簡化了只是使得那些只沉迷于簡單的東西的人不值錢了,會使得研究深入的人更值錢”,這就是“.Net入門容易,深入同樣難”這句話的意思。有人會問“哪些知識屬于深入的知識呢?”,比如你不僅要會用ADO.Net,還要研究ADO.Net架構中的設計模式,再比如你不僅要會拖拉ASP.Net控件,更要明白ASP.Net控件內部發(fā)生了什么。這里允許我做一個廣告,如果你想從學習一開始就盡快脫離控件型開發(fā)人員的行列。
可能因為我最近都是在講.Net的課程,對.Net的描述中有或多或少的偏向,但是拋去個人因素考慮,我沒有暗示Java好還是.Net好,請根據(jù)自己的情況進行選擇。而且.Net和Java并不像360和QQ那樣必須二者選其一,并不像很多初學者認為的那樣“學一門語言就靠這門語言吃一輩子”,工作中很可能這個項目用Java,那個項目用.Net,因此你可以喜歡某個語言,但是不要抱著一門語言不放,更不用擔心“Sun被Oracle收購了,Java是不是完了?”、“我學.Net,如果微軟沒落了我是不是就失業(yè)了”之類的問題,不同語言只是不同的工具,換了一個新的工具可以很快的熟悉新的工具,大部分內容都是相通的,比如java中的web開發(fā)很熟悉了,轉而用ASP.Net也會發(fā)現(xiàn)大部分東西都是和JavaWeb一樣的,很快就能上手ASP.Net,難道你現(xiàn)在用的是諾基亞手機,你會害怕諾基亞倒臺你就不會用手機了嗎?“Java完了、微軟死了”這類問題不是開發(fā)人員去關心的事情,而是華爾街那些金融大鱷去考慮的問題,咱們只管用技術去賺錢養(yǎng)家就是了。
招生熱線: 4008-0731-86 / 0731-82186801
學校地址: 長沙市天心區(qū)團結路6號
Copyright © 2006 | 湖南大計信息科技有限公司 版權所有
湘ICP備14017520號-3