如果作為興趣來學編程,什么人都適合。畢竟,現(xiàn)在小學生都開始學習編程了。如果要作為職業(yè)來說,你到底適合不適合確實是個問題。我教過的學員里面從初中生到博士生、甚至50多歲的企業(yè)高管都有,懷著不同的目的來學習JAVA。 我記得教過一個北大的數(shù)學碩士,人家過來學習不為職業(yè)就為科研,希望通過培訓節(jié)省時間,一個暑假就迅速突破了編程這個坎。
這里,我們只探討作為職業(yè)適合不適合你?這里有六個現(xiàn)實的硬性指標,可以作為參考。
1. 興趣度
興趣是基礎。如果你完全沒有編碼的興趣,敲鍵盤就頭大。那就完全屏蔽掉程序員這條路,不要強求,天無絕人之路,另一條路也許更適合你。作為程序員的基礎,至少不討厭敲代碼的感覺,這是最基本的。 越喜歡敲代碼這種感覺,你以后的路走的越順。
很多人說:“xxx有天賦”。我想,這里的天賦換成“興趣”也許就是事情的真相。人家有興趣做這個事,做著開心,自然就會花越多時間研究,成長自然就越快;成長越快,比起常人自然就有“天賦”。
2. 有沒有更好的其他發(fā)展路徑
既然為職業(yè)發(fā)展而來,必然要現(xiàn)實一些。如果家里有很好的背景、父輩有很好的資源。強烈建議,依托父輩資源發(fā)展也許是最優(yōu)的路徑。寫程序可以作為業(yè)余愛好,而不要作為主業(yè)。
當然,如果是我等普通屌絲群眾。學IT,仍然是逆襲最好的途徑。畢竟,這是一個憑技術、憑本事吃飯的職業(yè)。技術能力到位年薪百萬的大有人在。
3. 邏輯思維能力
這是作為程序員最基本的要求。邏輯思維能力差的人,完全不適合學編程。當然,對于一般理工科的學生來說邏輯思維不存在問題。對于文藝青年,喜歡跟著感覺走跳躍思維的人,一般不適合程序員這一條路。
4. 英語
對于初級程序員英語要求不高,事實上,高中英語水平足矣。如果想往頂尖技術發(fā)展,英語能力有必要提高。畢竟,很多技術源自美國,能熟讀原汁原味的英文,將會讓你如虎添翼。
個人建議是:英語高中以上夠混初中級程序員階段。想往頂尖混,至少要英語四六級以上。
如果您英語不好??梢匀ド袑W堂官網(wǎng)下載1800個常用的JAVA開發(fā)英文詞匯。這是尚學堂學員孫波整理匯總,秉持“見一個背一個”的原則,整理4個月完成。
5. 數(shù)學
被數(shù)學折磨的我們,學編程有個好消息就是“數(shù)學并不重要,除非搞科研”。對于企業(yè)里面開發(fā)軟件,數(shù)學知識初中水平足矣。
如果要搞人工智能、大數(shù)據(jù)等開發(fā),一些高等數(shù)學、線性代數(shù)、概率等知識還是有很多用處的。當然,等你用到時再翻書也來得及。
6. 職業(yè)發(fā)展穩(wěn)定
JAVA歷經(jīng)十多年,都是穩(wěn)居第一位,可見的未來也是非常穩(wěn)定的開發(fā)語言。JAVA行業(yè)的一大特點就是穩(wěn)定,發(fā)展空間大。
作為JAVA程序員工資從:4000月薪,10萬月薪都有。不像前幾年火爆的IOS,火了3年,現(xiàn)在斷崖式的下跌。JAVA就像一列火車,行駛非常穩(wěn)定。
JAVA程序員分為:初、中、高、架構(gòu)、總監(jiān),5個修煉檔次。足夠我等普通屌絲奮斗終生了。
按年限劃分的話,大體是這樣:
1). 初級程序員工作年限:1-3年月薪:4K-15K
2). 中級程序員工作年限:3-5年月薪:10K-20K
3). 高級程序員工作年限:5年以上月薪:15K-30K
4). 架構(gòu)級別工作年限:5年以上月薪:25K-40K
5). 總監(jiān)工作年限:5年以上月薪:40K以上(年薪百萬也大有人在)
【注】:上述年限標準只是參考??偸怯行吧诩墑e”的人物,很快就能達到別人很多年的高度。去年,我們一個學生從尚學堂學完JAVA和大數(shù)據(jù)雙專業(yè)就是50萬年薪(之前有兩年測試工作經(jīng)驗),立刻跨入“總監(jiān)”級別收入。也有比較厲害的應屆生,一畢業(yè)就年薪20萬以上。當然,也有很多“懶豬型”的,干3年、5年,水平不見長,薪水不見長的。還是那句話,“師父引進門,修行靠個人”。
怎么學習JAVA?
JAVA編程的學習分為:入門、初級、中級、高級、架構(gòu)幾個階段。
入門
入門所需要的時間較短,幾小時、幾天即可。重在形成良好的編程習慣、引發(fā)足夠的興趣。大學編程課最失敗的地方就是一開始就打消了很多人編程的興趣。 編程是最容易引發(fā)成就感的事情,完全可以和游戲一樣有意思。
入門大家需要掌握的JAVA知識有:JDK的安裝和配置、eclipse開發(fā)環(huán)境的使用、變量、控制語句等基本知識的掌握。
初級
JAVA的初級我們需要學習JAVASE基本知識,這是我們以后工作的基礎。在這個階段,學會使用API、理解面向?qū)ο髮⑹浅鯇W者首要面對的問題。
JAVASE中需要熟練掌握的有:面向?qū)ο?、異常、常用類、?shù)組、容器、IO流、多線程、網(wǎng)絡編程。 這些都需要大家熟練掌握,都是以后工作必須用到的內(nèi)容。
JAVASE中唯一不會在工作中使用的就是GUI編程,具體就是:AWT/SWING。桌面軟件開發(fā)是JAVA語言的短腿,很少有企業(yè)使用。當然,如果時間充裕,學習一下也無妨,畢竟可以通過SWING做出漂亮的界面。而且,技術都是相通的(天下文章一大抄,呵呵),對于學習其他GUI技術也有幫助。
中級
中級面臨的學習任務比較龐雜,不只學習JAVA, 還需要學習其他技術。通常,中級學完就可以參與企業(yè)項目的開發(fā)了,可以自己做出漂漂亮亮的項目。
我們需要學習三塊知識:
1. SQL查詢和1-2種數(shù)據(jù)庫(通常是:oracle、mysql)
2. 網(wǎng)頁技術:HTML5、CSS、JavaScript、Jquery
3. 服務器編程JAVAEE:Servlet、JSP、數(shù)據(jù)庫操作技術:JDBC、Tomcat服務器
中級是非常重要的階段,跨過這個門檻,理論上你就具備了開發(fā)項目的能力啦!中級階段的學習,經(jīng)常成為很多初學者的攔路虎,畢竟內(nèi)容太多,一個問題就可能讓你郁悶一天。 最終,檢驗你中級是否過關的標準就是“能不能獨立完成一個企業(yè)項目的模塊開發(fā)”。
記?。骸皩崙?zhàn)是檢驗實力的唯一標準”,“沒有實戰(zhàn)的學習,是假學習;沒有實戰(zhàn)檢驗的能力,是假能力”。
高級
高級階段是大量框架的學習和使用,畢竟這是在企業(yè)中實際使用的。目前需要掌握的有:Spring、Spring MVC、Mybatis、Struts2、Hibernate、Maven、shiro、lucene等技術。
這些技術的學習一定要結(jié)合具體的項目,不然你的學習會有種無力感。結(jié)合時下流行的SSM架構(gòu),做幾個項目,自然就能把Spring、Spring MVC、Mybatis框架使用熟悉。不做項目的學習是“低效的學習”。
我特意整理了一下,里面的技術不是靠幾句話就能講清楚,所以干脆找朋友錄制了一些視頻,很多問題其實答案很簡單,但是背后的思考和邏輯不簡單,要做到知其然還要知其所以然。如果想學習Java工程化、高性能及分布式、深入淺出。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析的朋友可以加我新建的Java群:650385180,群里有阿里大牛直播講解技術,以及Java大型互聯(lián)網(wǎng)技術的視頻免費分享給大家。
高級階段表面看來是一些框架技術的學習和使用。對于“有潛力的高手來說”,實際上你會發(fā)現(xiàn)這只是“JAVA基礎的升華”而已。只是JAVA+算法+設計模式的組合而已,我們深入這些框架底層架構(gòu)就會發(fā)現(xiàn)這一點。 當你的學習能意識到這一點的時候,已經(jīng)達到了非常高的高度。這就是武俠小說里面說的“從無招到有招,再從有招到無招”。
架構(gòu)
作為JAVA程序員學到高級課程已經(jīng)完全具備初中級程序員的基本素質(zhì),和真正有3年開發(fā)經(jīng)驗比的人,你缺的就是經(jīng)驗,技術的廣度已經(jīng)足夠。
如果想從程序員更進一步,那就是架構(gòu)師和總監(jiān)。這個時候,你必須要有深厚的技術功底、豐富的項目經(jīng)驗、豐富的行業(yè)經(jīng)驗。
從技術上來說,你需要深入學習如下技術:
并發(fā)編程、ActiveMQ技術、ZooKeeper、Netty通信框架、JVM虛擬機底層優(yōu)化、Redis、Nosql、數(shù)據(jù)庫底層優(yōu)化、RocketMQ、Dubbo分布式服務、Storm、Kafka、Nginx、FastDFS等。
為了讓學習變得輕松、高效,今天給大家免費分享一套Java入門教學資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要入門的資料歡迎加入學習交流群:9285,05736