博客應該會伴隨個人職業生涯,爲何會寫博客?有兩個緣由:一是受到公司一位同事的啓發;另外一個是讀《瘋狂java講義》做者李剛的一篇文章有感。將本身的學習過程和總結記錄在博客中,會讓本身學到的零碎知識構成體系,不只是知新的動力,也是溫故的好素材。在過去的那段時間裏,雜亂無章的看過很多的知識點,可是生疏不用,時間久了以後又跟第一次遇到同樣。記錄在博客中,不只會在當時加深本身對原理的認知,也能夠供在後面的時間裏翻閱查看並進行深刻補充,造成一個良性循環。java
李剛的《如何學習JAVA》這篇文章,對個人觸動很大,也是在我那段迷茫時間裏的一盞燈塔,如今我原文抄錄下來,激勵本身也激勵看到這篇文章的讀者,不忘初心!程序員
常常看到有些學生、求職者捧着一本相似JBuilder入門、Eclipse指南之類的圖書學習java,當他們學會了在這些工做中拖出窗體、安裝按鈕以後,就以爲本身掌握、甚至精通了java;又或是找來一本相似JSP動態網站編程之類的圖書,學會使用JSP腳本編寫一些頁面後,就自我感受掌握了java的開發。web
還有一些學生、求職者據說J2EE、Spring或EJB頗有前途,因而當即跑到書店或圖書館找來一本相關圖書。但願當即學會它們,而後進入軟件行業。大顯身手。編程
還有一些學生、求職者很是但願找到一本既速成、又大而全的圖書,好比突擊J2EE開發、一本書精通J2EE之類的圖書,但願這樣一本圖書就能夠打通本身的「任督二脈」,一躍成爲J2EE開發高手。服務器
也有些學生、求職者很是喜歡J2EE項目實戰,項目大全之類的圖書,他們的想法很單純:我按照書上介紹,按圖索驥、依葫蘆畫瓢,應該很快就可學會J2EE,很快就能成爲一個受人羨慕的J2EE程序員了。網絡
凡此種種,不一而足。但最後的結果每每是失敗,由於這種學習沒有積累,沒有根基,學習過程當中困難重重,天天都被一些相同、相似的問題所困擾,起初熱情十足,常常上論壇詢問,按別人的說法解決問題以後很高興,既不知道爲何錯,也不知道爲何對,只是盲目地抄襲別人的說法。最後的結果又兩種:多線程
長此以往,熱情喪失,最後放棄學習。框架
大部分常見問題都問遍了,最後也能夠從事一些重複性的開發,但一旦遇到新問題,又將一籌莫展。工具
第二種情形在普通程序員中佔了極大的比例,筆者屢次聽到、看到有些程序員抱怨:我作了2年多java程序員了,工資仍是3000多點。偶爾筆者會與他們聊聊工做相關的內容,他們會告訴筆者:我也用Spring了啊,我也用EJB了啊~~~他們感到很是不平衡,爲何個人工資這麼低?其實筆者很想告訴他們:大家太浮躁了!大家確實用了Spring、EJB或者Hibernate,但大家從未想過爲何要用這些技術?用這些技術有什麼好處?若是不用這些技術行不行?學習
不少時候,咱們的程序員把java當成一種腳本,而不是一門面向對象的語言,他們習慣了在JSP腳本中使用JAVA,但從不去想JSP如何運行,WEB服務器裏的網絡通訊、多線程機制,爲什麼一個JSP頁面能同時向多個請求者提供服務?更不會想如何開發web服務器:他們像代碼機器同樣編寫Spring bean代碼,但從不去理解Spring容器的做用,更不會想如何開發Spring容器。
有時候,筆者的學生在編寫五子棋、梭哈等做業感到困難時,會像他們的大師兄、朋友求教,這些程序員告訴他:不用寫了,網上有下載的!聽到這些回答,筆者不由感到啞然:網上還有Windows下載呢!網上下載和本身編寫是兩碼事。偶爾,筆者會懷念之前黑色屏幕、綠熒熒字符時代,那時候程序員很單純:當咱們想偷懶時,習慣思惟是寫一個小工具:如今程序員很聰明:當他們想偷懶時,習慣思惟是從網上下載一個小工具。可是,誰更幸福呢?
當筆者的學生把他們完成的小做業放到互聯網上以後,而後就有許多人稱他們爲「高手」!這個稱呼卻讓他們萬分慚愧:慚愧之餘,他們也感到萬分欣喜,很是有成就感,這就是編程的快樂。編程的過程,與尋寶的過程徹底同樣:歷經辛苦,終於找到心中的夢想,這是何等的快樂。
若是真的打算將編程當成職業,那就不該該浮躁,而是應該紮紮實實先學好java語言,而後按java語言自己的學習規律,踏踏實實一步一個腳印地學習,把基本功練紮實纔可得到更大的成功。
實際狀況是:有多少程序員真正掌握了java的面向對象?真正掌握了java的多線程、網絡通訊、反射等內容?有多少java程序員真正理解了類初始化時內存的運行過程?又有多少程序員理解Java對象從建立到消失的所有細節?有幾個程序員真正獨立編寫過五子棋、梭哈、桌面彈球這種小遊戲?又有幾個程序員敢說:我能夠開發Struts、我能夠開發Spring、我能夠開發Tomcat?不少人會說:這些都是許多人開發出來的!實際狀況是:許多開源框架的核心最初的徹底是由一我的開發的。如今這些優秀程序已經出來了!你,是否深刻研究過它們,是否深刻掌握了它們?
若是要真正掌握java,包括後期的javaEE相關的技術,必定要記住筆者的話:毫不要從IDE工具開始學習。IDE工具的功能很強大,初學者學起來也很容易上手,但也很是危險:由於IDE工具已經爲咱們作了許多事情,而軟件開發者要了解軟件開發的所有步驟。