一份Java學習路線圖

Java學習路線圖

本文會持續更新,敬請關注。下劃線的文字會在這個博客繼續更新。html

回顧本身的Java學習經歷,從學校的課堂到如今天天的項目開發,一份路線路線圖浮出來。java

其中有未作好的地方,也有自我感受有用的方法。整理並分享出來,既是分享也是拋磚引玉,歡迎你們轉載和討論。程序員

0.起步

一本書或一個教程,一個開發工具,Hello World。
 
初識Java通常都會從某本教材、課程或者教程開始。完成第0部,首先須要掌握:
  • Java基本語法
  • 開發工具的基本使用:創建Java項目,敲入代碼,運行程序。固然,如何安裝Java開發環境也是必備技能。
  • 與其餘語言同樣,輸入經典的hello world,而後看到輸出。
起步沒有什麼特別之處,若是有過其餘語言的編程經驗這一關很容易經過。

推薦書籍

能夠做爲起步的書籍和教程不少,列舉一下本身以爲比較合適的幾本:

開發工具

開發工具與編程語言同樣,難分伯仲。因此這裏不作比較,一般見到的會有Eclipse (MyEclipse),IntelliJ Idea,Netbeans。
  • Eclipse
    • 這裏指說一下本身經常使用的Eclipse。最新的Eclipse 4已支持Java8語法,下載地址
    • Eclipse的版本衆多,若是不涉及Eclipse插件開發,JavaEE版本(Eclipse IDE for Java EE Developers)就能夠:支持J2EE和J2SE開發。
  • 安裝Eclipse也很簡單:下載後解壓縮,直接運行便可。固然,這裏也有不少坑,好比各類千奇百怪的問題。接下來會單獨寫博客討論

總結

雖然只是路途中的第一步,可是好的開頭就是成功的一半。任何問題都是好問題,必定要記錄和總結。

1.新手

第一個程序,瞭解面向對象,學會看API,學會調試,學會問問題。
 
當你經歷了第一步,把書上的例子都運行過一遍,接下來就會開始寫本身的第一個程序。
不管是課程實踐,仍是工做安排的小任務,這些都會是一個好的開始。
 
那麼必備的幾項知識我認爲是有用的(實際上不會限於如下幾項):
  • 瞭解面向對象:Java是面嚮對象語言,因此寫程序遇到的第一個問題和之後一直須要解決的問題就是「用面向對象的思想,把問題抽象成Java程序」
  • 學會看API:現成的例子會跑,但畢竟涵蓋的範圍有限,那麼學會看JavaDoc,調用函數就是重要的一步。
  • 學會調試:學會調試,能夠在問問題前解決一大半的問題。這裏說的調試不只是在Eclipse學會debug,還有如何用你的大腦在閱讀代碼時分析程序,找出問題。
  • 學會問問題:這個不只在寫代碼時很重要,在解決其餘問題時同樣適用。

推薦書籍

  • Java編程思想 (第4版):經典。對面向對象的講解很到位。不足之處是中文的翻譯,技術詞語與如今一般的用法有所區別,須要注意。
  • JAVA核心技術(卷1)(卷2):對Java知識體系中常見的API和注意事項有講解。可根據本身的實際開發進行查閱。
  • UML和模式應用:經典面向對象教材,還能夠熟悉UML的基本概念。

經常使用資源

  • JDK7 Document下載在線API Document:在Eclipse中若是有網絡,能夠直接看到API的說明,離線時也能夠將下載後的文檔關聯。接下來會單獨寫博客討論。
  • Java Debugging with Eclipse - Tutorial:Debugger是程序調試的重要工具,學會使用它會對開發中的問題進行有效的跟蹤和分析。這篇優秀的教程是英文,接下來會單獨寫博客總結Eclipse開發debugger的經常使用技巧
  • 如何提問:《提問的智慧》,讀完此文會對問題的質量和有效回覆有很大提升。

總結

從第一個程序開始,就會遇到開發中的實際問題。因此,一些經常使用的概念和技能會在往後的開發過程當中不斷磨練和提升。
勤奮和總結始終是手中的必備法寶。

2.工人

讀代碼,改bug,開始學設計,開發流程。
 
寫了若干小程序後,實際的項目開發會是這樣:
  • 維護遺留代碼,解決bug
  • 開發新功能
  • 設計並開發項目中的某個小模塊
  • 測試:暫時不在此文的討論範圍以內,無相關經歷
那麼接下來就是須要掌握的一些技能:
  • 讀代碼:寫代碼容易,讀代碼難,尤爲是那些讓你抓狂的代碼。這裏仍是有一些技巧和規律的,也有相關的工具能夠輔助。
  • 改bug:熟悉業務流程,瞭解邏輯關係,常見的Java錯誤。這些都是你工做的好幫手。
  • 設計:如何從頭開始設計一個功能模塊?涉及哪些相關知識,有什麼經驗是能夠借鑑的?回答這些問題是設計工做的開始。
  • 開發流程:每一個公司或項目都有本身的開發流程,熟悉這些流程和工具是必備技能。

推薦書籍

  • 程序員的思惟修煉:雖然與Java無直接關係,但其中的解決問題思路絕對管用。
  • 代碼閱讀方法與實踐:此書雖然以Linux開源項目爲示例,但其中的經驗和思路可借鑑。接下來會單獨寫博客討論。
  • 設計:這個話題比較大,待思考細分後再分專題推薦和討論。
  • 開發流程:目前比較流行的開發流程,經常使用的項目管理、源碼管理、Code Review等相關工具介紹。接下來會單獨寫博客討論。

總結

這個階段須要稍微慢下來,對本身的工做進行思考和梳理。找出本身的優點或不足,相對應地進行鞏固和提升。
由於涉及的事情、知識會有較大的擴展,所以須要學習的東西會不只限於技術開發。
保持積極的心態和勤奮的態度,繼續下一個階段。

3.技術骨幹

業務,設計模式,架構,調優,用戶體驗。
 
若是此時仍是專一於技術,那麼可能會繼續下面的修煉。
這個階段代碼量和項目已經到了一個階段,因此可能會遇到負責某個產品開發,或者專一架構設計。
日常考慮的問題可能會是:如何確保產品按時上線,架構合理,少出bug。如何在不斷變化的需求中,確保開發進度和軟件質量。
 
那麼接下來就是一些關注點:
  • 業務:之因此把它放到第一位,緣由很簡單——這是企業的核心。
  • 設計模式、架構:從開發程序,到開發模塊,再到開發產品。這種轉變的結果,就是須要從更高的角度去看待開發這件事情。合理、可靠、可擴展的架構,是確保產品生根和發展的重要基礎。
  • 調優:產品不光是寫代碼,更重要的是後期的維護和擴充。調優、解決線上的故障,這些都是必須面對的問題。
  • 用戶體驗:很重要,但超出了個人討論能力範圍,你懂得:)
實際狀況是,本身雖然看到了一些,但我的經歷着實沒有辦法總結出好的經驗。
不過我仍是一直在努力和學習。 若是有好的文章和書籍在這裏多作分享。

4.自由的開發者

第一個產品。
 
一個Idea,一個產品,一個成功?!
這時你可不須要對某個公司或老闆負責。你的產品就是你的baby,你賴以生存的依據。
除了須要過硬的技術,還有就是一種堅持和決心。
也許不是創業,也許只是自由職業。但一樣會爲本身的產品和生存負責。
 
扯了這麼多,其實我是一名普通的Java程序員。但願這些文字可以對本身有激勵和總結,也能對喜歡Java的朋友有所幫助。
相關文章
相關標籤/搜索