你真的適合學(xué)習(xí)JAVA開發(fā)嗎?
——獻(xiàn)給那些想通過JAVA改變命運(yùn)的人
本文是由資深程序猿、資深講師高淇撰寫,詳細(xì)講解了:JAVA行業(yè)的前途、什么人適合學(xué)JAVA、怎么學(xué)習(xí)JAVA、JAVA培訓(xùn)適合哪些人。 系十余年工作心得總結(jié),希望對(duì)后來的初學(xué)者、JAVA程序員有一定的幫助。
JAVA為什么有前途?
過去的十多年,JAVA基本每年都是全世界使用人數(shù)第一的語言。全世界數(shù)百萬的IT企業(yè)構(gòu)建了龐大的JAVA生態(tài)圈,大量的軟件基于JAVA開發(fā)。 JAVA也被譽(yù)為“計(jì)算機(jī)界的英語”。 JAVA的應(yīng)用范圍涉及所有行業(yè)、絕大多數(shù)IT企業(yè),形成了龐大的生態(tài)圈。如下是智聯(lián)招聘在一個(gè)月內(nèi)、北京地區(qū)的JAVA人才需求量:
當(dāng)月需求量25121個(gè)職位,我們以一個(gè)職位招聘3人,總量就是:25121*3=75363人。這還只是光北京地區(qū)??梢韵胂笕?、全國招聘的數(shù)量,以及由此形成的生態(tài)圈有多么龐大。
這個(gè)生態(tài)圈的影響力越來越大,需要的人才也越來越多。越多人會(huì)JAVA,就有越多軟件使用JAVA編寫,反過來促進(jìn)需要更多的JAVA人才。 這就是著名的“馬太效應(yīng)”,即“強(qiáng)者越強(qiáng),弱者越弱”。
JAVA目前在:企業(yè)級(jí)軟件開發(fā)、安卓開發(fā)、大數(shù)據(jù)、云計(jì)算等方方面面都是主流的編程語言。跟著主流走,肯定錯(cuò)不了。
什么人適合學(xué)習(xí)JAVA?——這里有六個(gè)指標(biāo)供你參考!
如果作為興趣來學(xué)編程,什么人都適合。畢竟,現(xiàn)在小學(xué)生都開始學(xué)習(xí)編程了。如果要作為職業(yè)來說,你到底適合不適合確實(shí)是個(gè)問題。我教過的學(xué)員里面從初中生到博士生、甚至50多歲的企業(yè)高管都有,懷著不同的目的來學(xué)習(xí)JAVA。 我記得教過一個(gè)北大的數(shù)學(xué)碩士,人家過來學(xué)習(xí)不為職業(yè)就為科研,希望通過培訓(xùn)節(jié)省時(shí)間,一個(gè)暑假就迅速突破了編程這個(gè)坎。
01興趣度
興趣是基礎(chǔ)。如果你完全沒有編碼的興趣,敲鍵盤就頭大。那就完全屏蔽掉程序員這條路,不要強(qiáng)求,天無絕人之路,另一條路也許更適合你。作為程序員的基礎(chǔ),至少不討厭敲代碼的感覺,這是最基本的。 越喜歡敲代碼這種感覺,你以后的路走的越順。
很多人說:“xxx有天賦”。我想,這里的天賦換成“興趣”也許就是事情的真相。人家有興趣做這個(gè)事,做著開心,自然就會(huì)花越多時(shí)間研究,成長自然就越快;成長越快,比起常人自然就有“天賦”。
02有沒有更好的其他發(fā)展路徑
既然為職業(yè)發(fā)展而來,必然要現(xiàn)實(shí)一些。如果家里有很好的背景、父輩有很好的資源。強(qiáng)烈建議,依托父輩資源發(fā)展也許是最優(yōu)的路徑。寫程序可以作為業(yè)余愛好,而不要作為主業(yè)。
當(dāng)然,如果是我等普通屌絲群眾。學(xué)IT,仍然是逆襲最好的途徑。畢竟,這是一個(gè)憑技術(shù)、憑本事吃飯的職業(yè)。技術(shù)能力到位年薪百萬的大有人在。
03邏輯思維能力
這是作為程序員最基本的要求。邏輯思維能力差的人,完全不適合學(xué)編程。當(dāng)然,對(duì)于一般理工科的學(xué)生來說,邏輯思維不存在問題。對(duì)于文藝青年,喜歡跟著感覺走跳躍思維的人,一般不適合程序員這一條路。
04英語
對(duì)于初級(jí)程序員英語要求不高,事實(shí)上,高中英語水平足矣。如果想往頂尖技術(shù)發(fā)展,英語能力有必要提高。畢竟,很多技術(shù)源自美國,能熟讀原汁原味的英文,將會(huì)讓你如虎添翼。
個(gè)人建議是:英語高中以上夠混初中級(jí)程序員階段。想往頂尖混,至少要英語四六級(jí)以上。如果您英語不好。可以去尚學(xué)堂官網(wǎng)下載1800個(gè)常用的JAVA開發(fā)英文詞匯。這是尚學(xué)堂學(xué)員孫波整理匯總,秉持“見一個(gè)背一個(gè)”的原則,整理4個(gè)月完成。
05數(shù)學(xué)
被數(shù)學(xué)折磨的我們,學(xué)編程有個(gè)好消息就是“數(shù)學(xué)并不重要,除非搞科研”。對(duì)于企業(yè)里面開發(fā)軟件,數(shù)學(xué)知識(shí)初中水平足矣。
如果要搞人工智能、大數(shù)據(jù)等開發(fā),一些高等數(shù)學(xué)、線性代數(shù)、概率等知識(shí)還是有很多用處的。當(dāng)然,等你用到時(shí)再翻書也來得及。
06職業(yè)發(fā)展穩(wěn)定
JAVA歷經(jīng)十多年,都是穩(wěn)居第一位,可見的未來也是非常穩(wěn)定的開發(fā)語言。JAVA行業(yè)的一大特點(diǎn)就是穩(wěn)定,發(fā)展空間大。
作為JAVA程序員工資從:4000月薪,10萬月薪都有。不像前幾年火爆的IOS,火了3年,現(xiàn)在斷崖式的下跌。JAVA就像一列火車,行駛非常穩(wěn)定。
JAVA程序員分為:『初、中、高、架構(gòu)、總監(jiān)』5個(gè)修煉檔次
足夠我等普通屌絲奮斗終生了!
【注】:上述年限標(biāo)準(zhǔn)只是參考??偸怯行吧诩?jí)別”的人物,很快就能達(dá)到別人很多年的高度。
怎么學(xué)習(xí)JAVA?——JAVA其實(shí)沒你想象的那么難!
入門所需要的時(shí)間較短,幾小時(shí)、幾天即可。重在形成良好的編程習(xí)慣、引發(fā)足夠的興趣。大學(xué)編程課最失敗的地方就是一開始就打消了很多人編程的興趣。 編程是最容易引發(fā)成就感的事情,完全可以和游戲一樣有意思。
入門大家需要掌握的JAVA知識(shí)有:JDK的安裝和配置、eclipse開發(fā)環(huán)境的使用、變量、控制語句等基本知識(shí)的掌握。
入門大家可以學(xué)習(xí)一下本人錄制的一小套視頻(未完,最近太忙了),不過,作為入門是相當(dāng)適合的。
https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html
截圖如下:
興趣的朋友,可以進(jìn)入速學(xué)堂學(xué)習(xí)這個(gè)課程。只需要看完第一章即可,一共約1小時(shí)的課程。大家就能完成一個(gè)臺(tái)球小游戲的制作。目前,需要大家注冊(cè)速學(xué)堂,只需打賞1元錢就能觀看這一套視頻。只需1小時(shí),入門足夠了。
JAVA的初級(jí)我們需要學(xué)習(xí)JAVASE基本知識(shí),這是我們以后工作的基礎(chǔ)。在這個(gè)階段,學(xué)會(huì)使用API、理解面向?qū)ο髮⑹浅鯇W(xué)者首要面對(duì)的問題。
JAVASE中需要熟練掌握的有:面向?qū)ο蟆惓?、常用類、?shù)組、容器、IO流、多線程、網(wǎng)絡(luò)編程。 這些都需要大家熟練掌握,都是以后工作必須用到的內(nèi)容。
JAVASE中唯一不會(huì)在工作中使用的就是GUI編程,具體就是:AWT/SWING。桌面軟件開發(fā)是JAVA語言的短腿,很少有企業(yè)使用。當(dāng)然,如果時(shí)間充裕,學(xué)習(xí)一下也無妨,畢竟可以通過SWING做出漂亮的界面。而且,技術(shù)都是相通的(天下文章一大抄,呵呵),對(duì)于學(xué)習(xí)其他GUI技術(shù)也有幫助。
如果需要學(xué)習(xí)資料,推薦大家學(xué)習(xí)高淇出的《JAVA300集視頻教程》。對(duì)于大家來說,學(xué)習(xí)前200集足矣。后100集的內(nèi)容涉及較深,可以作為參考。
中級(jí)面臨的學(xué)習(xí)任務(wù)比較龐雜,不只學(xué)習(xí)JAVA, 還需要學(xué)習(xí)其他技術(shù)。通常,中級(jí)學(xué)完就可以參與企業(yè)項(xiàng)目的開發(fā)了,可以自己做出漂漂亮亮的項(xiàng)目。
我們需要學(xué)習(xí)三塊知識(shí):
1.SQL查詢和1-2種數(shù)據(jù)庫(通常是:oracle、mysql)
2.網(wǎng)頁技術(shù):HTML5、CSS、JavaScript、Jquery
3.服務(wù)器編程JAVAEE:Servlet、JSP、數(shù)據(jù)庫操作技術(shù):JDBC、Tomcat服務(wù)器
中級(jí)是非常重要的階段,跨過這個(gè)門檻,理論上你就具備了開發(fā)項(xiàng)目的能力啦!中級(jí)階段的學(xué)習(xí),經(jīng)常成為很多初學(xué)者的攔路虎,畢竟內(nèi)容太多,一個(gè)問題就可能讓你郁悶一天。 最終,檢驗(yàn)?zāi)阒屑?jí)是否過關(guān)的標(biāo)準(zhǔn)就是“能不能獨(dú)立完成一個(gè)企業(yè)項(xiàng)目的模塊開發(fā)”。
記?。骸皩?shí)戰(zhàn)是檢驗(yàn)實(shí)力的唯一標(biāo)準(zhǔn)”,“沒有實(shí)戰(zhàn)的學(xué)習(xí),是假學(xué)習(xí);沒有實(shí)戰(zhàn)檢驗(yàn)的能力,是假能力”。
高級(jí)階段是大量框架的學(xué)習(xí)和使用,畢竟這是在企業(yè)中實(shí)際使用的。目前需要掌握的有:Spring、Spring MVC、Mybatis、Struts2、Hibernate、Maven、shiro、lucene等技術(shù)。
這些技術(shù)的學(xué)習(xí)一定要結(jié)合具體的項(xiàng)目,不然你的學(xué)習(xí)會(huì)有種無力感。結(jié)合時(shí)下流行的SSM架構(gòu),做幾個(gè)項(xiàng)目,自然就能把Spring、Spring MVC、Mybatis框架使用熟悉。不做項(xiàng)目的學(xué)習(xí)是“低效的學(xué)習(xí)”。
高級(jí)階段表面看來是一些框架技術(shù)的學(xué)習(xí)和使用。對(duì)于“有潛力的高手來說”,實(shí)際上你會(huì)發(fā)現(xiàn)這只是“JAVA基礎(chǔ)的升華”而已。只是JAVA+算法+設(shè)計(jì)模式的組合而已,我們深入這些框架底層架構(gòu)就會(huì)發(fā)現(xiàn)這一點(diǎn)。 當(dāng)你的學(xué)習(xí)能意識(shí)到這一點(diǎn)的時(shí)候,已經(jīng)達(dá)到了非常高的高度。這就是武俠小說里面說的“從無招到有招,再從有招到無招”。
作為JAVA程序員學(xué)到高級(jí)課程已經(jīng)完全具備初中級(jí)程序員的基本素質(zhì),和真正有3年開發(fā)經(jīng)驗(yàn)比的人,你缺的就是經(jīng)驗(yàn),技術(shù)的廣度已經(jīng)足夠。
如果想從程序員更進(jìn)一步,那就是架構(gòu)師和總監(jiān)。這個(gè)時(shí)候,你必須要有深厚的技術(shù)功底、豐富的項(xiàng)目經(jīng)驗(yàn)、豐富的行業(yè)經(jīng)驗(yàn)。
從技術(shù)上來說,你需要深入學(xué)習(xí)如下技術(shù):
并發(fā)編程、ActiveMQ技術(shù)、ZooKeeper、Netty通信框架、JVM虛擬機(jī)底層優(yōu)化、Redis、Nosql、數(shù)據(jù)庫底層優(yōu)化、RocketMQ、Dubbo分布式服務(wù)、Storm、Kafka、Nginx、FastDFS等。
(如果看花眼了,就收藏一下,這是你幾年需要學(xué)的內(nèi)容,不是幾天。本文只負(fù)責(zé)指路)
從項(xiàng)目經(jīng)驗(yàn)來說,一般需要3個(gè)大型項(xiàng)目經(jīng)驗(yàn)。這種經(jīng)驗(yàn)的累積不是一天兩天的,羅馬不是一天建成的。保持足夠的耐心,堅(jiān)持就能達(dá)成。
如果,你能走到架構(gòu)階段?;旧纤氵M(jìn)入JAVA程序員的高端行列。 當(dāng)然,對(duì)于我等普通屌絲來說,也算是完成了逆襲了,過個(gè)有房有車的小康生活應(yīng)該是綽綽有余。
如果,你的情商、市場能力、管理能力到位,此時(shí)可以嘗試創(chuàng)業(yè)當(dāng)老板了(如果不到位,千萬不要嘗試,不然會(huì)死的很難看)扎實(shí)的技術(shù)實(shí)力、豐富的行業(yè)經(jīng)驗(yàn),應(yīng)能讓你實(shí)現(xiàn)騰飛。
JAVA培訓(xùn)適合你嗎?——踏上學(xué)JAVA的快車道可能是最佳選擇!
培訓(xùn)重要嗎?對(duì)于有的人很重要,對(duì)于有的人完全可以無視。要理解這個(gè)問題,我們首先要明白培訓(xùn)的核心優(yōu)勢(shì)是什么?
其實(shí)就兩點(diǎn):
節(jié)省時(shí)間、有老師帶、有學(xué)習(xí)氣氛,快速提高
“節(jié)省時(shí)間”是很多人考慮是否培訓(xùn)的首要因素。畢竟,5個(gè)月脫產(chǎn)、沒日沒夜的學(xué)習(xí),可以抵得上松松散散學(xué)習(xí)兩年的效果。 把節(jié)省下的1年半去工作賺錢,其實(shí)更劃算。 但是,對(duì)于時(shí)間不是特別敏感的人群,培訓(xùn)不會(huì)特別重要。比如:大一、大二的學(xué)生。
形成圈子
“形成圈子”是很多優(yōu)秀的人比較在意的。清華的學(xué)生為什么厲害?除了自身厲害,很大程度也因?yàn)橥瑢W(xué)厲害、老師厲害,他所處的圈子厲害。當(dāng)然,清華的學(xué)生不會(huì)來參加JAVA培訓(xùn),他的圈子本身就足夠強(qiáng)大,不太需要通過JAVA培訓(xùn)形成圈子。但是,對(duì)于普通大學(xué)生來說,參加JAVA培訓(xùn),你在5個(gè)月時(shí)間形成的同學(xué)資源也是非常重要的發(fā)展資源。這些同學(xué)畢業(yè)后,都是一個(gè)行業(yè),保不齊有什么機(jī)會(huì)互相拉扯一把。
如果你有“三強(qiáng)”:自學(xué)能力強(qiáng)(不需要老師指導(dǎo))、自控能力強(qiáng)(不需要學(xué)習(xí)氣氛自己也能控制)、本身周邊圈子較強(qiáng)(比較好的大學(xué)),那么完全不需要參加培訓(xùn),找?guī)讉€(gè)好伙伴自學(xué)能起到一樣的效果。 如果你沒有這些條件,參加培訓(xùn)將會(huì)給你帶來非常好的效果。
【最后】為尚學(xué)堂做一點(diǎn)小小的廣告,望讀者朋友擔(dān)待
尚學(xué)堂秉持的理念是“實(shí)戰(zhàn)化教學(xué)”。我們相信“實(shí)戰(zhàn)最有效”的課程設(shè)計(jì)理念,讓我們的學(xué)員在培訓(xùn)過程中接觸大量的實(shí)戰(zhàn)項(xiàng)目案例。通過培訓(xùn)也能積累真正的項(xiàng)目經(jīng)驗(yàn),而不是簡單的“三腳貓功夫”。雖然,幾乎所有機(jī)構(gòu)都有項(xiàng)目案例教學(xué)。我們的不同在于,我們把他當(dāng)做核心、當(dāng)做最重要的事情落實(shí)。我們鼓勵(lì)“實(shí)戰(zhàn)”,也希望“實(shí)戰(zhàn)”兩個(gè)字能進(jìn)入學(xué)生的心里。
記得有個(gè)學(xué)生問我:“老高,我喜歡一個(gè)女孩。但我不會(huì)追女孩,怎么辦?”。我說:“實(shí)戰(zhàn)!實(shí)戰(zhàn)追一次,一星期就會(huì)了”。 這也是為什么我們的學(xué)生進(jìn)班不到一個(gè)月就能開始寫項(xiàng)目的原因。這也是為什么我們的學(xué)生可以進(jìn)入百度、阿里、京東的原因。