>
學(xué)校機(jī)構(gòu) >
廣西南寧達(dá)內(nèi)軟件科技有限公司 >
學(xué)習(xí)資訊>
怎樣才算是學(xué)會(huì)一種編程語(yǔ)言?
怎樣才算是學(xué)會(huì)一種編程語(yǔ)言?
134 2017-04-14
南寧達(dá)內(nèi):怎樣才算是學(xué)會(huì)一種編程語(yǔ)言?
我的一位老師曾對(duì)我們說(shuō),我們之所以現(xiàn)在還不知道Matlab這種語(yǔ)言,是因?yàn)槲覀儾恢烙袀€(gè)叫“參考資料”的命令是干什么用的。昨天,我在Haskellers注冊(cè)了一個(gè)帳號(hào),我發(fā)現(xiàn)Haskell語(yǔ)言里有很多東西我根本沒(méi)聽(tīng)說(shuō)過(guò)。這件事促使了我寫(xiě)這篇博客,我希望能給下面的這個(gè)問(wèn)題找到答案:你對(duì)一種語(yǔ)言了解多少才能肯定的說(shuō)你會(huì)這種語(yǔ)言?。
對(duì)一種語(yǔ)言的了解程度有很多等級(jí)。最基本的一種是只知道它的語(yǔ)法。然而,我不知道是不是當(dāng)你知道一種語(yǔ)言的語(yǔ)法,特有結(jié)構(gòu),以及能解讀用這種語(yǔ)言編寫(xiě)的基本程序時(shí)你就可以稱作會(huì)這種語(yǔ)言。我可以說(shuō)我對(duì)Brainfuck和Piet非常的了解,盡管我從沒(méi)用這種語(yǔ)言寫(xiě)過(guò)一行程序(我是用一些工具生成代碼,或類似的編程)。
其次,當(dāng)一個(gè)人知道一種語(yǔ)言的某些生僻的結(jié)構(gòu)和語(yǔ)法時(shí),他可以說(shuō)他會(huì)這種語(yǔ)言。知道C的extern和volatile可以有助于你完成某些任務(wù),但這要看你干的是什么工作了。不管怎樣,從這種水平往上看,任何一個(gè)人,只要他能看懂一個(gè)用這種語(yǔ)言寫(xiě)的代碼文件里50%以上的東西,那他就可以說(shuō)自己會(huì)這種語(yǔ)言了。
下一個(gè)層次的水平表現(xiàn)為掌握這種語(yǔ)言里所有的代碼庫(kù)類庫(kù)的情況。例如,我知道有個(gè)家伙幾乎知道幾乎所有的Python的模塊包。對(duì)最新的包除外,但他的知識(shí)已經(jīng)足夠來(lái)鑒別在一個(gè)任務(wù)上采用哪個(gè)程序包更好。
最后,我知道到有兩個(gè)人(只是在網(wǎng)上),他們不僅了解那種語(yǔ)言所有代碼庫(kù),同時(shí)也知道所有相關(guān)的工具。就Haskell而言,包括Cabal,darcs和Hackageinternals等,當(dāng)然,他們知道的遠(yuǎn)非只有這些。
現(xiàn)在,問(wèn)題還是沒(méi)有答案。把問(wèn)題重新復(fù)述一下可能變成這樣:當(dāng)你對(duì)一種編程語(yǔ)言必須了解多少時(shí),你才能把它寫(xiě)到你的簡(jiǎn)歷上?
附言:想起來(lái)Perlis在EpigramsonProgramming這本書(shū)里的一句話:如果一種語(yǔ)言沒(méi)有對(duì)你的編程思維有任何影響,那它是一種不值得學(xué)習(xí)的語(yǔ)言。。根據(jù)這個(gè),是否是說(shuō),當(dāng)你的編程思維改變了,你才能說(shuō)你會(huì)了這種語(yǔ)言?
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)服務(wù)號(hào)