JAVA爲何有前途?
過去的十多年,JAVA基本每一年都是全世界使用人數第一的語言。全世界數百萬的IT企業構建了龐大的JAVA生態圈,大量的軟件基於JAVA開發。 JAVA也被譽爲「計算機界的英語」。 JAVA的應用範圍涉及全部行業、絕大多數IT企業,造成了龐大的生態圈。以下是智聯招聘在一個月內、北京地區的JAVA人才需求量:
當月需求量25121個職位,咱們以一個職位招聘3人,總量就是:251213=75363*人。這還只是光北京地區。能夠想象整年、全國招聘的數量,以及由此造成的生態圈有多麼龐大。
這個生態圈的影響力愈來愈大,須要的人才也愈來愈多。越多人會JAVA,就有越多軟件使用JAVA編寫,反過來促進須要更多的JAVA人才。 這就是著名的「馬太效應」,即「強者越強,弱者越弱」。
JAVA目前在:企業級軟件開發、安卓開發、大數據、雲計算等方方面面都是主流的編程語言。跟着主流走,確定錯不了。
什麼人適合學習JAVA?
若是做爲興趣來學編程,什麼人都適合。畢竟,如今小學生都開始學習編程了。若是要做爲職業來講,你到底適合不適合確實是個問題。我教過的學員裏面從初中生到博士生、甚至50多歲的企業高管都有,懷着不一樣的目的來學習JAVA。 我記得教過一個北大的數學碩士,人家過來學習不爲職業就爲科研,但願經過培訓節省時間,一個暑假就迅速突破了編程這個坎。
這裏,咱們只探討做爲職業適合不適合你?這裏有六個現實的硬性指標,能夠做爲參考。
1. 興趣度
興趣是基礎。若是你徹底沒有編碼的興趣,敲鍵盤就頭大。那就徹底屏蔽掉程序員這條路,不要強求,天無絕人之路,另外一條路也許更適合你。做爲程序員的基礎,至少不討厭敲代碼的感受,這是最基本的。 越喜歡敲代碼這種感受,你之後的路走的越順。
不少人說:「xxx有天賦」。我想,這裏的天賦換成「興趣」也許就是事情的真相。人家有興趣作這個事,作着開心,天然就會花越多時間研究,成長天然就越快;成長越快,比起常人天然就有「天賦」。
2. 有沒有更好的其餘發展路徑
既然爲職業發展而來,必然要現實一些。若是家裏有很好的背景、父輩有很好的資源。強烈建議,依託父輩資源發展也許是最優的路徑。寫程序能夠做爲業餘愛好,而不要做爲主業。
固然,若是是我等普通屌絲羣衆。學IT,仍然是逆襲最好的途徑。畢竟,這是一個憑技術、憑本事吃飯的職業。技術能力到位年薪百萬的大有人在。
3. 邏輯思惟能力
這是做爲程序員最基本的要求。邏輯思惟能力差的人,徹底不適合學編程。固然,對於通常理工科的學生來講,邏輯思惟不存在問題。對於文藝青年,喜歡跟着感受走跳躍思惟的人,通常不適合程序員這一條路。
4. 英語
對於初級程序員英語要求不高,事實上,高中英語水平足矣。若是想往頂尖技術發展,英語能力有必要提升。畢竟,不少技術源自美國,能熟讀原汁原味的英文,將會讓你如虎添翼。
我的建議是:英語高中以上夠混初中級程序員階段。想往頂尖混,至少要英語四六級以上。
5. 數學
被數學折磨的咱們,學編程有個好消息就是「數學並不重要,除非搞科研」。對於企業裏面開發軟件,數學知識初中水平足矣。
若是要搞人工智能、大數據等開發,一些高等數學、線性代數、機率等知識仍是有不少用處的。固然,等你用到時再翻書也來得及。
6. 職業發展穩定
JAVA歷經十多年,都是穩居第一位,可見的將來也是很是穩定的開發語言。JAVA行業的一大特色就是穩定,發展空間大。
做爲JAVA程序員工資從:4000月薪,10萬月薪都有。不像前幾年火爆的IOS,火了3年,如今斷崖式的下跌。JAVA就像一列火車,行駛很是穩定。
JAVA程序員分爲:初、中、高、架構、總監,5個修煉檔次。足夠我等普通屌絲奮鬥終生了。
按年限劃分的話,大致是這樣:
1). 初級程序員工做年限:1-3年月薪:4K-15K
2). 中級程序員工做年限:3-5年月薪:10K-20K
3). 高級程序員工做年限:5年以上月薪:15K-30K
4). 架構級別工做年限:5年以上月薪:25K-40K(年薪百萬也大有人在)
5). 總監工做年限:5年以上月薪:40K以上(年薪百萬也大有人在)
怎麼學習JAVA?
JAVA編程的學習分爲:入門、初級、中級、高級、架構幾個階段。
入門
入門所須要的時間較短,幾小時、幾天便可。重在造成良好的編程習慣、引起足夠的興趣。大學編程課最失敗的地方就是一開始就打消了不少人編程的興趣。 編程是最容易引起成就感的事情,徹底能夠和遊戲同樣有意思。
入門你們須要掌握的JAVA知識有:JDK的安裝和配置、eclipse開發環境的使用、變量、控制語句等基本知識的掌握。
初級
JAVA的初級咱們須要學習JAVASE基本知識,這是咱們之後工做的基礎。在這個階段,學會使用API、理解面向對象將是初學者首要面對的問題。
JAVASE中須要熟練掌握的有:面向對象、異常、經常使用類、數組、容器、IO流、多線程、網絡編程。 這些都須要你們熟練掌握,都是之後工做必須用到的內容。
JAVASE中惟一不會在工做中使用的就是GUI編程,具體就是:AWT/SWING。桌面軟件開發是JAVA語言的短腿,不多有企業使用。固然,若是時間充裕,學習一下也無妨,畢竟能夠經過SWING作出漂亮的界面。並且,技術都是相通的,對於學習其餘GUI技術也有幫助。
中級
中級面臨的學習任務比較龐雜,不僅學習JAVA, 還須要學習其餘技術。一般,中級學完就能夠參與企業項目的開發了,能夠本身作出漂漂亮亮的項目。
咱們須要學習三塊知識:
1. SQL查詢和1-2種數據庫(一般是:oracle、mysql)
2. 網頁技術:HTML五、CSS、JavaScript、Jquery
3. 服務器編程JAVAEE:Servlet、JSP、數據庫操做技術:JDBC、Tomcat服務器
中級是很是重要的階段,跨過這個門檻,理論上你就具有了開發項目的能力啦!中級階段的學習,常常成爲不少初學者的攔路虎,畢竟內容太多,一個問題就可能讓你鬱悶一天。 最終,檢驗你中級是否過關的標準就是「能不能獨立完成一個企業項目的模塊開發」。
記住:「實戰是檢驗實力的惟一標準」,「沒有實戰的學習,是假學習;沒有實戰檢驗的能力,是假能力」。
高級
高級階段是大量框架的學習和使用,畢竟這是在企業中實際使用的。目前須要掌握的有:Spring、Spring MVC、Mybatis、Struts二、Hibernate、Maven、shiro、lucene等技術。
這些技術的學習必定要結合具體的項目,否則你的學習會有種無力感。結合時下流行的SSM架構,作幾個項目,天然就能把Spring、Spring MVC、Mybatis框架使用熟悉。不作項目的學習是「低效的學習」。
高級階段表面看來是一些框架技術的學習和使用。對於「有潛力的高手來講」,實際上你會發現這只是「JAVA基礎的昇華」而已。只是JAVA+算法+設計模式的組合而已,咱們深刻這些框架底層架構就會發現這一點。 當你的學習能意識到這一點的時候,已經達到了很是高的高度。這就是武俠小說裏面說的「從無招到有招,再從有招到無招」。
架構
做爲JAVA程序員學到高級課程已經徹底具有初中級程序員的基本素質,和真正有3年開發經驗比的人,你缺的就是經驗,技術的廣度已經足夠。
若是想從程序員更進一步,那就是架構師和總監。這個時候,你必需要有深厚的技術功底、豐富的項目經驗、豐富的行業經驗。
從技術上來講,你須要深刻學習以下技術:java
併發編程、ActiveMQ技術、ZooKeeper、RabbitMq技術、Kafka技術、MongoDB、高性能、高併發、Mysql、Netty通訊框架、JVM虛擬機底層優化、Memcached、Redis、Nosql、數據庫底層優化、RocketMQ、Dubbo分佈式服務、Storm、Kafka、Nginx、FastDFS等。
(若是看花眼了,就收藏一下,這是你幾年須要學的內容,不是幾天。本文只負責指路,推薦你們能夠搜索一下黑馬程序員,免費的java學歷路徑引導以及配套視頻教程和資料)
從項目經驗來講,通常須要3個大型項目經驗。這種經驗的累積不是一天兩天的,羅馬不是一天建成的。保持足夠的耐心,堅持就能達成。
若是,你能走到架構階段。基本上算進入JAVA程序員的高端行列。此時的收入應該在50萬-100萬之間(注意:這是北上廣深杭一線城市標準,二線乘以係數0.6,三線乘以係數0.5)。 固然,對於我等普通屌絲來講,也算是完成了逆襲了,過個有房有車的小康生活應該是綽綽有餘。
若是,你的情商、市場能力、管理能力到位,此時能夠嘗試創業當老闆了(若是不到位,千萬不要嘗試,否則會死的很難看)。紮實的技術實力、豐富的行業經驗,應能讓你實現騰飛。個人不少學生創業成功,年如數百萬的N多,時代老是年輕人的時代!mysql