當前位置:秀麗範 >

情感 >學習 >

如何學習一門程序語言

如何學習一門程序語言

對我而言,不同的語言,學習的方法似乎也不太一樣。

如何學習一門程序語言

最早的時候都是在學校裏學的,比如Fortran、C、C++、Java、OCaml等。通過正式的課程去學習一門語言,方式會比較固定和統一,都是上課、做作業、以及編程作業。這種方式通常可以比較系統地瞭解語言各方面的特性,而實際實踐還是要看各人的機遇和選擇。所以有一些語言,上完課之後,卻是很少再用了。

離開學校後,很多工作中再接觸到的語言就屬於自學了。總的說來有三點感觸。

一是不要爲了學習一門語言而學習。至少你知道自己在不遠的將來有很大可能性會用再去學。因爲學了一門語言而不去實踐,除了對語言特性能有些瞭解,其實不會有什麼用。因爲很多東西肯定會忘掉。這有的時候和一門說話的語言一樣。大學的時候覺得好玩學了日語和德語,然而從來沒有真正的應用場景,所以都忘的差不多了。都不好意思跟別人說我學過。不過以後需要用的時候可能學起來還是比從頭開始快些吧。

二是不同語言別人口中的學習的難度和你自己學起來覺得的難度會很不一樣。原因就在於你已經熟悉掌握的語言其實是你的底子。比如一個已經熟悉OO編程的人,再學另一門OO語言就會相對輕鬆;一個已經熟悉函數式編程的人,再學習另一門函數式語言也會比從沒接觸過的人容易的多。

但這僅限於相對輕鬆。每門語言都還是有很多區別於同類語言的特性。還有很多語言,是綜合了多個類型語言的特性,再做了不同的權衡。即使是看似語法很相近的語言,可能實際使用起來卻又有很大的區別。一個衆而周知的例子就是C++和Java。二者都是典型的OO語言,然而使用起來很多思維方式卻是有着極大的差異。因此,學習一門語言很忌諱膚淺的覺得“這個和我知道的X語言差不多”,然後想當然的在使用中套用一些X語言的思維。

三是因爲工作時候學習語言通常都是邊用邊學。一方面,這比在學校時候能夠學的更快,因爲你有使用的場景,可以不斷練習。而且周圍很多高手可以討論,還有別人的代碼可以參考,更容易積累實戰經驗。而另一方面,直接上手沒有系統學習很容易想當然,很容易以偏概全。這又必須在工作以外自己主動學習理論知識來彌補。

說幾個我工作中學習語言的例子。

首先說Scala。需要用Scala的時候,是一個別組的項目有特別緊的Deadline,我因爲一向比較“手快”且對業務邏輯比較熟,所以被借調過去幫忙。那時候我並沒有學過Scala,但是因爲時間關係,必須立馬上手。好在面嚮對象語言和函數式設計語言我都有比較好的底子。所以在已有代碼庫的基礎上寫一些新的函數,而不需要我去寫架構代碼,總的來說還是比較輕鬆的。

  • 文章版權屬於文章作者所有,轉載請註明 https://xiulifan.com/qinggan/xuexi/p22w9o.html