Java如何進階

 

關鍵字: Java 進階 Spring Jboss 高級<分享> 程序員

Java如何進階

原本我想把這篇文章的名字命名爲: <怎樣成爲一個優秀的Java程序員>的, 可是本身還不夠優秀, 而本篇所涉及的都是本身學習和工做中的一些經驗, 後來一想, 叫<怎樣進階Java>可能更爲合適吧. 能給初學Java的人一個參考, 也就是我原本的心願. 若是有大牛看到不妥之處, 敬請指正. 我必定會修正的 :). spring

 

Java目前是最流行的語言之一,  是不少公司和程序員喜好的一門程序語言. 並且, Java的入門比C++相對來講要簡單一些, 因此有很大一部分程序員都選擇Java做爲本身的開發語言. 我也是其中之一, 就是由於以爲學C++太難, 當初在學校學了將近一個學期的C++, 啥進步都沒有, 哈哈, 天資太差, 因此才選擇自學Java(當時學校並無開設Java的課程), 才走上了程序開發這條路. 數據庫

 

Java雖然入門要容易, 然而要精通它, 要成爲專家卻很難. 主要緣由是Java所涉及的技術面比較寬, 人的精力老是有限的. 有些Java方面的技術是必需要要掌握的, 鑽研得越深刻越好, 好比多線程技術. 編程

 

1. 基礎階段 小程序

基礎階段, 可能須要經歷1-2年吧. 這個時段, 應該多寫一些基礎的小程序(本身動手寫的越多越好). 計算機是一門實踐性很強的學科, 本身動手的東西, 記憶很是深入, 效果要賽過讀好多書. 固然, 學Java基礎的時候, 書籍的選擇也很是重要, 好的書籍事半功倍, 能讓你打個很是好的基礎. 而差的書籍, 很容易將你帶入歧途, 多走不少彎路. 書籍不在多, 而在意讀得精(有些書, 你讀十遍都不爲過). 我記得我學Java的第一本書是<Thinking in Java>的中文版, 網上有不少人都建議不要把這本書做爲第一本的入門教程來看, 太難. 我卻想在此極力推薦它, 這本書確實是本經典之做. 並且書中確實講的也是Java中的一些基礎技術, 沒有什麼太難的東西, 只不過比較厚, 學習週期比較長, 因此不少人中途會選擇放棄. 其實, 這本書是一本可貴的入門教程, 對Java一些基礎的東西, 講得很全, 並且也很清晰, 更重要的是, 這本書能讓你養成不少好的編程習慣, 例子也不少. 建議你把大部分的例子本身去實現一遍.  個人親身經歷, 我記得當時認真的看了2遍, 花了大概7個月的時間, 不過真的有很好的效果. 另一個教程, 就是<Java核心技術>卷一, 卷二的話能夠沒必要要買. 卷一看完, 本身再鑽研一下, 就已經能達到卷二的高度了:). 到那時, 你就會以爲看卷二沒啥意思, 感受浪費錢了. 還有一個, 就是張孝祥的Java視頻, 看視頻有個好處, 就是比看書的記憶要深入, 還有不少你能夠跟着視頻的演示同步操做. 張孝祥的Java視頻對初學者來講, 確實頗有做用. 總結起來: 看這些資料的時候, 必定要多寫例子, 寫的越多越好! 網絡

 

2. 中級階段 多線程

中級階段, 是一個更漫長的時期, 可否突破此階段, 跟我的的努力和天資有着很大的關係. 你不得不認可, 一樣一門新技術, 有些人一個月領悟到的東西, 比你一年的都多. 這就是天資, 程序員是一個須要天才的工做. 我想, 不少人據說李一男吧, 此君就是這樣的人物, 三個月的時間就能解決好大一幫人幾年解決不了的問題, 給華爲某部門帶來了不少的收益. 哦, 這是題外話了, 與此篇的主題無關, 只是本人偶爾的感慨而已:).  這個階段, 就須要研究不少專題性的東西了, 好比: IO的實現原理, 多線程和Java的線程模型, 網絡編程, swing, RMI, reflect, EJB, JDBC等等不少不少的專題技術, 鑽研得越深越好. 爲了更好的提升, 研究的更深刻, 你須要常常到網絡上搜索資料, 這個時候每每一本書起不來很大的做用. 選一個JDK版本吧, 目前建議選用1.6, 多多研究它, 尤爲是源代碼(儘可能! 就是盡本身最大的努力, 雖然研究透是不可能滴). 好比說: util, collection, io, nio, concurrent等等包. 可能有人會反對我說, 不是有API文檔嗎, 爲何還要研究這麼多的源代碼? 錯了, 有API文檔, 你僅僅只是知道怎麼用而已, 而認真仔細的研讀這些大牛的源碼, 你就會深刻更高的一個階層, 本身的編碼, 設計都會有很大的提升. 若是有能力和精力, 我建議你把JDK的每一行代碼都熟悉一遍, 絕對只有好處, 沒有壞處! 並且你會有些意外的收穫, 好比, 當你仔細地讀完concurrent包的時候(很少, 好像總共是86個類吧), 你就會對Doug Lea佩服得五體投地. 這個時候最忌碰到難題就去尋找幫助, 去網上找答案! 先把本身的腦殼想破吧, 或者等你的老闆拿着砍刀衝過來要把你殺了, 再去尋求幫助吧. 對於專題的學習, 英文原版的閱讀是很是必要的, 看的越多越好, 多上上IBM的developer, SUN的網站吧, 固然Javaeye也很不錯:), 有不少大牛, 呵呵. 架構

這個時候, 你應該創建本身的代碼庫了, 你應該本身去研究不少有意思的東西了. 從一個200多M的文件中尋找一個字段, 最壞狀況(在文件的末尾咯)也只須要1秒左右的時間, 你知道嗎?  這個階段, 有不少不少相似的有趣的東西能夠供你去研究, 你須要更多地關注性能, 規範性, 多解決一些疑難問題. 須要學會全部的調試技術, 運用各類性能工具, 還有JDK附帶的不少工具, 這些你都要熟練得跟屠夫操刀同樣. 也能夠看看<Effective Java>, 這本書總結的也不錯, 對寫高效穩定的Java程序有些幫助. 也能夠看看模式方面的東西, 可是我建議模式不要濫用, 非得要用的時候才用, 模式每每會把問題搞複雜:). 總結起來: 這個階段是一個由點延伸到面的過程, 通過不斷的學習, 演變成全面的深刻! Java技術中你沒什麼盲點了, 還能解決不少性能問題和疑難問題, 你就成了一個合格的程序員了! :)  [要想成爲優秀程序員, 還得對數據庫和操做系統很精通.] 框架

 

3. 高級階段 工具

高級階段, 我就不敢妄言了. 呵呵, 我感受本身也是處於中級階段吧. 也是根據本身的一些經驗, 談談本身的理解吧:

這個階段, 須要研究各類框架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我以爲這個時候, 只要是用Java實現的經典框架, 你均可以去研究. ------在此申明一下, 個人意思不是說會用. 光會用實際上是遠遠不夠的, 你能夠選擇本身喜歡鑽研的框架, 去好好研究一下, 興趣是最好的老師嘛.(2009.07.21)

建議開始的時候, 研究Junit和Struts吧, 小一點, 裏面都採用了不少的模式, 呵呵, 能夠熟悉一下, 儘可能想一想人家爲何這麼作. 我建議主要的精力能夠花在spring和jboss上, 尤爲是jboss,  經典中的經典, 設計, 性能, 多線程, 資源管理等等, 你從中能夠學到的東西簡直是太多了. 並且它還有一本寫得很好的參考書, 叫<Jboss管理與開發核心技術>, 英文方面的資料也是很是的多. 在工做中若是有機會參與架構的設計, 業務問題的討論, 必定千方百計殺進去! 這對本身的設計能力, 以及對設計如何運用在業務上有很大的幫助. 畢竟, 程序都是爲了更好地實現用戶的業務的. 這個時候, 須要更多看看軟件工程和UML方面的資料, 或者本身主持一個項目玩玩, 不必定非得出去拉項目賺錢(能賺錢固然更好), 無論成功或失敗, 都是很寶貴的經驗, 都能提升不少!  

相關文章
相關標籤/搜索