從大學(xué)到現(xiàn)在扒磁,我使用Java已經(jīng)將近20年庆揪,日常也帶實習(xí)生,還在公司內(nèi)部做training妨托,所以可以分享下我的經(jīng)驗缸榛,希望對你有用。
因為是在工作中培訓(xùn)兰伤,就必然有兩個約束:實用内颗、時間緊,因此就不能像大學(xué)那樣敦腔,把所有的知識點都面面俱到的講到均澳。而只能挑基礎(chǔ)的,實用的,難理解的講找前。至于其他邊邊角角的知識糟袁,就一筆帶過。一則沒有時間躺盛,二則不常用项戴,再則既使講了,學(xué)生印象也不深刻颗品】铣撸總之一句話:“好鋼用在刀刃上”。
下面躯枢,就根據(jù)我的實踐则吟,具體談下學(xué)習(xí)過程:
1.基礎(chǔ)知識
我學(xué)習(xí)java的時候,先是通讀了《Java編程思想》锄蹂,然后是《Java核心技術(shù)》氓仲。當(dāng)時這兩本書還不像現(xiàn)在這么厚,而剛才我把案頭的《Java核心技術(shù)》第9版翻了翻得糜,上下兩冊已經(jīng)1700多頁了敬扛,可想而知,如果要把它通讀一遍朝抖,且不說把所有的代碼都調(diào)通啥箭,就是當(dāng)小說讀,估計也需要些時間治宣。
但我現(xiàn)在教學(xué)依然首推《Java核心技術(shù)》急侥,主要是體系完整,實例多侮邀,可操作性強(qiáng)坏怪。但對初學(xué)者,我一般是只講前6章绊茧,也就是下面的內(nèi)容:
Java程序設(shè)計概述
Java程序設(shè)計環(huán)境
Java的基礎(chǔ)程序設(shè)計結(jié)構(gòu)
對象與類
繼承
接口與內(nèi)部類
就《Java核心技術(shù)》第9版來說铝宵,也就是到250頁為止,加把勁华畏,1個月拿下完全沒問題鹏秋。
因為你是自學(xué),所以建議你一定要把其中的代碼都調(diào)通亡笑,課后的作業(yè)盡量去做拼岳。除此之外,還有兩點特別重要:
#.學(xué)習(xí)筆記
因為你是自學(xué)况芒,不像在企業(yè)中學(xué)了就能夠?qū)嵺`惜纸,印象自然特別深刻叶撒。而自學(xué)因為沒有實踐的及時反饋,所以記筆記就顯得特別重要耐版。因為記筆記就像寫作一樣祠够,是整理思路的絕佳方法。同時學(xué)習(xí)筆記也是你以后開發(fā)粪牲,面試的絕好資料古瓤。
學(xué)習(xí)編程,人跟人是不一樣的腺阳,別人覺得難理解的東西落君,對你卻不一定;而你覺得難理解的東西亭引,別人可能又會覺得特簡單绎速。而學(xué)習(xí)筆記就是自己專有的“難點手冊”,有點像高考時的“錯題本”焙蚓,以后無論是在面試前纹冤,還是在日常工作中,隨時都可以翻出來看看购公,自是獲益匪淺萌京。
#.分門別類保存demo
學(xué)習(xí)筆記是很好的文字資料,但編程界有句話說的特別好宏浩,所謂“no code, no text”知残,意思就是說:千言萬語都沒有一段代碼來的實在。
以我的經(jīng)驗比庄,在你在學(xué)習(xí)的過程中求妹,就某個知識點,無論當(dāng)時理解的多透徹印蔗,調(diào)試的多棒扒最,只要時間一長丑勤,等到了實用的時候华嘹,肯定會碰到各種各樣的問題,一些看似簡單的東西法竞,此時死活就是調(diào)不通耙厚,正所謂人到事中迷。這個時候岔霸,如果你手頭恰有運(yùn)行良好的demo薛躬,打開參考一下(甚至直接拷貝過來),問題自然迎刃而解呆细。而且因為這些demo都是你親手調(diào)試出來型宝,印象自然特別深刻,一碰到問題,在腦子中自會立刻涌現(xiàn)趴酣。
所以說梨树,在學(xué)習(xí)的過程,一定要善待你調(diào)通的demo岖寞,千萬不要用完了就扔抡四,等后來碰到困難,想要用時卻找不到仗谆,追愧莫及指巡。正確的做法就是把所有調(diào)通的demo,分門別類的保存起來隶垮,到時候查起來自是得心應(yīng)手藻雪。
人都說“書到用時方恨少”,其實代碼也是這樣岁疼,所謂“demo用時方恨少”阔涉。
2.Spring
目前在Java EE開發(fā)中,Spring已經(jīng)成為和Java核心庫一樣的基礎(chǔ)設(shè)施捷绒,所以說如果想成為一個合格的Java程序員瑰排,Spring肯定繞不開。另一方面暖侨,如果掌握了Spring體系椭住,Java基本上就算入門了,就有能力進(jìn)行一些實用級的開發(fā)了字逗。
但Spring本身也是日漸復(fù)雜京郑,衍生項目越來越多,但最最核心的概念依舊是IOC和AOP葫掉,掌握了這兩個概念些举,再把Spring MVC學(xué)會,再學(xué)習(xí)其他的衍生項目就會平滑很多俭厚。
同時户魏,因為Spring本身就應(yīng)用了許多優(yōu)雅的設(shè)計理念,所以學(xué)習(xí)Spring的過程挪挤,也是加強(qiáng)Java基礎(chǔ)知識學(xué)習(xí)的過程叼丑。因此等你掌握了Spring,原來很多你理解不透徹的Java特性扛门,此時就會恍然大悟鸠信,包括接口、抽象類等论寨。
我學(xué)習(xí)Spring星立,讀的第一本書是《Spring實戰(zhàn)》爽茴,坦率的說,書很一般绰垂,但市面上比它好的書闹啦,我卻沒有遇到過。還有一本《Spring源碼深度解析》也不錯辕坝,對Spring的設(shè)計理念講的尤其透徹窍奋,雖然整本書讀起來有些艱澀,但前幾章卻生動有趣酱畅,也是整本書的精華琳袄。所以建議你在學(xué)習(xí)Spring之前,先把該書的前幾章通讀一下纺酸,然后再回過頭來學(xué)習(xí)《Spring實戰(zhàn)》會順利很多窖逗。
以我經(jīng)驗,要學(xué)透Spring餐蔬,終極的方法還是閱讀源碼(我當(dāng)時就是這么干的)碎紊,待把Spring的核心源碼通讀了,人就真的自由了(所謂無真相不自由)樊诺,不僅是對Spring仗考,而是對整個Java體系。以后再遇到其他框架词爬,大概一眼就能看出其中的脈絡(luò)秃嗜,所謂到了“看山不是山”的境界。但這都是后話顿膨,可以作為以后你努力的方向锅锨。
和學(xué)習(xí)Java基礎(chǔ)知識一樣,學(xué)習(xí)Spring也一定要記筆記恋沃,一定要分門別類保存demo必搞。
老實說,Spring對初學(xué)者不算簡單囊咏,因此最好能有個好老師帶一下恕洲,不用太長時間,2個課時即可匆笤,然后就是在你遇到大的困難時研侣,能及時的點撥下谱邪。
以我的經(jīng)驗炮捧,要初步掌握Spring,大概需要1到1個半月的時間惦银。
3.其他知識
Spring是Java編程的基礎(chǔ)設(shè)施咆课,但真要進(jìn)入到實際項目的開發(fā)末誓,還有些東西繞不過,包括 MySql书蚪,Mybatis喇澡,Redis,Servlet等殊校,但如果你經(jīng)過Spring的洗禮晴玖,這些東西相對就簡單多了,以我的經(jīng)驗为流,1個月的時間足夠了呕屎。
4.實踐
學(xué)習(xí)Java,光學(xué)不練肯定是不行的敬察。但因為是自學(xué)秀睛,所以就沒有實際的產(chǎn)品讓你練手,但也沒有關(guān)系莲祸,誰大學(xué)還沒有做過畢業(yè)設(shè)計呢蹂安?以我的經(jīng)驗,大家最愛的“學(xué)生管理系統(tǒng)”依舊是個很好的練手系統(tǒng)锐帜。
別看“學(xué)生管理系統(tǒng)”邏輯簡單田盈,但麻雀雖小五臟俱全,其中數(shù)據(jù)庫設(shè)計缴阎、Mybatis缠黍,Spring、SpringMVC药蜻,Servlet瓷式、Tomcat一個都不缺,絕對的練手好伴侶语泽。
還有贸典,雖然你的學(xué)習(xí)重點在Java,因為要做一個完整的demo踱卵,前端的配合肯定少不了廊驼。因此就免少不了要學(xué)一些簡單的JS、HTML知識惋砂,但因為前端本就是個很大的topic妒挎,所以一定要控制好邊界,千萬不要顧此失彼西饵。就“學(xué)生管理系統(tǒng)”來說酝掩,在前端上,只要實現(xiàn)一個包含table眷柔、textbox期虾、button原朝,能發(fā)送REST請求到server,能實現(xiàn)學(xué)生的“增刪改查”的簡單頁面即可镶苞。
作為一個練手項目喳坠,目標(biāo)就是把Java的主要技能點串起來,所以自不求盡善盡美(也不可能)茂蚓,所以1個月時間足夠了壕鹉。
.最后
按照上面的過程,4個月的時間剛剛好聋涨。當(dāng)然Java的體系是很龐大的御板,還有很多更高級的技能需要掌握,但不要著急牛郑,這些完全可以放到以后工作中邊用別學(xué)怠肋。
學(xué)習(xí)編程就是一個由混沌到有序的過程,所以你在學(xué)習(xí)過程中淹朋,如果一時碰到理解不了的知識點笙各,大可不必沮喪,更不要氣餒础芍,這都是正常的不能再正常的事情了杈抢,不過是“人同此心,心同此理”的暫時而已仑性。
在日常的教學(xué)中惶楼,我常把下面這句話送給學(xué)員們,今天也把它送給你:
“道路是曲折的诊杆,前途是光明的歼捐!”
我這里有一個java新手學(xué)習(xí)交流群:前面是494中間是801最后是931,無論你是大牛還是小白晨汹,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)豹储!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享淘这!