咱們先解決認識問題
1、學JAVA的過程及特點
我們研究一下那些985學校的學生,他們是怎么學會JAVA的,有知友馬上會說,我去!是的,985很多學生志向高遠,學JAVA只是他們一個小小的任務,但對我們大家來說,學JAVA是一個重要的任務,是解決體面工作、找到更好前途的重要任務,我們研究他們是如何學會JAVA,是研究規(guī)律性的東東,或者真的對大家有幫助。
一般這些985學校的老師都會有項目,然后博士當項目經(jīng)理,碩士當組長,本科生當碼工,碼工很缺,假若是你就是985學生,而且你也想學JAVA,所以你就參加了,除了會點C,還有一點點JAVA基礎,你就開始了。
你不知道怎么做,然后有個會JAVA的碩士生,或者本科生過來告訴你,你先看這本書,也不用全看,先看這部分,不明白的地方問他,然后經(jīng)過這么努力一段時間,那人會告訴你,要不你看看項目的部分代碼,試著敲敲,你就敲啊敲,不懂就問,然后你感覺差不多的,向那人要任務,結(jié)果人家是給了任務,但不是正式項目,作為測試作的任務,然后你又開始苦干了,當然在此期間出現(xiàn)了很多問題,但總有人會幫忙來解決,最后任務完成,組長說你可以了,可以加入項目承擔任務了,就這么簡單。
現(xiàn)在我們來分析一下這個過程,第一要有合理的學習路徑,先學什么后學什么,得有人告知,第二,得有個人來幫你解決各種問題,第三,得有一批人和你一起干,第四,要敲代碼,第五,得有緊迫感得堅持,他們的任務等著你呢,明白了吧,不是人家聰明,是人家有這個學習環(huán)境,所以不要妄自菲薄。
說過985學校學生,大家認為自己垃圾學校的,這種方法沒法拿過來用,那么我們來看看培訓機構(gòu)的學生是怎么學會的,他們更多的也是垃圾學校的學生,甚至更差,還不如你,在他們學習過程中:
第一,他們的學習路徑是機構(gòu)設置好的;
第二,他們有老師幫他們解決各種問題;
第三,有一批志同道合的同學,相互鼓勵前進;
第四,敲代碼;
第五,培訓有合理的期限,機構(gòu)老師會督促大家堅持。
兩者的區(qū)別,前者知識是自學的,看書看視頻,后者,知識是老師教的,作為一個普通大學生實際上也能自學,只不過聰明程度和堅持的不同,學得時間長一點短一點而已,所以學習過程類似。
上面兩個例子說明,學JAVA不要特別的智商,可以說,只是指導思想、學習環(huán)境和學習方法對路,只要不是弱智,大家都學得會,別去聽有些人的瞎BB,我見過智商真的不怎么的人學會JAVA,相信自己很重要,我們又不想成為喬布斯、比爾蓋茨,我們只是想學會JAVA有份體面的工作、有份體面的收入而已,至于以后成為什么樣的,以后有的時間認識自己,別去相信什么程序員是野生的,沒有野生的,他們也是在大學學習過的,也是家養(yǎng)的,是人類就沒野生的,除非他們是非人類。
好,我們來分析一般JAVA自學者的狀況,學習路徑就是個問題,網(wǎng)上這找找那找找,這個說這個知識是必須的,那個說那個知識是以后的發(fā)展方向…..,然后我們就這個看看學學,那個看看學學,學不深,蜻蜓點水,結(jié)果一事無成。
我們碰到問題不知道去問誰,我們經(jīng)常是孤獨的學習者。
我們無法堅持學習計劃,三天學一點,第四第五天就去弄別的事情去了,畢竟學習是個苦差事,學JAVA更是苦,所以要放松一下,結(jié)果很多人就不回來學了,回來學的又得從頭開始了。
我們學習基本不敲代碼,只是學知識,從小校到大學,學校都是這么教的,也不知道敲什么、怎么敲,敲不下去不知道找誰解決。
--------------------------------------------------------------
2、如何認識敲代碼的重要性?
說到敲代碼,我們必須著重說明一下,我們從小到到,老師傳授我們的是知識(knowlegde),不是技能(skill),所以我們擅長的是學知識而不是技能,我們總用學知識的方法學編程,而編程是一個知識加技能的活,學技能必須練、必須實踐,比如修鐘表,比如踢足球、打籃球,光靠看看書、看看視頻解決不了問題。
賣油翁的故事大家都學過,”我亦無他,唯手熟爾。”,所以學編程必須去敲代碼、去實踐,舉個大家最熟悉的例子,英語,也是技能+知識,大家從小到大學了十多年,結(jié)果還是不會聽、不會說,但如果把你放到說英語的國家?guī)讉€月,你至少會聽一點、說一點了。大學只會傳授知識,不會傳授技能,所以學不好英語,當然更不用說學編程了,英語大家慢慢明白了是什么原因?qū)W不好,編程學不好,大家不明白其中的原因,所以一般大學的計算機專業(yè)學生學到三年級的時候,發(fā)覺自己學不好編程,從自身找原因,認為自己不是這塊料,這就尷尬了,學計算機專業(yè)的結(jié)果是搞明白了自己不是這塊料,那人家培訓機構(gòu)怎么就讓人學會了呢,悲哀啊。
說到了敲代碼,馬上就面臨一個問題,錯誤。
3、如何認識在敲代碼中遇到的錯誤呢?
有的初學者在運行程序之前恨不得燒柱香,祈禱程序運行不會出錯。要明確一點,碰到錯誤不可怕,也不可避免,但是見的錯誤越多,那么說明你學的越快,這是好事,錯誤見多了,以后就不會再犯這種錯誤了,當然前提是你得找到出錯的原因。
那么怎樣才是解決問題的正確方式呢?碰到程序出錯,首先要想著自己去解決,明確程序出了什么錯誤,找到程序出錯的地方,比如哪一行或者哪個方法。然后理一下自己的思路,仔細想想哪里有什么遺忘的地方,按照程序執(zhí)行的順序,依次往下找,多找?guī)妆椤?/p>
但是,記住,如果超過一段時間(你自己可以設置一個時間,比如15分鐘),你找不出解決方法,就不要找了,盡快找人幫助解決,畢竟學JAVA的碰到的問題太多了,花大把大把時間解決個別問題,你耗不起,這樣學習效率過低了,會嚴重影響學習信心,當然別人幫你解決了問題,你就一定要問清楚為什么會出現(xiàn)這個問題,否則這 個敲代碼效果就不一定好了。
這里又要糾正一種認識,從小到大,學校里老師告訴我們,題目要自己做,這樣記得牢,所以絕大多數(shù)的我們,都是這樣過來的,在學JAVA的時候也是這樣學的,但是你學JAVA的碰到的問題太多了,都自己思考出結(jié)果來,恐怕對大多數(shù)人來說太費時間,今天幾個問題沒解決,明天幾個問題沒解決,一周后,你有多少問題沒解決啊,這些都是你前進的包袱,對你學JAVA的信心來說,是一個致命的打擊,所以牢記:一段時間想不明白就求助別人,扔掉包袱、輕裝前進才是最重要的。
4、如何讓學習不是很痛苦,更easy點
(1)別把學習計劃制定得太宏大,太緊湊,要有適當?shù)拈L期打算,不要恨不得一天就把它學會了,但是學著學著就像霜打的茄子,焉了。
(2)不要聽到什么好去學什么,開始時別去想struts2,spring,mybatis這些高大上的框架,只要基礎打扎實,學這些不難,IDE只要選一個弄明白就可以,不要多。
(3)開始別玩Oracle,就玩MySQL,玩得差不多再玩Oracle很容易,開始也別用linux,就用windows,就是什么簡單就用什么,別自己給自己制造麻煩,簡單的學好了,復雜點學學很方便,高精尖的東西對于初學者來說,都是包袱,不是什么利器,是有毒的蘋果。
(4)不要就是碰到什么問題,都希望把問題弄的很透徹,因為有些東西不是你現(xiàn)階段能夠徹底理解的,這就類似與你跟一個四五歲的小朋友解釋成年人之間的事,解釋了半天發(fā)現(xiàn)他還是不懂,于是你會說:等你長大了也就明白了,知識是成體系的,后面的沒學,前面的不容易理解,等你后面的學好,發(fā)現(xiàn)前面的很好理解。
(5)盡快敲代碼,是在基本理解例子的基礎上,自己從頭到尾敲一遍,不要把學過的知識點扔的太久之后才去敲,記?。郝斆魅丝梢栽趶氐桌斫獾幕A上開始敲代碼,對于普通人,基本理解以后就可以開始敲代碼,有很多時候,你想破頭都不明白的問題,敲一下就立即明白。在敲完以后,這個時候要好好理解,就是把完全理解的任務后置,這會讓學習更輕松。
(6)找?guī)讉€有共同興趣的人組成JAVA學習小組,或者幾個好的QQ的JAVA學習群,互想幫助,互相鼓勵。
1、學習教材選擇
推薦《JAVA核心技術(shù)》,想多看點代碼多練習可以找《java開發(fā)實戰(zhàn)經(jīng)典》
2、JAVA學習視頻:
馬士兵JAVA視頻、畢向東JAVA視頻,關(guān)于視頻,必須說明一下:
第一,最好看一個人的視頻,因為每個老師的思維方式不一樣。
第二,看視頻是一個相當?shù)托У膶W習方法,能不看就不要看,實際上看視頻慢慢就落入學習知識而忽視技能練習的狀態(tài),開始去努力記知識點,不去敲代碼, 這樣是走不下去的,看視頻時,一定要記得敲代碼。
3、JAVA學習網(wǎng)址
查找代碼的網(wǎng)址:國外的,我們也牛皮一下
很遺憾,都是英文的,
國內(nèi)的估計這兩個鏈接基本解決了學習資料問題
下載詳情_51CTO下載中心_IT技術(shù)資料免費下載或者
158個JAVA免豆精品資料匯總 - Java論壇 - 51CTO技術(shù)論壇幫51CTO做廣告了。
還有CSDN、博客園、開源中國和pudn這幾個網(wǎng)站都不錯。