來(lái)源:嘀嗒嘀嗒 作者:朱赟 2018-06-14 11:16:47
避免看到最后說(shuō)我誆你,這篇其實(shí)應(yīng)該是《我是如何學(xué)習(xí)一門程序語(yǔ)言的》。
對(duì)我而言,不同的語(yǔ)言,學(xué)習(xí)的方法似乎也不太一樣。
最早的時(shí)候都是在學(xué)校里學(xué)的,比如 Fortran、C、C++、Java、OCaml 等。通過(guò)正式的課程去學(xué)習(xí)一門語(yǔ)言,方式會(huì)比較固定和統(tǒng)一,都是上課、做作業(yè)、以及編程作業(yè)。這種方式通?梢员容^系統(tǒng)地了解語(yǔ)言各方面的特性,而實(shí)際實(shí)踐還是要看各人的機(jī)遇和選擇。所以有一些語(yǔ)言,上完課之后,卻是很少再用了。
離開(kāi)學(xué)校后,很多工作中再接觸到的語(yǔ)言就屬于自學(xué)了?偟恼f(shuō)來(lái)有三點(diǎn)感觸。
一是不要為了學(xué)習(xí)一門語(yǔ)言而學(xué)習(xí)。至少你知道自己在不遠(yuǎn)的將來(lái)有很大可能性會(huì)用再去學(xué)。因?yàn)閷W(xué)了一門語(yǔ)言而不去實(shí)踐,除了對(duì)語(yǔ)言特性能有些了解,其實(shí)不會(huì)有什么用。因?yàn)楹芏鄸|西肯定會(huì)忘掉。這有的時(shí)候和一門說(shuō)話的語(yǔ)言一樣。大學(xué)的時(shí)候覺(jué)得好玩學(xué)了日語(yǔ)和德語(yǔ),然而從來(lái)沒(méi)有真正的應(yīng)用場(chǎng)景,所以都忘的差不多了。都不好意思跟別人說(shuō)我學(xué)過(guò)。不過(guò)以后需要用的時(shí)候可能學(xué)起來(lái)還是比從頭開(kāi)始快些吧。
二是不同語(yǔ)言別人口中的學(xué)習(xí)的難度和你自己學(xué)起來(lái)覺(jué)得的難度會(huì)很不一樣。原因就在于你已經(jīng)熟悉掌握的語(yǔ)言其實(shí)是你的底子。比如一個(gè)已經(jīng)熟悉 OO 編程的人,再學(xué)另一門 OO 語(yǔ)言就會(huì)相對(duì)輕松;一個(gè)已經(jīng)熟悉函數(shù)式編程的人,再學(xué)習(xí)另一門函數(shù)式語(yǔ)言也會(huì)比從沒(méi)接觸過(guò)的人容易的多。
但這僅限于相對(duì)輕松。每門語(yǔ)言都還是有很多區(qū)別于同類語(yǔ)言的特性。還有很多語(yǔ)言,是綜合了多個(gè)類型語(yǔ)言的特性,再做了不同的權(quán)衡。即使是看似語(yǔ)法很相近的語(yǔ)言,可能實(shí)際使用起來(lái)卻又有很大的區(qū)別。一個(gè)眾而周知的例子就是 C++ 和 Java。二者都是典型的 OO 語(yǔ)言,然而使用起來(lái)很多思維方式卻是有著極大的差異。因此,學(xué)習(xí)一門語(yǔ)言很忌諱膚淺的覺(jué)得 “這個(gè)和我知道的 X 語(yǔ)言差不多”,然后想當(dāng)然的在使用中套用一些 X 語(yǔ)言的思維。
三是因?yàn)楣ぷ鲿r(shí)候?qū)W習(xí)語(yǔ)言通常都是邊用邊學(xué)。一方面,這比在學(xué)校時(shí)候能夠?qū)W的更快,因?yàn)槟阌惺褂玫膱?chǎng)景,可以不斷練習(xí)。而且周圍很多高手可以討論,還有別人的代碼可以參考,更容易積累實(shí)戰(zhàn)經(jīng)驗(yàn)。而另一方面,直接上手沒(méi)有系統(tǒng)學(xué)習(xí)很容易想當(dāng)然,很容易以偏概全。這又必須在工作以外自己主動(dòng)學(xué)習(xí)理論知識(shí)來(lái)彌補(bǔ)。
說(shuō)幾個(gè)我工作中學(xué)習(xí)語(yǔ)言的例子。
首先說(shuō) Scala。需要用 Scala 的時(shí)候,是一個(gè)別組的項(xiàng)目有特別緊的 Deadline,我因?yàn)橐幌虮容^ “手快” 且對(duì)業(yè)務(wù)邏輯比較熟,所以被借調(diào)過(guò)去幫忙。那時(shí)候我并沒(méi)有學(xué)過(guò) Scala,但是因?yàn)闀r(shí)間關(guān)系,必須立馬上手。好在面向?qū)ο笳Z(yǔ)言和函數(shù)式設(shè)計(jì)語(yǔ)言我都有比較好的底子。所以在已有代碼庫(kù)的基礎(chǔ)上寫一些新的函數(shù),而不需要我去寫架構(gòu)代碼,總的來(lái)說(shuō)還是比較輕松的。
相關(guān)推薦:
小升初試題、期中期末題、小學(xué)奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號(hào)
歡迎使用手機(jī)、平板等移動(dòng)設(shè)備訪問(wèn)幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點(diǎn)擊查看