- 實用主義者的學習方法:繞過障礙,直奔主題,專注那些你馬上需要學的。
我們的思路總是,要是學習要先系統地打下扎實的基本功,結構不斷的陷入基礎知識的泥沼,越陷越深,越學越苦,苦苦掙扎;最后放棄;
軟件開發是個手藝活,它的學習不是各種可能很少用到的知識一股腦的堆積,我們沒法在一切理論知識準備就緒以后再開始學習
大可不必去擔心這些「基礎知識」,把它們先放在一邊,用到多少,便學多少。比如說,我要學rails,那就直接從rails開始,遇到有關ruby的語法障礙,回過頭來看看ruby文檔中相關的內容,掃清障礙立刻回到rails本身,而不是先從ruby啃起。要知道,rails里用到的ruby特性,可能占ruby總體語言和類庫特性的20%都不到!從ruby學起,便是走了岔路。
需要大量練習和獲得反饋
犯錯是學習的一部分,當你看完教程掌握了里面所述的內容后,可以自己構思某個應用或者某個使用場景,然后從頭寫起。你會發現很多問題,也會加深對教程的理解。自己無法回答的問題,可以尋求社區的幫助,大部分和開發有關的問題都能在stackoverflow上得到解決。這樣不斷地練習和獲取反饋,你的開發功底會很快提升。很多非系統的知識和能力(甚至洞見)就是這樣通過不斷練習和試錯在下意識間學到的 —— 它們來得如此悄無聲息,以至于除你之外,別人都將其視為你的一種天賦。系統的學習
當你有了實戰所需的技術和經驗,需要宏觀上對自己所學的內容做一個升華時,或者當你的實戰能力遭遇到了瓶頸的時候。有句話說得好:你不需要成為一個優秀的ruby工程師才能用好rails,但如果你想成為一個優秀的rails工程師,則你必須很好地掌握ruby。遺憾地是,很多初學者的問題是:想對一門技術快速入門,卻使用了系統學習的方法,還未入門,便倒在了艱苦修行的路上。