十年自習(xí)編程
作者:彼得·諾維格
為什么大家都這么著急?
走進(jìn)任何一家書(shū)店,你就會(huì)看到教自己Java24小時(shí)內(nèi)除了提供無(wú)窮無(wú)盡的變體來(lái)教C,幾天或幾個(gè)小時(shí)內(nèi),SQL、Ruby、算法等等。亞馬遜高級(jí)搜索標(biāo)題:教書(shū),你自己,小時(shí)數(shù),自2000年起找到512本這樣的書(shū)。在前十名中,有九本是編程書(shū)(另一本是關(guān)于簿記的)。類似的結(jié)果來(lái)自于將“自學(xué)”改為“學(xué)習(xí)”,或?qū)ⅰ靶r(shí)”替換為“天”。
結(jié)論是,這兩個(gè)人中的任何一個(gè)人都急于學(xué)習(xí)。關(guān)于編程,或者說(shuō)編程在某種程度上更容易學(xué)習(xí)比其他任何東西都重要。費(fèi)萊森等人他們?cè)跁?shū)中對(duì)這一趨勢(shì)表示贊同。如何設(shè)計(jì)程序,當(dāng)他們說(shuō)“糟糕的編程很容易。白癡可以在21天,即使他們是假人“瘋狂的鵝漫畫(huà)也有他們的觀點(diǎn).
讓我們分析一下標(biāo)題是什么樣子的24小時(shí)內(nèi)自學(xué)C++可能意味著:
自學(xué):再過(guò)24小時(shí),你就沒(méi)有時(shí)間寫(xiě)幾篇了重要的程序,并從您的成功和失敗中學(xué)習(xí)他們。你沒(méi)有時(shí)間和一個(gè)有經(jīng)驗(yàn)的程序員一起工作了解在C++環(huán)境中生活是什么感覺(jué)??傊悴粫?huì)有時(shí)間學(xué)到很多東西。所以這本書(shū)只能說(shuō)膚淺的熟悉,不是深刻的理解。正如亞歷山大·波普所說(shuō),小小的學(xué)習(xí)是一件危險(xiǎn)的事情。
C++:在24小時(shí)內(nèi),您就可以學(xué)習(xí)到C++(如果你已經(jīng)知道另一種語(yǔ)言),但你不能學(xué)習(xí)更多關(guān)于如何使用這種語(yǔ)言的知識(shí)。總之,如果你是,比如說(shuō),基本程序員,您可以學(xué)習(xí)用基本使用C++語(yǔ)法,但你無(wú)法了解C++是什么實(shí)際上是好的(也有壞的)。那有什么意義?阿蘭佩利斯曾經(jīng)說(shuō)過(guò):“一種不影響你的方式的語(yǔ)言想一想編程是不值得知道的“。你必須學(xué)習(xí)一點(diǎn)C++(或者更有可能,(比如JavaScript或處理),因?yàn)槟枰c完成特定任務(wù)的現(xiàn)有工具。但你不是學(xué)習(xí)如何編程,你正在學(xué)習(xí)如何完成這一任務(wù)。
在24小時(shí)內(nèi):不幸的是,這還不夠,因?yàn)椴糠诛@示。
十年內(nèi)自學(xué)編程
研究人員(布盧姆(1985年), 布賴恩和哈特(1899年), 海耶斯(1989年), Simmon&Chase(1973年))已經(jīng)顯示出來(lái)了要花大約十年的時(shí)間,才能在各種不同的領(lǐng)域中發(fā)展出專門(mén)知識(shí)。領(lǐng)域,包括下棋,音樂(lè)創(chuàng)作,電報(bào)。操作,繪畫(huà),鋼琴演奏,游泳,網(wǎng)球和研究神經(jīng)心理學(xué)和拓?fù)鋵W(xué)。關(guān)鍵是審議練習(xí):不只是一次又一次地做,但是挑戰(zhàn)自己一項(xiàng)超出你目前能力范圍的任務(wù),分析你在做的時(shí)候和之后的表現(xiàn),并改正。任何錯(cuò)誤。那就重復(fù)一遍。再重復(fù)一遍。似乎沒(méi)有真正的捷徑:即