Java初學者如何自學和本身定位解決問題

注: OneCoder 即本人苦逼Coder java

今天羣裏(Java Coder羣:91513074)的朋友,問我該如何看幫助文檔,或者說在遇到問題的時候如何解決。但願我能介紹一下個人方法。ssh

這個 OneCoder其實沒有資格高談闊論,只能說說我的的習慣和方式。自學和自我解決問題確實是一項很是很是重要的能力,遠比你如今所會的知識重要的多的多,由於,你未知的永遠的無窮的。
關於API文檔
常常有朋友求各類API文檔,初學者裏最多見的就是要JDK的API文檔。這個 OneCoder我的的習慣是,歷來不會去下API文檔,那個查找起來也不方便並且也沒有代碼輔助,而是直接去JDK的源碼中看註釋,甚至是源碼。既方便,又直接,又精確,還接近本質。你下的JDK裏,其實都帶有源碼的,並且默認仍是綁定好的。這麼方便,爲什麼不看?
好比,你用到了String類中的subString方法,想知道如何使用。你能夠去看所謂的API文檔,你也能夠直接在你的IDE中點開String類,用ctrl+o搜索到subString方法。你能夠看到他的註釋:
 
  
  
           
  
  
  1. /** 
  2.      * Returns a new string that is a substring of this string. The 
  3.      * substring begins at the specified <code>beginIndex</code> and 
  4.      * extends to the character at index <code>endIndex - 1</code>. 
  5.      * Thus the length of the substring is <code>endIndex-beginIndex</code>. 
  6.      * <p> 
  7.      * Examples: 
  8.      * <blockquote><pre> 
  9.      * "hamburger".substring(4, 8) returns "urge" 
  10.      * "smiles".substring(1, 5) returns "mile" 
  11.      * </pre></blockquote> 
  12.      * 
  13.      * @param      beginIndex   the beginning index, inclusive. 
  14.      * @param      endIndex     the ending index, exclusive. 
  15.      * @return     the specified substring. 
  16.      * @exception  IndexOutOfBoundsException  if the 
  17.      *             <code>beginIndex</code> is negative, or 
  18.      *             <code>endIndex</code> is larger than the length of 
  19.      *             this <code>String</code> object, or 
  20.      *             <code>beginIndex</code> is larger than 
  21.      *             <code>endIndex</code>. 
  22.      */ 

若是你瞭解,你就會知道,全部的接口的API都是根據這個Javadoc生成的。順便,你還能夠看到它的實現,加深你的理解,何樂而不爲呢?
 
關於搜索引擎的使用
解決問題最好的辦法,固然是去網上搜索。這裏 OneCoder 必需要說的是,對於開發人員來講,百度確實不是一個好的搜索引擎,搜索出來的東西相關性和有效性都十分有限。這裏, OneCoder 必須大力的推薦Google。真的不在一個層次上。你可能會說,Google老是被牆。這個, OneCoder 採用了不太通用的作法,那就是常年購買了一個ssh的代理,專門用於訪問google。呵呵:)其實,解決google問題的方法網上還有不少,你也能夠去搜索一下。咱們能夠簡單對比一下兩個搜索引擎的搜索效果。
 
以「Netty 教程」這個搜索詞爲例:

 
一樣的 OneCoder 原創的文章,百度排名靠前的確實被採集站惡意採集的轉載文章,而非原創文章。這對於你獲取原始的準確的信息是有很大影響的。
 
至於相關性、信息的前沿性等方面的對比, OneCoder 因爲一時找不到合適的例子,暫時不作圖例。可是,隨着你慢慢的使用,你會逐漸發現兩者的區別。好比,在你搜索一些前沿性的課題的時候,或者一些罕見的錯誤的時候。Google每每能給出你有價值的參考信息。
關於自我解決問題
這個其實提及來比較抽象。你可能會說,這個是常常積累等等。是,這的確須要經驗,可是那一點一滴經驗又如何去累積呢?難道靠問別人?
 
既然提到了搜索引擎,咱們就要會用它。好的關鍵字,能讓我更快的接近答案。這裏, OneCoder 的愚見是,不要使用一些例如:怎麼辦?爲何?等無用的字眼,而是輸入關鍵字。尤爲是出現異常的時候,你大能夠直接將異常的信息直接粘到搜索引擎中去搜索。(注意:去掉跟你本身代碼有關的信息,只要通用的部分。)
好比:今天 OneCoder 遇到一個Hibernate的異常致使的空指針問題。一時沒有頭緒,遂將全部跟異常信息和部分堆棧粘貼入google,結果就在stackoverflow上,找到很是有價值的信息,從而解決了問題。
關於StackOverFlow
一個國外很是著名的問答社區,問題一應俱全,回答都很是的認真友好。 OneCoder已經在上面解決了沒法問題。固然,不是經過直接提問,而仍是Google給我搜到的答案。這裏還得感謝Google。
關於其餘
其實 OneCoder 用到的工具,就這麼簡單。源碼+Google。除此之外,一個善於總結的善於思考的大腦是更加必不可少的。這就是所謂經驗和知識的積累吧。
 
解決一個問題不是關鍵,關鍵是會解決一類問題,更關鍵的是會獨立解決沒接觸過的問題,這是一種很是重要的能力。我寧願找一個0基礎,可是能夠本身動手學會、解決的人,也不須要一個雖然有基礎,可是也僅限於此的人。我的碰見,僅供參考。
 
如非特別註明,本站內容均爲OneCoder原創,轉載請務必註明做者和原始出處。

最後,給老婆的小站:8無聊(http://8wuliao.net)打個廣告。看名字,就知道這裏不無聊:)ide

相關文章
相關標籤/搜索