如何學習一門編程語言

前幾天有人在微博問我如何學習C語言。之前也有人諮詢過類似的問題。我把我學習一門語言的過程嘮叨下,僅供參考。

我學習一門語言大概會經歷如下幾步。

基本語法

學習任何東西,都是一個由表及裏的過程。學習一門編程語言也一樣。對於一門編程語言來說,表就是基本語法。

對於基礎語法的學習,我喜歡看一些簡短而又系統的教程。一般這些教程標題很有特色。如,X天學會X語言。一門語言要學習的東西其實很多的,這類文章一般會把常用的基本語法總結提煉。

技巧和坑

雖然絕大部分語言的語法都差不多。但是,語言之間語法還是有差異的。如果都這些差異不瞭解,而是套用以前的經驗,很可能掉到坑裏面。比如==在PHP和Java中的含義並不是完全一致。

如何避免坑,或者掌握需要特有的技巧?我通常會從兩個途徑下手。第一,看一些面試題之類的文章。第二,看一些優秀的源代碼。如一些框架的代碼。在看代碼的過程中,你會發現一些新的語法,使用技巧等。

系統學習

基礎語法學習,能讓你快速上手,應用實踐。對技巧和坑的關注,一定程度上拓展了你的知識面。系統學習,一方面會進一步拓展你的知識面。另一方面,也有利於你語言知識結構的形成。

找幾本系統講解這門語言的書,認真學習。我在學PHP的時候,曾經認真看過PHP手冊。看完之後,很有收穫。

語法之外

任何一門成熟語言,都有其特有的生態。這個生態包括,框架,擴展包,解決方案,規範等。除了學習語法之外,這些東西也是需要學習的。這些我一般都是碰到了纔去學。

如果還有精力,我還會去學習下語言更底層的東西。而不僅僅停留在應用層面。如jvm是如何執行java代碼的。java的線程和操作系統線程的關係。以及一些操作系統方面的知識。

動手練兵

對於發現的新的語法或者技巧,建議大家親手實踐一次。有些文章已經很老了。實踐的目的,一是檢驗是否正確。另外就是加深印象。正所謂,紙上得來終覺淺。

有些人會困惑,每天工作都是數據庫的curd操作。如何把學到的東西應用到實踐中?我的解決方法是,自己業餘時間搞一些小項目,把學到的知識應用進入。我當初寫kvproxy的時候,沒人要求我去寫。我只是感覺搞這個能鍛鍊技術,又能解決一些問題。

歡迎交流

一家之言,不分對錯。歡迎交流。
我的博客 www.bo56.com 我的微博 @淘寶信海龍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章