論Java如何入門

前言:

我學習Java也有一年多了,雖然如今仍是個菜鳥,可是對於Java的基本編程仍是學會了些。這篇文章就是我這大半年學(踩)習(過)經(的)驗(坑)的一個總結,但願對於入門者有一些幫助吧。java

學習編程語言的方法無不外乎三種:讀書,編程,思考。程序員



關於讀書:

Java領域有不少不少的大部頭經典論著,這些書籍每每令初學者感到既頭疼又迷茫。那麼初學者首先應該讀什麼書呢?我推薦的是《head first Java》,這本書很是之適合初學者。書裏用圖文結合的方法形象地闡述類、方法、繼承、實現等java中的概念。這本書的中文譯本也很棒,能感覺到譯者將書裏原來就有的段子用心地改編成了中國版本。我也是受到別人安利纔讀的這本書,我所就讀的學院軟件工程相關課程的老師還將此書做爲推薦書籍介紹給咱們。面試




關於如何讀這本書,我認爲:算法

不要太急。博主當初以爲這本書挺簡單淺顯的,因此想早點讀完而後去攻讀《think in Java》這樣的大部頭,結果現實給了我響亮的一耳光。這本書語言雖然淺顯,每頁所分佈的知識點也很少,可是其中不少地方都有不少思考空間的。讀的太快的結果就是思考不夠,後來編程時遇到問題每每想不到問題該如何解決。博主當年僅用了10天就把600頁的《head first Java》讀完了,而且還像模像樣得作了兩分十幾頁的讀書筆記……然而……並無什麼卵用。個人一些同窗甚至用一個學期纔讀完這本書,可是咱們在編程上並無什麼差距[哭],甚至可能我還更菜些……再哭。編程

因此我推薦的正確讀書姿式是api

  1) 第一遍主要去熟悉Java中的概念和語法,對於一些讀不懂的細節能夠暫時不去管它。數據結構

  2) 對於Java中的一些重要概念,如對象、包、類、方法、繼承、封裝、多態、實現等要去了解和思考。編程語言

  3) 書裏有不少質量很高的代碼,建議親自去實現一遍。學習

  4) Java的API是一種特別棒的東西,Java豐富的API也是Java應用如此廣的緣由之一。我建議可以瀏覽一遍Java的API,以有一個大體瞭解。瞭解Java的API有兩種途徑,一種是經過官方的文檔,另外一種是經過網上的API總結網站。關於第一種,我曾經上傳過API文檔,泥萌能夠去下載(包括head first java我也有上傳過)。關於第二種,我推薦一個網址http://www.howsoftworks.net/javaapi/。這個網址總結了Java中的經常使用API方法,配以簡單的代碼,理解起來很容易。不過沒有官方文檔那麼細緻全面。測試



若是你肯定本身讀透了這本書,就能夠嘗試其餘書了。

推薦兩本:

《think in Java》,這本書又大又全,適合深刻理解Java。

《effective Java》第二版,這本書主要講了一些Java中的編程經驗,一共有78條,不過對於初學者用處不大,適合已經從事實際工做的人去閱讀。

(一樣的,這兩本書我也都有上傳,均可以去下的)



關於編程

讀書一成天, 不如編程一小時。若是光讀書不去實戰的話,一天下來,收穫能有二成就謝天謝地了。關於編程,首先是把《head first Java》裏的項目都練一遍。而後呢,我再來推薦幾個OJ網站。ACM的題對於普通編程學習者來講相對較難,並且ACM的題主要以算法爲主,並非很適合普通人學習。我推薦的網站有四個:


1) LeetCode 【http://www.lintcode.com/】。LeetCode是最好的中文刷題網站,支持Python、C++和Java三種語言。涉及算法、數據結構、字符串等多種知識點,建議Java初學者能夠配套練習LeetCode網站中的入門/簡單的題,這些題的能夠在網上找到詳細的講解,我也寫過幾篇LeetCode解題分析文章(歡迎關注我[恬不知恥的笑臉])

(http://www.jiuzhang.com/solution/ 這個網站上有LeetCode上各題的答案代碼,可供參考)


2) LintCode 【https://leetcode.com/】Lintcode聽起來和LeetCode很類似,在某種程度上確實挺類似233,LeetCode是英文網站,題目整體難度高於LeetCode,而且測試樣例也比LeetCode上更……更噁心人……,不過我不建議初學者刷LeetCode(畢竟提交錯誤代碼是會影響accepted rate的,並且有許多公司的面試業會關注你的LeetCode狀況,萬一太難看就實在太尷尬了。若是以爲本身能力足夠了就去刷吧少年!


3)牛客網 【https://www.nowcoder.com/】,牛客網貴在全,牛客網總結了各個大公司的面試題、Lintcode上的題,還有《劍指offer》裏的編程題乃至ACM比賽題等,而且除了編程以外,還有知識點的選擇題,卻是很適合去學習Java中的基礎知識。


4)碼農谷在線編程 【http://www.manonggu.com/biancheng/】,這個網站也有刷題乃至於編程比賽的渠道,可是我更推薦的是在線編程這個功能。你能夠在網站上試運行簡單代碼,沒必要費力地去加載IDE。



其實關於刷題網站沒必要太糾結,都刷也不是不能夠(好比我就是啦,每一個網站都有帳號,想刷哪一個刷哪一個),真正的難點在於」堅持「,堅持去刷題,遇到問題去思考,去搜索,去理解,不放棄。這纔是最難的。我毅力就屬於不上不下的那種,如今網站了還有幾題處於 」我作了但沒作出來而後就不想作了因而題目就一直耗在那兒「 的狀態。

另外,刷題之餘,也能夠嘗試着去寫博客,用來理清本身的思路,也能夠加深對知識的理解。



關於思考

思考這東西我真不知道怎麼講,因此乾脆就不講了吧23333(逃……



總結

Java這門語言其實學起來不難,至少比C++好多了orz。在讀完入門書、網上刷題以後,仍是要練一些較大的項目來提升水平的。能夠去GitHub上學習一些優秀程序員的優秀代碼。

嚶嚶嚶,你都看到這裏了,不應給我點個贊關個注啥的麼。


最後講個笑話:Why do Java developers wear glasses? Because they cann't C# (see sharp).


相關文章
相關標籤/搜索