我是如何自學程式設計的——“3遍讀書法”

2014-08-11    分類:程式設計師人生、首頁精華12人評論發表於2014-08-11

本文由碼農網翻譯,轉載請務必在正文中註明出處

我大學本科唸的是電子工程專業,所以到那個時候為止,我唯一使用過的程式語言就是C/C++、Assembly、以及 Matlab。後來一個偶然的機會我參加了一個“週末創業”的活動,並且開始漸漸對軟體開發和電腦科學感興趣,然後我發誓我要不擇手段地進入這個洋溢著無限魅力的領域。但是,我需要學習其他的程式語言,以便於和大家協作一起搞專案。

在過去的一年半時間裡,我已經學了Java(用於Android開發)、Python和JavaScript(&HTML / CSS)(用於Web開發)。在這“路漫漫其修遠兮”的學習過程中,我總結出了一條規律:要想對書中和教材裡的程式設計知識融會貫通,那麼就要好好研讀3遍!是的,你沒有聽錯,就是3遍!這種“3遍讀書法”用在理解新語言新概念方面的效果尤其顯著。出於“大家好才是真的好”的共享心態,在這裡我將詳細說說我的這種方法,希望能對各位有所裨益。

第一遍通讀

第一次閱讀程式設計類書籍,只要能對全文有一個正確的理解即可。第一次閱讀,我會盡可能地跟著作者的思路走,看看他們用於展示的例子。我也學習,學習語法,學著去了解程式是如何構建起來的,當然可能並不全面。第一次通讀的時候,我不會去寫任何程式碼,即便我大多數的程式設計書籍都能看得懂。在第一次閱讀之後,我並不覺得我能一下子一步登天立馬就掌握瞭如何用新的語言寫程式碼。但是,這會讓我有一種掌握全域性的良好感覺。(順便說一句,我通常一次只讀取一章或一節,而不是整本書)。

第二遍研讀

這一次,我就要寫程式碼了。我會把每一章節所舉的例子,自己試著也用程式碼輸一遍。我之所以要先通讀,然後再回過頭來好好研讀的原因就是,這樣不但能讓我知道每一章節具體講什麼,還能明白這些程式碼能幹什麼。這樣我就能對整本書的前因後果、來龍去脈掌握的清清楚楚、明明白白。不光理解得更透徹了,而且對於程式碼也不再是盲目地囫圇吞棗,而是有預見性地先在下面的段落中知道了它的作用,然後在回過頭去再次重新研讀。這一步,讓我記住了語法。

第三遍精讀

第三遍的時候,我就不再滿足於書上的例子了,我會自己發散思維,試著舉一反三,自己舉例子來應用這些程式碼。也會去看看書上提出的練習,然後試著靠自己去解決這些問題。到了這個階段,每一章節的語法都盡在我心,胸有成竹,我自信這些個問題統統不在話下。

附耳過來,一般人我不告訴他……

我就是靠著這個方法自己一步步學會了Java,Python和JavaScript的。另外一個學習程式語言的好方法是做專案。如果你想知道更多有關於Java語言中的使用者介面和圖形,那麼不妨建立一個PVP國際象棋遊戲,這會迫使你不得不學會有關於圖形、動畫、圖形使用者介面,以及事件驅動等等。

不過兩者的不同之處在於,單純去搞專案(特定語言)而不經過知識的灌溉,即使你也能完成專案,但是寫出來的程式碼絕對沒有我的“3遍讀書法”精煉、簡捷、準確、一針見血。你也不可能真正掌握這門程式語言。我的意思是,如果你精通C語言,那麼最後你寫出來的Java語言可能會帶著C語言的風格,搞得四不像。為什麼會這樣呢?因為其實你並不是真正會Java,你只是想完成專案而已。

我建議初學者如果想學新的程式語言,最好是從書裡去學,而不是跟著教程死記硬背。書裡面一般都會有具體的思路,這有助於我們的理解。如果你聽從了我的建議,並且正在看書,那麼請不要侷限於你的工作,除了書中的練習題,還可以嘗試著做做自己的專案。另外,請一定要自己親手寫一遍程式碼,不要想當然地以為閱讀和理解程式碼就夠了——請謹記那是遠遠不夠的!

我不是專業的軟體開發人員,不過這種方法的的確確幫助了我學習程式設計/開發,讓我得以揭開這個世界的神祕面紗,領略她的優雅風情。如果各位有更好的方法,歡迎留言,謝謝:)

譯文連結:http://www.codeceo.com/article/how-i-read-programming-books.html
英文原文:How I Read Programming Books
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章