如何學習一門編程語言

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

我學習一門語言大概會經(jīng)歷如下幾步。

基本語法

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

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

技巧和坑

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

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

系統(tǒng)學習

基礎(chǔ)語法學習,能讓你快速上手,應(yīng)用實踐。對技巧和坑的關(guān)注,一定程度上拓展了你的知識面。系統(tǒng)學習,一方面會進一步拓展你的知識面。另一方面,也有利于你語言知識結(jié)構(gòu)的形成。

找?guī)妆鞠到y(tǒng)講解這門語言的書,認真學習。我在學PHP的時候,曾經(jīng)認真看過PHP手冊。看完之后,很有收獲。

語法之外

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

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

動手練兵

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

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

歡迎交流

一家之言,不分對錯。歡迎交流。
我的博客 www.bo56.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容