談新技術學習方法-如何學習一門新技術新編程語言

學習一門編程語言或者編程技術的方式基本上是這樣一個流程:html


1,對學習這門語言或者技術的必要性進行評估。好比你是工做須要,或者興趣所至,甚至是爲了把妹。這個必要性關係到你要學多深刻,須要學習多長時間。java


好比我想學Lua,是想學它如何在萬把行代碼裏面實現了一個如此精巧的編程語言,想學習它的GC機制,學習它如何設計VM,如何用純C語言設計項目等等。git


2,尋找相關資源。比較好的起始點是這門技術的官方網站以及維基百科。程序員


好比Lua語言的官方網站是http://www.lua.org,維基百科地址爲http://en.wikipedia.org/wiki/Lua_%28programming_language%29github


通常在google.com裏面敲入"lua wiki"之類就能直接搜索到相關維基條目。使用維基百科的好處是可以對編程語言有個歸納瞭解,基本上看了之後,你均可以跟別人扯上幾句一點問題也沒有。另外維基百科在編程語言相關條目中有一個頗有意思的特點就是:influenced by以及influenced列表。好比Lua條目中註明被Scheme、SNOBOL、Modula、CLU、C++所影響,影響了IO、GameMonkey、Squirrel、Falcon、Dao、MiniD這些語言,經過它能夠了解到這門語言的祖先以及後代,至關的有意思。正則表達式


而在官方網站,會有最新鮮的新聞、下載、文檔幫助、論壇等相關內容。算法



3 找到官網之後,就要花上一段時間在官方網站好好瀏覽探尋一番。好比Lua官方網站的about欄目介紹了Lua是什麼,爲何選擇Lua,誰編寫了Lua代碼等等。在News欄目有關於Lua的最新新聞。Download欄目中有軟件下載,學習一門語言,重要的是在練習中學習,大多數人都用Windows,就能夠遵守下載欄目的推薦下載Lua for windows。
編程


4 下載了軟件(Lua for windows),安裝成功之後,就能夠看看文檔document了。在Lua的文檔網頁中有在線參考手冊(reference manual),大多數編程語言也都會在下載安裝包中自帶一份手冊文檔(就我所知Ruby Python都是如此)。windows


如何系統的學習一門語言?經過手冊不是什麼好辦法,手冊內容相對教條枯燥,讀起來不容易。並且在線學習注意力不容易集中,很容易點着點着就跑偏了。最好的辦法仍是要買一本實體的參考書。網絡


買實體書就要用到amazon或者douban了,你能夠根據amazon以及douban上的打分來肯定這本書的好壞,另外在Lua的document頁面也有幾本書推薦,像是Lua這種略微偏門的語言,其實選書很簡單,由於就那麼兩三本,我我的推薦Programming in lua,國內有翻譯版本,另外也能夠下載到5.0的中文版。



那麼對於java、dotnet這類參考書烏央烏央的技術來講,該如何選書?這時候我會參考如下幾個因素:一個是語言創始人寫的可選擇,一個是奧萊裏oreilly出版的能夠買,另外能夠參考豆瓣或者amazon的書單功能,看看其餘人都推薦什麼。最不濟的辦法能夠看銷量,銷量高的書未必就好,可是選了也不至於錯的離譜。


買到書之後,最好花上幾天時間通讀一下,對於不理解的部分先標記略過,力爭先對語言技術的總體有個瞭解,對於一些基本操做、命令有一些印象。


5 通讀之後就要細讀了,通常來說,每一個編程語言都力爭相對完整,因此必然有一些你未必感興趣的內容或者用不到的內容,這些均可以放在一邊須要時候再撿起來。細讀的過程最好準備個小本子,另外建議在github上註冊一個帳號,github有個gist.github.com頁面能夠保存代碼片斷,在作代碼練習的時候頗有用。


細讀的過程力爭徹底理解,書上的示例代碼也都儘可能本身敲進去運行一次,另外能夠對示例代碼作必定的擴展,好比在第五章的代碼中加入第四章的代碼,讓它們組合起來看看如何。


6 用一兩個月時間細讀之後就是熟練提升階段。當你細讀了感興趣的章節,最好在一段時間內儘可能用新語言完成本身的編程需求,好比寫個網絡爬蟲,或者刪除某個目錄下的特定文件,或者作作文本處理,必定要常常用纔不會忘記。這段使用過程可能須要兩三個月的時間,力爭達到常見的代碼函數不怎麼查手冊就能夠熟練寫下來。另外能夠有意的對本身已經完成的算法或者應用進行語言上的翻譯,用新語言實現一下快速排序,實現一下正則表達式。編程其實就是個熟練過程,越練越順手。


這個時候能夠試着購買一些advanced級別的書籍,瞭解一些更深刻的內容,書籍的好壞依然是到amazon或者douban上搜索。


提升的過程當中能夠訂閱一些相關的博客內容,能夠到blogsearch.google.com查找博客文章,或者到csdn、javaeye、cnblogs這樣的技術相關博客站點搜索。看到好的文章,可使用delicious.com這個書籤網站保存起來之後慢慢閱讀。


7 在這段期間包括之後的使用過程,若是出現問題怎麼辦?能夠遵守如下順序查找幫助:


a)書籍或者手冊,在線文檔,在線幫助等等


b)在官網的wiki或者stackoverflow.com上搜索相關的關鍵字。


c)使用google搜索相關關鍵字。


d)到stackoverflow或者官方郵件列表、官方論壇中提問。


通常來講最好訂閱這門語言的郵件列表,好比Lua的郵件列表就是http://www.lua.org/lua-l.html 即便不提問,看看別人的問題也是頗有意思的。


我不建議你們加入什麼QQ羣學習,QQ或者msn的即時通信特性決定了它不是一個很好的學習方式,基本上只適合打屁聊天。


8 到了四五個月之後,按照前面步驟學下來的朋友應該已經算是中級水平了,不太可能問出什麼「跪求、裸求」之類的弱智問題。這時候就能夠往更深刻的層次發展,好比試着讀讀源代碼,試着寫寫相關編程庫編程插件,在官方論壇、maillist、stackoverflow裏面多幫人解答解答問題,試着多寫寫本身對於這門語言的使用經驗,分享一些相關問題等等,就此走向「破碎虛空」的高手之路。


好了,就這樣吧!


來自:寶貝孫秀楠﹣大連程序員

原文連接:http://sunxiunan.com/?p=1597

相關文章
相關標籤/搜索