如何正確有效的學習好java
如何正確有效的學習好java
Java語言的學習開始,很多同學都不知道應該從哪入手?想知道如何從零開始學Java嗎?請看下文,以下是學習啦小編分享給大家的有效學習好java的方法,希望可以幫到你!
有效學習好java的方法
1明確面向對象的范疇
我們必須明確一個大方向,也就是說現(xiàn)在面向對象的編程范疇。盡管人工智能曾經(jīng)有所浪潮(看看Borland為什么有Turbo Prolog),但未來5-10年工業(yè)界廣泛承認并接受的將是面向對象式的編程。
工業(yè)界目前最流行的面向對象編程語言就是C++和Java。所以基本上鎖定這兩個方向就可以了。而且完全可以同時掌握。
2掌握Java的精華特性
掌握Java的精華特性的同時,一定要知道為什么。比如,Interface和multi-thread。用interface是更好的多繼承的模型,而多線程則是設計到語言一級的重要特性。要完全理解interface是為什么,用多線程又有幾種常用的編程模型。
3開始進行設計
理解了語言的特性是為什么了之后,就可以試著上升到設計這個層次,畢竟學習語言是要用的。目前比較好的開發(fā)模式是采用自定向下的面向對象的設計,加上MVC的模式(你可以看一下我介紹的關于MVC的內(nèi)容)。首先要找出最頂層的對象(這往往是最難的),然后一層一層往下遞歸,記住每次應符合7+/-2的原則,因為我們?nèi)说亩逃洃浘褪沁@樣。一般有圖形用戶界面的應從界面開始設計。
4學習設計模式
有了基本設計模型后,可以學一些設計模式(Design Pattern)。這是目前證明很有效的。比如體系結構模式(Layering分層,Pipe/Filter管道或過濾器),設計模式(有很多,比如對象池Object Pool、緩沖池Cache等),編程模式(比如Copy-on-Write)。
懂了這些模式之后,就會對系統(tǒng)的整體結構有很好的把握,而學術上也有傾向一個系統(tǒng)完全可以由各種模式組合而成。前面提到的MT實際上就有好幾種模式,掌握后就不用自己花很多時間去試了。另外一個很重要的領域就是并行和分布式計算領域,大概有20種左右。
5進行編程實踐
接下來就不能紙上談兵了,最好的方法其實是實踐。一般教科書上的例子并不能算是實踐,只能算是讓你掌握語言特性用的。而提倡做實際的Project也不是太好,因為你還沒有熟練的能力去綜合各種技術,這樣只能是你自己越來越迷糊。
我認為比較好的方法是找一些比較經(jīng)典的例子,每個例子比較集中一種編程思想而設計的,比如在我的實踐當中,我曾經(jīng)學習過一個很經(jīng)典的例子就是用Java實現(xiàn)的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我記不大清楚了。好象是個網(wǎng)站,上面有原代碼和一些基本設計的文檔。
另一個來源可以到是個不錯的文檔基地。從HotDraw上我學到了什么是Framework,以及如何用rolemodel的方式來構造,這樣我就可以應用到其他的地方。順便說一句,這個例子你絕對不會覺得小,只會覺得大,并且他還是真正的商用的Framework。
6學習修改經(jīng)典例子
結合前面學到的設計模式你就可以很好的理解這些經(jīng)典的例子。并且自己可以用他來實現(xiàn)一些簡單的系統(tǒng)。如果可以對他進行進一步的修改,找出你覺得可以提高性能的地方,加上自己的設計,那就更上一個層次了,也就會真正地感到有所收獲。
好象以上談的跟Java沒什么關系,其實我們早就應該從單純的學習語言到真正的學習好編程的領域。學習技術是沒有止境的,你學習第一種語言可能要半年時間,以后每種語言都不應該超過兩個月,否則你會覺得學習語言是包袱,是痛苦。
7學以致用
學習是為了用的,是為了讓你的程序產(chǎn)生價值,把握住這個原則會比較輕松點。
有效學習好java的建議
1. 刻意練習適合較成熟的領域
書中提到的適合的合理發(fā)展行業(yè)或領域,指的是這個行業(yè),最杰出的從業(yè)者已達到一定的程度的表現(xiàn)水平。包括音樂、舞蹈、體育、棋類等有固定評分標準的領域。而那些沒有客觀標準來評價卓越績效的領域,如銷售、園藝、企業(yè)管理等,不太適合刻意訓練。
實際上,我們看到這個領域也像認知范圍一樣在不斷擴大,如文案寫作,現(xiàn)在也有一整套有效的培訓和訓練的方法。隨著新興領域不斷崛起,專業(yè)化分工越來越細,會沉淀出越來越多的科學方法,形成刻意訓練的基礎。
2. 刻意練習需要好的導師或教練
這一點書中多次表達得比較充分。
練習的早期,大量的反饋來自于導師或教練,隨著時間的推移,學習者要學會自我監(jiān)測,自我調整。
對于初學者,導師的要求沒有那么高,他有足夠熟練的技能即可。如果你已訓練了好幾年,那就需要找一位更能干、權威的導師。
現(xiàn)在很多人學習利用得最多的是: 網(wǎng)絡,
1) 學習資料、資源極大的豐富。視頻學習資料可以更好地幫助入門。
2) 在線學習的社群,找到學習的氛圍。
不過對于絕大多數(shù)學習者來說,找到一位好老師還是非常重要。好的老師能給予及時有效的反饋和學習監(jiān)督,這也是很多自學、在線學習無法提供,造成完成率非常低的原因。編程開發(fā)經(jīng)過3~4個月的培訓學習,就可完全達到一個入門工作的要求。
在經(jīng)濟條件允許的情況下,優(yōu)先找導師學,尤其是在“入門的初級階段”,不然在這個階段,很可能你的對新知識、新技能的渴求和熱情會在掌握之前就會消失殆盡。
3. 刻意練習發(fā)生在舒適區(qū)之外
刻意練習需要付出近乎最大限度的努力。一般來說,不是令人心情愉快的。
人的身體偏愛穩(wěn)定性,舒適區(qū)的正面作用是心理安全,自我情緒穩(wěn)定,維護自我形象。負面作用就是“溫水煮青蛙”,松懈倦怠保守,不思進取、固步自封。
刻意練習的過程是痛苦的,興趣和喜悅來自于成就感。
4. 刻意練習要有準確的目標和切實的計劃
特定的目標需要量化,目標要能分解成計劃來執(zhí)行
要想取得進步,必須完全把注意力集中在任務上
關于目標和計劃,有很多原則和實施方法,如SMART,這里不展開。
5. 刻意練習需要有效反饋
即時反饋包括:練習時在哪些方面不足,怎么會存在這些不足,以及現(xiàn)在離目標還有多遠。
對比很多自學沒有效果的原因,是無法給學習提供一個有效的反饋系統(tǒng),學了多少,是什么樣的問題,學到哪里了,這些對于一個還沒有入門的人還說,是很難把握的。當然考試也是一個有效的反饋機制。
有效學習好java的注意事項
交換著學更有效
一開始,比約克問我說,當我面前堆了一摞書要啃的時候,我會怎么辦。
“人通常會一塊兒一塊兒地整,” 比約克說,“干完這個再干那個。”
正確的學習方法,應該是交換著學,學會兒這個,再學會兒那個。好比你要練網(wǎng)球的發(fā)球,你不應該花一個小時的時間苦練發(fā)球,而應該把反手擊球、截擊、扣殺和步法,結合起來交換著練。“這就增加了難度,”比約克說,“而人們往往容易忽略這些不是立竿見影的效果。”
專注地練一段時間能讓你的發(fā)球水平有一個明顯的提高,而交換著練習則能夠使你在很多技能上,都往前邁出小小的一步,你幾乎無法察覺自己有所提高。然而,隨著時間的推移,這些小小的進步累積起來,將會比你花同樣多的時間,去一項一項單獨掌握每一個技能所獲得的提高多得多。
對此,比約克表示,交換練習用得好的話,能讓你把各項技能都相應的 “座”到位。“把一個知識點跟記憶中的其他東西聯(lián)系起來學,這樣的學習會更加有效,”他說。需要注意的一點是:交換著練習的這些小技巧,要同屬于一個大的技能才行。如果你想學打網(wǎng)球,那么你交換著練習的應該是發(fā)球、反手擊球、截擊、扣殺和步法,而不是發(fā)球、花樣游泳、背誦歐洲國家的首都和學習用Java 編程。
同樣,只在一個固定的地方學習當然很好,前提是你只需要在那個地方才會用到你學的那些東西。如果你想在宿舍、辦公室或者圖書館二樓自習室等等以外的地方,也能回憶起你所學的知識,比約克建議,不妨在幾個不同的地點換著進行自習。
無論你是學數(shù)學、學法語,還是學社交舞步,交替著學和換著地點學都將適用。
不要馬上復習
類似的還有一個叫做“時間間隔效果”(spacingeffect),這一概念最初由赫爾曼·艾賓浩斯(Hermann Ebbinghaus)在1885年提出,學習的時候,復習要隔開一段時間,會學得更好。
“如果你學了之后不練,研究表明,中間隔的時間越長,你忘的就越多,”比約克說。但有趣的是:如果你學了之后,隔一段時間再學,這時候你隔的時間越長,復習的時候你學到的東西就越多。
比約克表示:“當我們從記憶中提取信息的時候,我們做的不只是說它在那里就行了。記憶不僅僅是回放。我們這次取出來了的東西,下次要取的話,取起來就會變得更容易。我們每次取的過程越難、涉及的東西越多,整個記憶就越有效。”
注意這里所說的是 “我們這次取出來了的東西”(沒取出來是沒有用的)。所以, 從學完到你開始復習的時間,應該是你剛剛好要開始忘記的時候。這樣,你越是拼命地回憶之前學過的東西,你復習的效果就會越好。如果你學完之后馬上復習,就沒有這個效果了。
同理,比約克還建議說,筆記最好下課之后才開始記,以強迫自己回憶課上講過的東西;而不是在課堂上記,黑板上有啥抄啥。你必須下苦功才行。你花的工夫越多,你學到的就越多,你當然也就越牛。
遺忘對記憶有幫助
“趕緊忘掉你知道的‘遺忘’的定義吧,”比約克說,“人們通常認為,學習就是在記憶里面修東西,而遺忘呢,則是把你修起來的東西給拆了。但在某些方面,反過來說才是對的。”
這么說吧,只要是你學過的東西,其實是一直待在你記憶里不會忘的。你還記得你兒時好友的電話號碼嗎?記不得了?那好,比約克說了,如果這時候提醒你一下,那么你回憶起這個電話號碼的速度和印象,會比讓你重新記一個新的號碼要迅速和清晰得多。所以這個舊的電話號碼不是被你忘記了——它一直待在你腦海里的某個地方——只是把它取出來有點兒麻煩就是了。我們一直把遺忘當成是學習的死對頭,這也算是冤案一樁。學習和遺忘的關系有點兒像是共生,實際上遺忘對記憶還有幫助作用。
“人腦有無限的存儲量,要是什么都回憶得起那就糟了,” 比約克說, “試想一下,你記得你住過的所有地方的所有電話號碼,每當有人問你電話號碼的時候,你必須把這一長串電話號碼都給理一遍才行。”我們忘記舊的電話號碼,或者把它們埋于記憶深處,回憶夠不到的地方,方便我們迅速提取出現(xiàn)在使用的那個電話號碼。被你狠得牙癢癢的敵人,其實更像是默默守在一旁的伙伴(吐槽:防止你因為一直忘不掉以前的糗而自絕于寰呀!)。
猜你喜歡: