編程歷程

Java目前是最流行的語言之一, 是很多公司和程序員喜愛的一門程序語言. 而且, Java的入門比C++相對來說要簡單一些, 所以有很大一部分程序員都選擇Java作爲自己的開發語言. 我也是其中之一, 就是因爲覺得學C++太難, 當初在學校學了將近一個學期的C++, 啥進步都沒有, 哈哈, 天資太差, 所以才選擇自學Java(當時學校並沒有開設Java的課程), 才走上了程序開發這條路.



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



1. 基礎階段

基礎階段, 可能需要經歷1-2年吧. 這個時段, 應該多寫一些基礎的小程序(自己動手寫的越多越好). 計算機是一門實踐性很強的學科, 自己動手的東西, 記憶非常深刻, 效果要勝過讀好多書. 當然, 學Java基礎的時候, 書籍的選擇也非常重要, 好的書籍事半功倍, 能讓你打個非常好的基礎. 而差的書籍, 很容易將你帶入歧途, 多走很多彎路. 書籍不在多, 而在乎讀得精(有些書, 你讀十遍都不爲過). 我記得我學Java的第一本書是 的中文版, 網上有很多人都建議不要把這本書作爲第一本的入門教程來看, 太難. 我卻想在此極力推薦它, 這本書確實是本經典之作. 而且書中確實講的也是Java中的一些基礎技術, 沒有什麼太難的東西, 只不過比較厚, 學習週期比較長, 所以很多人中途會選擇放棄. 其實, 這本書是一本難得的入門教程, 對Java一些基礎的東西, 講得很全, 而且也很清晰, 更重要的是, 這本書能讓你養成很多好的編程習慣, 例子也很多. 建議你把大部分的例子自己去實現一遍. 我的親身經歷, 我記得當時認真的看了2遍, 花了大概7個月的時間, 不過真的有很好的效果. 另外一個教程, 就是卷一, 卷二的話可以不必要買. 卷一看完, 自己再鑽研一下, 就已經能達到卷二的高度了:). 到那時, 你就會覺得看卷二沒啥意思, 感覺浪費錢了. 還有一個, 就是張孝祥的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附帶的很多工具, 這些你都要熟練得跟屠夫操刀一樣. 也可以看看, 這本書總結的也不錯, 對寫高效穩定的Java程序有些幫助. 也可以看看模式方面的東西, 但是我建議模式不要濫用, 非得要用的時候才用, 模式往往會把問題搞複雜:). 總結起來: 這個階段是一個由點延伸到面的過程, 經過不斷的學習, 演變成全面的深入! Java技術中你沒什麼盲點了, 還能解決很多性能問題和疑難問題, 你就成了一個合格的程序員了! :) [要想成爲優秀程序員, 還得對數據庫和操作系統很精通.]



3. 高級階段

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

這個階段, 需要研究各種框架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我覺得這個時候, 只要是用Java實現的經典框架, 你都可以去研究. ------在此申明一下, 我的意思不是說會用. 光會用其實是遠遠不夠的, 你可以選擇自己喜歡鑽研的框架, 去好好研究一下, 興趣是最好的老師嘛.(2009.07.21)

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

發佈了21 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章