Java攻城獅的成長之路

對於Java程序猿學習的建議

 第一階段——Java基礎html

 第二階段——Web開發前端

  這些內容主要是Web開發相關的內容,包括HTML/CSS/JS(前端頁面)、Servlet/JSP(J2EE)以及MySql(數據庫)相關的知識。java

 第三階段——開發框架linux

     目前比較主流的是SSM框架,即spring、springmvc、mybatis。git

 工做年限匹配的技能

1年之內github

  《Java編程思想》 3月之內算法

1年-2年spring

  《大話設計模式》數據庫

  《重構 改善既有代碼的設計》編程

  《effective java》

   總而言之,這個階段,你的核心任務就是提升你的代碼能力,要能寫出一手優雅的代碼。

2年到3年

  《深刻理解Java虛擬機》。這本書絕對是Java開發者最重要的書,沒有之一

   JVM系列的知識  

  《Java併發編程實戰》

  《Java多線程編程核心技術》

  《Java併發編程的藝術》

   須要去看一些JDK中的類的源碼,也包括你所使用的框架的源碼

  這個階段,除了上面提到的瞭解JVM、JDK和框架源碼之外,也請你根據別人優秀的源碼,去造一個任何你可以想象出來的輪子。

3年到4年

  在這個階段,你就不能再簡單的去學習前3年的內容了,雖然前面的學習若是還不夠深刻的話依舊要繼續,但這個時候你應該更多的考慮創建你的優點,

也能夠稱爲差別性。

  比較推崇的基礎書籍有三本,分別是《深刻理解計算機系統》,《tcp/ip詳解 卷1、2、三》,《數據結構與算法》。

其中TCP/IP有三本書,但咱們這裏把這三本當作是一本大書。

  這三本分別適合三種人,《深刻理解計算機系統》比較適合一直從事Java Web開發和APP後端開發工做的人羣。

  《tcp/ip詳解 卷1、2、三》比較適合作網絡編程的人羣,好比你使用netty去開發的話,那麼就要對TCP/IP有更深刻的瞭解。

  而《數據結構與算法》這本書,則比較適合作計算研究工做的人,好比剛纔提到的分佈式計算。

4年到5年

  在這個階段,你最大的任務是提升本身的影響力,爲本身將來的十年工做生涯那一天作準備。  

  若是你可以靠你的影響力和之前積累的技術,參與到一個偉大的項目當中,那麼你後面的五年也就有着落了。

5年以上

   《深刻理解計算機系統》

 書籍

  《Java編程思想》【5星】:這本書就不說了吧,Java的經典,經典中的經典,LZ從去年10月份開始讀,大約花了三個月讀完。

  《深刻理解Java虛擬機》【5星】:這本書也是經典中的經典,LZ讀的時間好像並不長,可是收穫巨大!

  《重構:改善既有的代碼設計》【4星】:這本書將LZ帶進了重構的世界,LZ看的也很是快,但說實話,裏面的技巧目前還真沒什麼施展的餘地。

  《大話設計模式》【電子版】【5星】:大話這本書是LZ進入設計模式世界的引導者,也正由於它,有了LZ的設計模式博文系列,也所以有人找LZ寫書。

不過LZ最近的生活和工做都有些改變(這點後面再說),因此寫書一事暫且放下了,不知是好是壞,我的以爲多沉澱一下其實也好,但不得不說,寫書真的是一件

絕對靠毅力的事,這與寫博客徹底是兩碼事。

  《編譯原理》【5星】:這本書就不須要LZ評價了,不過LZ目前還沒看完,當時看了大約兩章暫且放下了。這本書是LZ之後必讀之書。

  《設計模式:可複用面向對象軟件的基礎》【4星】:GOF的名著,之因此給4星,是由於難度過高。LZ如今看起來還有難度,緣由是由於裏面的smalltalk,

實在是骨灰級語言。

入手這本書的緣由,本來是爲了寫書而準備的,不過因爲寫書的進度被拉下來了,因此這本書就沒有急於攻破。

  《Java併發編程實戰》【5星】:好書中的好書,它也算當時解了LZ的燃眉之急。經過它,LZ纔算進入了併發的世界,並且併發系列也將因它而出現,

