Java老兵經驗分享,給Java初學者一些參考和建議

    簡單描述下本人的經歷:2013年上海某二本學習機械專業畢業,畢業後進入上海某家中間件公司做中間件研發,2016年跳槽到杭州某家一線互聯網公司,在2017年的時候,在杭搞定戶口+房子,定居杭州。

入門Java,源於興趣,注重實踐
   當年進入IT行業純粹是爲了興趣,喜歡寫代碼,從大二開始學習計算機,後面一直邊看書,一邊看視頻,一邊寫代碼,到大四的時候,我的Java基礎自認爲已經非常好了。大學裏面自己做了很多實站的項目,例如:學完線程和麪向對象後寫了經典的90坦克大戰遊戲,我印象中是一個清華大學的韓老師教的視頻教程,我跟着寫完了那個遊戲。學完JavaSE後寫了滿漢樓餐飲管理系統。學完JavaEE的時候,採用struts寫了BBS。學完hibernat和spring的時候,寫了OA和在線購物網站。所以本科期間我的心得是:多寫代碼,多實戰,代碼行數寫的多了,自然就有信心了。

實習經歷和第一份工作經驗
   畢業的時候,有次心血來潮寫了個代碼統計我大學寫了多少行代碼:105715行,我知道自己可能可以通過java找到工作了,實戰經驗+基礎都自認爲不錯,在大四剛開始的時候就出去找實習工作了,找了一家做技術的公司,搞中間件,很幸運,第一次面試就通過了,後面一直到畢業,就找了這1次工作,後面就再也沒有擔心工作的事情了。實習期間薪資2700+300補貼,那是在2013年的時候。然後大四一年我就在那裏實習了,畢業後,因爲那家公司技術氛圍不錯,也能學到很多技術,就留了下來。直到3年後2016年,因爲老婆懷孕了,計劃回老家發展,所以準備跳槽到老家湖南長沙找份工作,選擇離開了一線城市,其實還是因爲上海買不起房子,沒辦法定居。

第一次跳槽,進入一線互聯網公司
   16年換工作就是直接鎖定互聯網公司,知道互聯網是個趨勢。13年到16年其實我是在傳統行業,做的是傳統行業的中間件軟件。去互聯網公司面試,需要準備很多互聯網分佈式相關的東西,所以平時其實也在積累一些互聯網相關的東西。在剛工作的2,3年內,看了非常多的開源框架的源代碼,對常見的開源框架比較熟悉,如經典的SSH, mybatis,dubbo,netty,zookeeper,redis,tomcat,jetty,nginx等。
    互聯網相關的技術棧那個時候並沒有積累多少,但是由於看源代碼看的比較多,本身做中間件,技術基礎比較好,對技術有熱情,所以跳槽面試的時候,幾乎去了的公司都過了,那個時候手上大概有5個互聯網公司的offer。因爲3年左右的工作經驗,對技術有熱情,很多公司特別願意要,所以一跳一個準。但是這些工作幾乎都是上海的互聯網公司,沒有長沙的工作,找了長沙的工作,但是待遇非常差,幾乎是我畢業第1年時候的待遇,所以接受不了,就沒有回老家發展。
   後來比較手上的offer,準備在一家做互聯網金融的公司和一家做音頻的公司之間做選擇,選擇了互聯網金融,主要是給期權,基本薪資都差不多20k左右,15個月。但是做互聯網金融的那家公司人事比較坑爹,知道我小孩子要出生了,讓我小孩子出生以後再去上班,防止我一上班就需要調休。所以我在家呆了1個月。也正是這一個月,獵頭把我推到了一線互聯網公司,後來就進入一線互聯網公司了。所以在前3年工作經驗,我的經驗總結就是打好Java基礎,多研究開源框架源代碼,對後面的職業發展有非常大的幫助。
分享了這麼多工作經驗,我也通過分享一些書籍我看過的覺得比較好的書籍,可以掌握java領域裏面的這些知識:

JavaSE
Java編程技術(譚浩強編): Java入門書籍,java語法介紹。其實第一本書我當初並沒有特別選擇,就是直接看的譚浩強的Java語言程序設計,但由於我沒有基礎,一開始啃的很慢,後面看了書以後,通過視頻鞏固了一遍,最後通過實戰項目練了一遍,Java就算入門了。
Java編程思想(第4版):這本書必須要有一定的java基礎纔可以看懂,如果沒有任何計算機相關的基礎,不推薦閱讀。如果java入門了,這本書可以夯實java基礎,可以深入理解Java的語言特性,以及爲什麼Java要這麼做。當年我啃了3遍,第一遍有些看不懂,後面慢慢的看着就可以看懂了。到第3遍看的時候,感覺Java基礎掌握的差不多了。
《Effective Java中文版 第2版》:有Java實戰經驗後,這本書對java實戰編程有很好的指導,可以寫出非常規範的代碼,google裏面推薦Java的編程規範

併發
JAVA併發編程實踐(中文)
java_併發編程方騰飛

設計模式
設計模式:可複用面向對象軟件的基礎 :23種經典設計模式,對擴展性思維非常有幫助,可以寫出擴展性良好,方便維護的代碼。java程序員必讀書籍
研磨設計模式:相比前面那本書,這邊書較厚,有很多例子,方便實戰,可以配合着看
重構改善既有代碼的設計

JVM
深入理解Java虛擬機:JVM高級特性與最佳實踐.周志明.高清掃描版.pdf:這本書對JVM有全面的介紹,JAVA內存模型,class結構,常見java虛擬機問題處理等。新人不用看這本書,有1-2年工作經驗了再研究不遲

分佈式
分佈式java應用:這個應該是分佈式的入門書籍,我當初入門分佈式是通過這本書
大型網站系統與Java中間件實踐:分佈式經典套路
大型網站技術架構_核心原理與案例分析:大型網站架構套路

架構
領域驅動設計_精簡中文版
架構之美(清晰中文完整版)
一線架構師實踐指南(溫昱)

總結
    如果你是剛入門,方向如果是互聯網或者服務端,你的學習路線可以是(也是我的學習路線),僅供參考:
JavaSE -> Servlet & JSP -> SSH(有點老了,可以直接mybaties+spring boot) --> 併發+分佈式 --> 架構

   如果你是有1-3年工作經驗的人,準備進入互聯網,有些書我是強烈推薦:
JVM:深入理解Java虛擬機:JVM高級特性與最佳實踐.周志明
設計模式:可複用面向對象軟件的基礎,經典的23種設計模式
分佈式:分佈式java應用.pdf,大型網站系統與Java中間件實踐,大型網站技術架構_核心原理與案例分析
架構:領域驅動設計 (當然還有其他架構模式,但是我們現在的公司使用這種模式)


    很多書籍我看了不只一遍,有時候第一遍也看不懂,多看幾遍才能理解,而且看的次數越多,理解越深刻。爲了方便大家下載,這些書籍我上傳到了一個公共的地方,這裏不方便分享,見評論即可

   後面如果有時間,我可以分享我當年入門的79G左右的Java視頻教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章