作一個真正合格的程式師, 或者說就是可以真正合格完成一些代碼工作的程式師, 應該怎麼樣有效的學習Java呢
怎樣學java最有效?
Java語言的學習開始,
雖然Java面象物件很多東西都是被封裝好的直接用, 相對其他語言沒那麼複雜, 但是學的東西也沒有那麼的so easy, 總之如果你是真想做開發, 就先沉下心用心把基礎打好, 不要先老想著因為軟體行業有市場, 所以要進來分一杯羹的這種急躁心態。
另外, 在程式設計這個行業, 技術更新速度快, 所以一定要具備相應的自學能力及自學意識, 不然即使現在入職了Java相關的工作, 不主動學習的話, 說不定幾年後你就跟不上技術要下崗了。 互聯網時代最快的就是更新反覆運算了。 話不多說, 下面一起來瞭解一下如何從零開始學Java。
零基礎入門到專案實戰大神加群144901076還送大量乾貨
一、到相應的培訓機構付費學習
別在這說培訓機構沒用什麼的, 不過一定要找正規的培訓機構, 不然容易被坑。 IT培訓機構裡面的課程都是現在工作中需要用到的, 時間短, 所以可能學生消化得沒那麼快, 基礎可能也沒那麼快鞏固, 所以需要自己更加的努力。
在IT培訓機構裡學習要注意的是:勤加練習、主動自學、有問題提, 不懂的儘管問老師, 不然畢業後再有問題就沒有這麼好的機會能夠直接得到有效的溝通了。
二、自學
由於是自學, 所以從開始到入門會很枯燥, 不一定所有的人才能堅持下來, 所以如果你沒有深厚的興趣的話個人建議還是別自學程式設計了。
下面再給大家補充一些Java的學習思路!
學習Java其實應該上升到如何學習程式設計這種境界, 其實學習程式設計又是接受一種程式設計思想。 每一種語言的程式設計思想大同小異, 只是一些由語言特性的而帶來的細微差別, 比如Java中的Interface, 你幾乎在以前的學習中沒有碰到過。 以下我仔細給你說幾點:
1明確物件導向的範疇
我們必須明確一個大方向, 也就是說現在物件導向的程式設計範疇。 儘管人工智慧曾經有所浪潮(看看Borland為什麼有Turbo Prolog), 但未來5-10年工業界廣泛承認並接受的將是物件導向式的程式設計。
工業界目前最流行的物件導向程式設計語言就是C++和Java。 所以基本上鎖定這兩個方向就可以了。 而且完全可以同時掌握。
2掌握Java的精華特性
掌握Java的精華特性的同時, 一定要知道為什麼。 比如, Interface和multi-thread。 用interface是更好的多繼承的模型, 而多執行緒則是設計到語言一級的重要特性。 要完全理解interface是為什麼, 用多執行緒又有幾種常用的程式設計模型。
3開始進行設計
理解了語言的特性是為什麼了之後, 就可以試著上升到設計這個層次, 畢竟學習語言是要用的。 目前比較好的開發模式是採用自定向下的物件導向的設計, 加上MVC的模式(你可以看一下我介紹的關於MVC的內容)。 首先要找出最頂層的物件(這往往是最難的), 然後一層一層往下遞迴, 記住每次應符合7+/-2的原則, 因為我們人的短記憶就是這樣。 一般有圖形化使用者介面的應從介面開始設計。
4學習設計模式
有了基本設計模型後, 可以學一些設計模式(Design Pattern)。 這是目前證明很有效的。 比如體系結構模式(Layering分層, Pipe/Filter管道或篩檢程式), 設計模式(有很多, 比如物件集區Object Pool、緩衝集區Cache等), 程式設計模式(比如Copy-on-Write)。
懂了這些模式之後, 就會對系統的整體結構有很好的把握, 而學術上也有傾向一個系統完全可以由各種模式組合而成。前面提到的MT實際上就有好幾種模式,掌握後就不用自己花很多時間去試了。另外一個很重要的領域就是並行和分散式運算領域,大概有20種左右。
5進行程式設計實踐
接下來就不能紙上談兵了,最好的方法其實是實踐。一般教科書上的例子並不能算是實踐,只能算是讓你掌握語言特性用的。而提倡做實際的Project也不是太好,因為你還沒有熟練的能力去綜合各種技術,這樣只能是你自己越來越迷糊。
我認為比較好的方法是找一些比較經典的例子,每個例子比較集中一種程式設計思想而設計的,比如在我的實踐當中,我曾經學習過一個很經典的例子就是用Java實現的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜尋引擎上找一下,我記不大清楚了。好象是個網站,上面有原代碼和一些基本設計的文檔。
另一個來源可以到是個不錯的文檔基地。從HotDraw上我學到了什麼是Framework,以及如何用rolemodel的方式來構造,這樣我就可以應用到其他的地方。順便說一句,這個例子你絕對不會覺得小,只會覺得大,並且他還是真正的商用的Framework。
6學習修改經典例子
結合前面學到的設計模式你就可以很好的理解這些經典的例子。並且自己可以用他來實現一些簡單的系統。如果可以對他進行進一步的修改,找出你覺得可以提高性能的地方,加上自己的設計,那就更上一個層次了,也就會真正地感到有所收穫。
好象以上談的跟Java沒什麼關係,其實我們早就應該從單純的學習語言到真正的學習好程式設計的領域。學習技術是沒有止境的,你學習第一種語言可能要半年時間,以後每種語言都不應該超過兩個月,否則你會覺得學習語言是包袱,是痛苦。
7學以致用
學習是為了用的,是為了讓你的程式產生價值,把握住這個原則會比較輕鬆點。
而學術上也有傾向一個系統完全可以由各種模式組合而成。前面提到的MT實際上就有好幾種模式,掌握後就不用自己花很多時間去試了。另外一個很重要的領域就是並行和分散式運算領域,大概有20種左右。5進行程式設計實踐
接下來就不能紙上談兵了,最好的方法其實是實踐。一般教科書上的例子並不能算是實踐,只能算是讓你掌握語言特性用的。而提倡做實際的Project也不是太好,因為你還沒有熟練的能力去綜合各種技術,這樣只能是你自己越來越迷糊。
我認為比較好的方法是找一些比較經典的例子,每個例子比較集中一種程式設計思想而設計的,比如在我的實踐當中,我曾經學習過一個很經典的例子就是用Java實現的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜尋引擎上找一下,我記不大清楚了。好象是個網站,上面有原代碼和一些基本設計的文檔。
另一個來源可以到是個不錯的文檔基地。從HotDraw上我學到了什麼是Framework,以及如何用rolemodel的方式來構造,這樣我就可以應用到其他的地方。順便說一句,這個例子你絕對不會覺得小,只會覺得大,並且他還是真正的商用的Framework。
6學習修改經典例子
結合前面學到的設計模式你就可以很好的理解這些經典的例子。並且自己可以用他來實現一些簡單的系統。如果可以對他進行進一步的修改,找出你覺得可以提高性能的地方,加上自己的設計,那就更上一個層次了,也就會真正地感到有所收穫。
好象以上談的跟Java沒什麼關係,其實我們早就應該從單純的學習語言到真正的學習好程式設計的領域。學習技術是沒有止境的,你學習第一種語言可能要半年時間,以後每種語言都不應該超過兩個月,否則你會覺得學習語言是包袱,是痛苦。
7學以致用
學習是為了用的,是為了讓你的程式產生價值,把握住這個原則會比較輕鬆點。