由 此也能夠看出,這些學習的過程是環環相扣的,若是你任何一個階段拉下來了,那麼你就真的跟不上了,或者說是一步慢步步慢。並且我很負責html
的告訴你,我在這個 階段的時候,所學習的東西遠多於這裏所羅列出來的。所以千萬不要以爲你已經學的不少了,我所說的這些都只是最低要求,前端
不光是我,不少人在這個時間段所學習 的內容都遠超本文的範圍。 若是你不能跟上節奏的話,若干年後,若是不是程序猿市場還不錯的話,你極可能java
不只僅是工資比別人低,公司沒別人好,而是根本就找不到工做。 總而言之,這個階段,你須要作的是深刻了解Java底層和Java類庫(好比並發那本mysql
書就是Java併發包java.concurrent的內容),也就是JVM和JDK的相關內容。並且還要更深刻的去了解你所使用的框架,方式比較推薦看源碼或者看程序員
官方文檔。 另外,還有一種學習的方式,在2年這個階段,也應該啓用了,那就是造輪子。 不要聽信那套「不要重複造輪子」的論調,那是公司爲了節省面試
時間成本編造出來的。重複造輪子或許對別人沒有價值,由於你造的輪子可能早就有了,並且通常狀況下你造出來的輪子尚未現存的好。可是對別人redis
沒有價值,不表明對你本身沒有價值。 一個造輪子的過程,是一個從無到有的過程。這個過程能夠對你進行系統的鍛鍊,它不只考察你的編碼能力,還算法
考察你的框架設計能力,你須要讓你的輪子擁有足夠好的擴展性、健壯性。 並且在造輪子的過程當中,你會遇到各類各樣的難題,這些難題每每又是你學spring
習的契機。當你把輪子造好的時候,你必定會發現,其實你本身收穫了不少。 因此,這個階段,除了上面提到的瞭解JVM、JDK和框架源碼之外,也請sql
你根據別人優秀的源碼,去造一個任何你可以想象出來的輪子。
第四部分:參加工做3年到4年的同窗 這個階段的同窗,提高已是很難了,並且這個階段的學習每每會比較多樣化。 由於在前3年的過程當中,你確定
或多或少接觸過一些其它的技術,好比大數據、分佈式緩存、分佈式消息服務、分佈式計算、軟負載均衡等等。這些技術,你能精通任何一項,都將
是你將來面試時巨大的優點,所以若是你對某一項技術感興趣的話,這個時候能夠深刻去研究一下。這項技術不必定是你工做所用到的,但必定是相
關的。 並且在研究一門新技術時,切忌朝秦暮楚。有的同窗今天去整整大數據,搞搞Hadoop、hbase一類的東西。過不了一段時間,就以爲沒意思,
又去研究分佈式緩存,好比redis。而後又過不了一段時間,又去研究分佈式計算,好比整整Mapreduce或者storm。 結果到最後,搞得本身好像什麼都
會同樣,在簡歷上大言不慚的寫上大數據、分佈式緩存、分佈式計算都瞭解,其實任何一個都只是浮於表面。到時候面試官隨便一問,就把你給識破了。
必定要記住,做爲一個程序猿,平日裏所接觸的技術可能會不少,可是想要讓一門技術成爲你的優點,那麼必定是你對這門技術的瞭解強過絕大多數人
才行。 所以在這個階段,你就不能再簡單的去學習前3年的內容了,雖然前面的學習若是還不夠深刻的話依舊要繼續,但這個時候你應該更多的考慮創建
你的優點,也能夠稱爲差別性。 差別性相信不難理解,就是讓你本身變得不同凡響。你前面三年的學習足夠你成爲一名基本合格的Java開發者,但你離成
爲一名優秀的Java開發者還有很大的距離。 所 謂優秀,即能別人所不能。而你前三年所學習的內容,是不少作過幾年的Java開發都可以掌握的。那麼爲了
讓本身有差別性,你就須要另闢蹊徑,找一個方向深 入研究下去,以期在未來,你可以成爲這個領域的專家,好比分佈式計算領域的專家,大數據領域的
專家,併發領域的專家等等。 此 外,你除了創建你的差別性以外,還要去彌補你基礎上的不足,直到如今,我都沒有說起基礎知識。緣由是基礎是很枯燥
無味的,學的太早不只容易懵逼,並且懵逼 的同時還容易產生心理陰影,以致於之後再不想去研究這些基礎。但基礎又是你深刻研究一些領域時所必須掌
握的,好比你去研究分佈式計算,你不懂算法你玩個毛 毛?好比你去作分佈式緩存,你對計算機系統的內存不瞭解,你如何去作緩存? 若是你的基礎原本
就很是強,那麼恭喜你,相信你在以前的工做中已經充分體會到了這些基礎對你的幫助。但我相信大部分人的基礎都很薄弱,哪怕是科班畢業的人,不少人
也不敢說本身當初的基礎學的多麼強大,好比算法、計算機系統原理、編譯原理這些。 可是每一個人時間都是有限的,並且這些基礎的書籍每一本讀下來,沒
個一年半載的,還真拿不下來,所以仍是要有所抉擇的。雖然藝多不壓身,但問題是藝可能是有代價的,是須要你付出時間和精力的,而我我的更同意在同等
代價的狀況下獲取最大的收穫。 首先,我比較推崇的基礎書籍有三本,分別是《深刻理解計算機系統》,《tcp/ip詳解 卷1、2、三》,《數據結構與算法》。
其中TCP/IP有三本書,但咱們這裏把這三本當作是一本大書。 這三本分別適合三種人,《深刻理解計算機系統》比較適合一直從事Java Web開發和APP後端
開發工做的人羣。《tcp/ip詳解 卷1、2、三》比較適合作網絡編程的人羣,好比你使用netty去開發的話,那麼就要對TCP/IP有更深刻的瞭解。而《數據結構
與算法》這本書,則比較適合作計算研究工做的人,好比剛纔提到的分佈式計算。 另外,我要強調的是,這裏所說的適合,並非其它兩本對你就沒有用。
好比你作Java Web和APP後端開發,《tcp/ip詳解 卷1、2、三》這本書對你的做用也是很大的。這裏只是分出個主次關係而已,你要是時間足夠的話,
能把三本都精讀那固然最好不過了。但若是時間有限的話,那麼就先挑對你幫助最大的書去讀。 理論上來說,這一年你能把這三本其中一本精讀下來,
就已經很是厲害了。有了基礎,有了前面的工做經驗,你就能夠去開拓屬於你的領域了。 在這一年裏,必定要規劃好本身的領域,創建好本身的優點,
製造出差別性。若是你對本身的領域不夠清晰的話,隨着你工做的時間日益增多,你接觸的技術會愈來愈多,這個時候,你很容易被淹死在技術的海洋
裏,看似接觸的技術愈來愈多,會用的也愈來愈多,但你毫無優點。 有的同窗可能會問,「我,我也不知道個人領域是什麼啊?怎麼辦呢?」 對於這種人,
我只想說,「臥槽,這還問我?要不乾脆我替你學習得了,好很差?」
第五部分:參加工做4年到5年的同窗 通過前面一年的歷練,相信你在本身所鑽研的領域已經有了本身必定的看法,這個時候,技術上你應該已經遇到瓶頸了。
這個時候不要着急提升本身的技術,已是時候提升你的影響力了,你能夠嘗試去一些知名的公司去提升你的背景,你能夠發表一些文章去影響更多的人。
固然,你也能夠去Github建立一個屬於你的開源項目,去打造本身的產品。此次的開源項目不一樣於以前的造輪子,你這個時候是真的要去儘可能嘗試造出來真
正對別人有價值的輪子。 技術學到這個階段,很容易遇到瓶頸,並且每每達到必定程度後,你再深刻下去的收效就真的微乎其微了,除非你是專門搞學術研
究的。然而很惋惜,大部分程序猿作不到這一步,那是科學家作的事情。 這個時候提升影響力不只僅是由於技術上容易遇到瓶頸,更多的是影響力能夠給你
創造更多的機會。程序猿在某種程度上和明星很像,一個好的電視劇和電影就能夠成就一批明星,程序猿有的時候也是,一個好的項目就能夠成就一羣程序猿
。 好比國內幾個膾炙人口的項目,像淘寶、支付寶、QQ、百度、微信等等。這每個項目,都成就了一批程序猿。我敢說,這裏面任何一個項目,若是你是
它的核心開發,光是這樣一個Title,就已是你很是大的優點。更況且還不止如此,Title說到底也是個名頭,更重要的是,這種項目在作的時候,對你的歷練
必定也是很是給力的。 而你若是想要參與這樣的項目,除了靠運氣以外,影響力也是很重要的一個手段。好比你在分佈式計算領域有必定的影響力,那麼若是
有什麼好的關於分佈式計算的項目,對方就極可能會邀請你。就算人家不邀請你,你本身主動去面試的時候,對方若是知道你在這個領域的影響力,也確定會
起到很大的做用,而這個做用,甚至可能會超過你如今的技術能力。 因此,在這個階段,你最大的任務是提升本身的影響力,爲本身將來的十年工做生涯那一天
作準備。若是你可以靠你的影響力和之前積累的技術,參與到一個偉大的項目當中,那麼你後面的五年也就有着落了。 固然了,我如今滿打滿算,作程序猿也就
4年半不到,所以關於4年到5年這一部分,個人看法不必定是對的,就算是對的,也不必定是適合任何人的。因此,但願你們本身有的判斷力,去決定到底該如何
度過這一年。