怎樣才算會一種語言?

TP_funny發表於2014-12-24
我的一位老師曾對我們說,我們之所以現在還不知道Matlab這種語言,是因為我們不知道有個叫“參考資料”的命令是幹什麼用的。昨天,我在Haskellers註冊了一個帳號,我發現Haskell語言裡有很多東西我根本沒聽說過。這件事促使了我寫這篇部落格,我希望能給下面的這個問題找到答案: «你對一種語言瞭解多少才能肯定的說你會這種語言?»。

對一種語言的瞭解程度有很多等級。最基本的一種是隻知道它的語法。然而,我不知道是不是當你知道一種語言的語法,特有結構,以及能解讀用這種語言編寫的基本程式時你就可以稱作會這種語言。我可以說我對Brainfuck 和 Piet非常的瞭解,儘管我從沒用這種語言寫過一行程式(我是用一些工具生成程式碼,或類似的程式設計)。

其次,當一個人知道一種語言的某些生僻的結構和語法時,他可以說他會這種語言。知道C的extern 和 volatile 可以有助於你完成某些任務,但這要看你乾的是什麼工作了。不管怎樣,從這種水平往上看,任何一個人,只要他能看懂一個用這種語言寫的程式碼檔案裡50%以上的東西,那他就可以說自己會這種語言了。

下一個層次的水平表現為掌握這種語言裡所有的程式碼庫類庫的情況。例如,我知道有個傢伙幾乎知道幾乎所有的Python的模組包。對最新的包除外,但他的知識已經足夠來鑑別在一個任務上採用哪個程式包更好。

最後,我知道到有兩個人(只是在網上),他們不僅瞭解那種語言所有程式碼庫,同時也知道所有相關的工具。就Haskell而言,包括 Cabal, darcs 和 Hackage internals等,當然,他們知道的遠非只有這些。

現在,問題還是沒有答案。把問題重新複述一下可能變成這樣: «當你對一種程式語言必須瞭解多少時,你才能把它寫到你的簡歷上?»

附言:想起來Perlis在Epigrams on Programming這本書裡的一句話:«如果一種語言沒有對你的程式設計思維有任何影響,那它是一種不值得學習的語言。»。根據這個,是否是說,當你的程式設計思維改變了,你才能說你會了這種語言?
相關閱讀
評論(1)

相關文章