首頁>技術>

我也是一個在美國的幹過程式設計師工作的,今天來說一下.net好學還是java好學。因為我以前做.NET,後來改行做JAVA了。

首先我要駁斥一個世間流傳已久誤人子弟的謊言!“JAVA更難學習內容更多”絕對是一個彌天大謊!正好相反,.NET要學的東西其實遠遠多於JAVA,而且難度只在JAVA之上不在之下!如果決定搞.NET,那就要準備好要比JAVA吃更多的苦!

由於國內.NET應用的侷限,諸如在美國大量使用的.NET技術體系中的WCF,WPF,LINQ, Entity framwork,SQL SERVER SSRS SSIS等技術在國內幾乎不用或者用得很少,再加上.NET上手快, 很多國內的人有了錯誤的認識,以為JAVA是高大上,.NET是小兒科,這簡直是天大的誤會!等你來了美國,上http://pluralsight.com和amazon上隨便看看(更不要說微軟自己的站點了),無論書籍還是教學影片資料量,.NET幾乎是JAVA的5-10倍!再看看http://dice.com對.NET程式設計師和JAVA程式設計師要求上的差別,JAVA招聘需要的技能種類明顯少於.NET。做JAVA的可以對前端就不懂也有大量職位(如CORE JAVA)。但.NET程式設計師對前端的要求就明顯高過JAVA,很多要求前後端都要精通的。連桌面開發WPF軟體的用人公司也變態地要求前端精通,,結果是不懂甚至不精通前端幾乎不能找.NET的工作,但JAVA就可以!不要以為JAVA要的技能專案要求少就是更難掌握和精通了,.NET一樣可以很難!光一本WCF的書就可以一千多頁,隨便一個WPF這種技術難度也遠在JAVA SSH之上。還有c# .net core高階程式設計那厚度,簡直讓我看到都頭疼,不知何年何月能學完。

我深入學習過兩種語言,負責任地說,C#可以說難度和知識點廣度上絕對是超過JAVA SE的。你去微軟MSDN上查一下API,複雜程式遠遠超過JAVA SE的API文件。光是這些錯綜複雜的內容體系是如何編排的,這個知識網的結構是怎麼在微軟網站上組織呈現出來的都要搞很久才能真正弄清楚,更不要說知識本身了。再來個例子,看看JAVA的SERVLET和JSP網路技術,那種單純性,簡單性和浩瀚無垠的http://ASP.NET體系去比,要學習的內容無論廣度很深度都要差太多。所以為什麼國外http://ASP.NET的書動輒超過1000頁,但大部分JSP SERVLET的書都是些5-6年前甚至十幾年前出的還比http://ASP.NET的薄很多?

.NET上手快是因為有一些自動系統自己可以做出來的東西,比如拖控制元件。但是如果僅僅說有拖控制元件就斷定這個更簡單那就太膚淺了!後面還有很多可以程式設計師自己手工做的呢!你換個思路,用幾句不精確的話來描述.NET和JAVA之間的異同:JAVA不能拖控制元件,只能自己寫程式;而.NET不但能拖控制元件,還可以自己寫程式,而往往工作中拖控制元件自動完成的和自己寫程式都要用到。而拖控制元件並不是看小說那麼簡單也要花巨量的精力學習的。你想想,既要拖控制元件又要手寫是不是比只要手寫還多一個拖控制元件的內容?怎麼反而會更簡單呢?既然多了一項拖控制元件的任務那應該是內容更多了更難了,而不是更少了更簡單了!!

JAVA技術體系更新非常慢,學完C#再去看JAVA SE感覺象小兒科,很多JAVA 的最新特性也許多少年前C#就有了。象SERVLET,JSP,EJB,SSH等更新的速度和.NET體系更新速度比簡直象蝸牛。為什麼5年6年前的JAVA 技術的教學影片現在還被掛在那些坑人的培訓班網站上,還沒有淘汰呢!想想如果換了.NET,可能嗎?!

JAVA技術是開源的,可以看原始碼透析工作原理,但.NET沒有全開源,沒有原始碼的話要真正弄弄背後原理是很難的。如http://ASP.NET的原理就遠遠比JSP等深奧很多。

工作了多年,感覺.NET最難的地方就是往往你不知道系統在背後都為你自動做了什麼,什麼時候和什麼地方做的,自己編寫的程式如何更系統背後自動做的配合在一起完成任務!而搞JAVA往往少很多這種問題,純粹手動反而更簡單更容易控制。從這個意義上講,.NET難度也遠在JAVA之上!

.NET另一個優勢是在WINDOWS上開發,而我們有哪天能離得開WINDOWS作業系統?那些所謂高大上的JAVA程式設計師,如果在投資銀行系統工作,也許每天的工作是和幾千萬美元的交易打交道。但你讓他編寫一個小小的桌面程式完成自己業餘生活中的一點需求,他們都可能會皺眉頭說不好做,因為他們習慣了在伺服器上使用JAVA,在自己朝夕相處的WINDOWS上寫點下里巴人的實用程式反而是做不出來了,而對.NET程式設計師來說就是小菜了。

歲數大了,幹不動了,還是轉JAVA好。機會更多,學習量更小,難度更低,更新速度慢,工資反而更高!

12
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 只有 1000 行程式碼的分散式資料庫,真的牛逼值得學習