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


  畢業轉眼間,現在只能算作老兵了。簡單描述下經歷:13年上海某二本學校機械專業畢業,畢業后進入上海某家中間件公司做中間件研發,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視頻教程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM