個人Java開發之路

最近有一位小夥伴經過公衆號給我留言,javascript

「我參加工做沒多久,看着圈裏的技術大牛,特別羨慕,也渴望成爲技術大牛,想讓您分享一下從小白到大牛是怎樣練成的,我該如何提升本身」前端

首先,謝謝這位小夥伴的一直關注。其次,我並非大牛,只是早搬了幾年的磚而已,不過能夠分享一下個人Java開發之路。java

入門

相信大部分人接觸Java語言的入門書籍都是學校裏的規定教材,這些書大綱很全,可是缺少深刻的內容。談到Java的入門書籍,有人可能會推薦《Java編程思想》,確實它是一本很經典的Java參考書,由於內容很全,並且很厚重,因此只能做爲慢慢細讀的參考書,不推薦。在校自學Java用的是網上下載的某培訓機構電子書(不是廣告,只是教材寫的很好,不建議去培訓),內容實用、有深度,關鍵是很容易理解,也看了一些配套的視頻教程,若是有須要的朋友能夠給我留言,私信給你。Java基礎裏,多線程編程是比較重要的一塊,若是想深刻的去理解這部分的知識,能夠閱讀《Java併發編程實踐》。Java入門階段須要大量的編碼練習,編寫一些代碼實現某些算法、編寫一些好玩的代碼、編寫一些小的桌面應用程,總之就是須要不斷去敲代碼,不能只看不練。jquery

學校安排的Oracle數據庫專業課、數據結構專業課,算是學習一些基礎的專業知識。若是學習MySQL數據庫,推薦《MySQL必知必會》,這本書能夠做爲入門書,簡潔易讀。git

自學HTML、CSS、javascript、jquery、jsp。使用Java結合數據庫、前端技術編寫幾個web應用,綜合使用所學習過的技能。github

提升

有了入門的基礎,開始自學當時流行的三大框架SSH和SSI。這些課程大學裏基本不會開設,須要自學,框架的使用須要不斷練習,熟能生巧嘛。買了不少書,可是發現最好的入門書籍仍是官方的在線文檔,雖然是英文的,可是仍是得硬着頭皮看下去,時間久了也就習慣了。這些框架技術都有官方的快速入門文檔和深刻使用文檔,這些都是最好的一手資料。工做的這幾年,學習一門新的技術,首先都是看官方的快速入門文檔,瞭解了或者說基本會使用了,再深刻去分析學習技術的原理。web

工做以後,有時爲了解決問題,發現技術僅僅會使用是不行的,還須要深刻學習一下它的原理或者實現機制。爲了搞清Java虛擬機的實現機制,反覆閱讀了《深刻理解Java虛擬機》,閱讀和跟蹤調試JDK源碼去了解Java技術體系的原理。爲了搞清Spring的內部實現原理,反覆閱讀了Spring的源碼,結合《Spring源碼深度解析》去理解它的實現原理,學習Spring的代碼是如何編寫的這麼優秀的。爲了弄明白Hibernate和Mybatis是如何封裝底層數據庫操做的,閱讀了它們的源代碼。爲了弄清楚Struts2是如何實現請求攔截、過濾、分發、封裝響應,閱讀了Struts2相應的源代碼,並嘗試去編寫一套MVC框架。這些優秀的技術框架通過了時間和業務的不斷錘鍊,集結了不少優秀的設計思想,經過閱讀其源碼,不但能夠學到不少優秀的設計和編碼方法,還能夠知道它們的內幕、更好的使用它們,或者是在出現問題的時知道如何去定位問題、解決問題,推薦閱讀,特別是Spring的源碼和一些JDK中經常使用類的源碼。算法

代碼越寫越多,就會不自覺的關注代碼的質量,不斷思考如何能更好的解決問題,業餘時間看了一些相關的書籍修煉一下,如《Java與模式》、《代碼整潔之道》、《Effective Java》、《重構改善既有代碼的設計》。數據庫

隨着接觸的項目愈來愈大,業務愈來愈複雜,使用到的技術也就愈來愈多、愈來愈複雜。會涉及到程序性能的優化、數據庫的優化、腳本的優化,一些分佈式系統的技術,如分佈式緩存、分佈式事務、分佈式鎖等這些都須要本身去主動學習和研究。自學一些時下比較火熱的微服務技術,如Dubbo、Spring cloud等。固然,這些技術也不能停留在會使用的階段,要知其然知其因此然,瞭解其原理、學習它們的實現原理,一樣經過看源碼去學習,閱讀的同時不斷思考爲何、若是是我我怎麼去實現。編程

業餘的時間,常常在github上閒逛,看一些博客或開源的代碼。遇到問題也會到stackoverflow上提問或找答案,有時也會幫忙回答問題。

小結

其實成長的過程就是不斷去自學、自悟、歷練的過程,抱着好奇心、有恆心的去堅持,多問、少說、多作,像修煉武術內功同樣,一點一滴的去積累學習,察覺到新技術的發展,果斷的去學習,並把它消化掉,勇於嘗試。

相關文章
相關標籤/搜索