因為.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個月可以進入就業。