|
我的一位老師曾對(duì)我們說,我們之所以現(xiàn)在還不知道Matlab這種語言,是因?yàn)槲覀儾恢烙袀€(gè)叫“參考資料”的命令是干什么用的。昨天,我在Haskellers注冊(cè)了一個(gè)帳號(hào),我發(fā)現(xiàn)Haskell語言里有很多東西我根本沒聽說過。這件事促使了我寫這篇博客,我希望能給下面的這個(gè)問題找到答案:«你對(duì)一種語言了解多少才能肯定的說你會(huì)這種語言?»。
對(duì)一種語言的了解程度有很多等級(jí)。最基本的一種是只知道它的語法。然而,我不知道是不是當(dāng)你知道一種語言的語法,特有結(jié)構(gòu),以及能解讀用這種語言編寫的基本程序時(shí)你就可以稱作會(huì)這種語言。我可以說我對(duì)Brainfuck 和 Piet非常的了解,盡管我從沒用這種語言寫過一行程序(我是用一些工具生成代碼,或類似的編程)。
其次,當(dāng)一個(gè)人知道一種語言的某些生僻的結(jié)構(gòu)和語法時(shí),他可以說他會(huì)這種語言。知道C的extern
和 volatile
可以有助于你完成某些任務(wù),但這要看你干的是什么工作了。不管怎樣,從這種水平往上看,任何一個(gè)人,只要他能看懂一個(gè)用這種語言寫的代碼文件里50%以上的東西,那他就可以說自己會(huì)這種語言了。
下一個(gè)層次的水平表現(xiàn)為掌握這種語言里所有的代碼庫類庫的情況。例如,我知道有個(gè)家伙幾乎知道幾乎所有的Python的模塊包。對(duì)最新的包除外,但他的知識(shí)已經(jīng)足夠來鑒別在一個(gè)任務(wù)上采用哪個(gè)程序包更好。
最后,我知道到有兩個(gè)人(只是在網(wǎng)上),他們不僅了解那種語言所有代碼庫,同時(shí)也知道所有相關(guān)的工具。就Haskell而言,包括 Cabal, darcs 和 Hackage internals等,當(dāng)然,他們知道的遠(yuǎn)非只有這些。
現(xiàn)在,問題還是沒有答案。把問題重新復(fù)述一下可能變成這樣:«當(dāng)你對(duì)一種編程語言必須了解多少時(shí),你才能把它寫到你的簡(jiǎn)歷上?»
附言:想起來Perlis在Epigrams on Programming這本書里的一句話:«如果一種語言沒有對(duì)你的編程思維有任何影響,那它是一種不值得學(xué)習(xí)的語言。»。根據(jù)這個(gè),是否是說,當(dāng)你的編程思維改變了,你才能說你會(huì)了這種語言?
[英文出處]:When do you know a language?
it知識(shí)庫:怎樣才算會(huì)一種語言?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。