目前LZ其實正在寫併發系列的第二篇文章,還未發表。

  《Effective Java》【4星】:這本書LZ已經讀了一半多,這類書給LZ的感受是,看的時候會產生極強的共鳴,可是看過以後卻記不住什麼。不知道這是不是在潛在的影響LZ的編程手法。

  《代碼整潔之道》【5星】:這一本書與《重構:改善既有的代碼設計》、《Effective Java》十分相似,都是在講如何編寫優秀的代碼,只是這本書給LZ的感受更實用。

  《深刻理解計算機系統》【5星】:這本書實在是難啃,可是LZ看的過程當中收穫巨大。這種書的價值體現,並非最直觀的收穫,而是潛意識的影響。

  《算法導論》:經典之做,不過LZ一直沒有時間去啃下這本巨大的著做。裏面的內容相信必定是很是精彩的,LZ期待着開啓的那一天。

  《數據結構與算法分析》:這本書是LZ爲Java準備的算法書,以前看了一些,沒有繼續觀摩,以後也是要補上的。

  《代碼大全》:又是一本巨厚的著做,這本書號稱也是經典之做,一樣是LZ十分期待的一本書,期待着開啓。

  《Maven實戰》:當初買這本是由於項目當中用到了maven,因此準備大體瞭解一下,結果翻了幾頁發現興趣不大。悲哀,殭屍書了。

  《linux私房菜》:這本書是給本身準備的linux工具書,買的時候就沒打算仔細看,結果買過來之後發現真沒仔細看。

  《分佈式系統原理與範型》:買它是爲了瞭解一下分佈式系統的原理,這本書LZ仍是有興趣的,只是一直沒機會開啓。

  《雲計算》:這本書是當時LZ要回家一趟,因此買了一本帶在火車上看,當時也看了很多,屬於一本消遣的書,算是開闊下視野吧。

  《雲計算與SOA》:這本書與《雲計算》是一塊兒買的,由於仍是想與工做聯繫起來,因此看到SOA就拿過來了,後續有時間能夠拿來消遣,不打算細看。

基本要求

1.語言的基礎部分:

  基礎部分的重點,其實主要就是static、final、transient、volatile這一類的關鍵字,以及內部類、泛型這一類的高階語法。

 2.Java運行時環境

 

3.併發知識與concurrent包

 

4.設計模式和反射

 

5.文件IO、NIO、網絡IO以及網絡協議

 

 

 中等要求

 1.Spring、Mybatis框架

 2.Linux服務器

 3.數據庫優化

 4.消息服務

 5.緩存服務

 6.負載均衡器

 

 

 

加分要求

1.數據結構與算法

2.計算機操做系統

3.計算機網絡

4.熟練使用一種腳本語言

5.你的github和博客

其餘

併發、JVM、分佈式、TCP/IP協議這些

Java的數據結構相關的類實現原理,好比LinkedList,ArrayList,HashMap,TreeMap這一類的

HashMap是否是有序的?

接下來就可能會問你,TreeMap和LinkedHashMap是如何保證它的順序的?

你以爲它們兩個哪一個的有序實現比較好?

Java併發包當中的類,它們都有哪些做用,以及它們的實現原理,這些類就是java.concurrent包下面的。與上面同樣,我們也簡單的模擬一個併發包的連環炮。

柵欄(Java的併發包中的CyclicBarrier)

IO包和NIO包中的內容。這部分裏面NIO會是重點,IO包大部分都會比較熟悉,所以可能會直接略過,直接問你NIO的內容。

Java的虛擬機的內容。這部分主要包括三部分,GC、類加載機制,以及內存。

下面是關於類加載機制的簡單連環炮。

再來一個關於內存的連環炮。

假如時光可以倒流, 我會這麼學習Java

碼農翻身

 

 

 

 

 

資料

java學習路線

https://www.cnblogs.com/xll1025/p/10016353.html

https://blog.csdn.net/MinggeQingchun/article/details/81166827

https://www.cnblogs.com/zuoxiaolong/p/life82.html

https://www.cnblogs.com/zuoxiaolong/p/life51.html

相關文章
相關標籤/搜索