為什么大家都這么著急丑孩?
走進任何一家書店,您將看到如何在24小時內(nèi)教會自己Java灭贷,以及提供在幾天或幾小時內(nèi)教授C温学、SQL、Ruby甚疟、算法等的無休止的變體仗岖。亞馬遜高級搜索[標題:教學,你自己览妖,小時轧拄,自2000年以來,發(fā)現(xiàn)512這樣的書讽膏。在前十名中檩电,有九本是編程書(另一本是關(guān)于簿記的)。類似的結(jié)果來自于將“自學”改為“學習”府树,或?qū)ⅰ靶r”替換為“天”俐末。
結(jié)論是,要么人們急于學習編程奄侠,要么編程比其他任何東西都容易得多卓箫。費萊森等人在他們的“如何設(shè)計程序”(How To Design Program)一書中,他們表示:“糟糕的編程很容易垄潮,白癡可以在21天內(nèi)學會它烹卒,即使他們是假人闷盔。”這位狂暴的鵝漫畫也有自己的想法旅急。
讓我們分析24小時內(nèi)自學C++這樣的標題可能意味著什么:
自學:在24小時內(nèi)逢勾,你就沒有時間寫幾個重要的程序,從你的成功和失敗中吸取教訓坠非。您將沒有時間與有經(jīng)驗的程序員一起工作敏沉,并了解在C++環(huán)境中生活是什么感覺⊙茁耄總之盟迟,你沒有時間學到很多東西。因此潦闲,這本書只能談?wù)撘环N膚淺的熟悉攒菠,而不是一種深刻的理解。正如亞歷山大·波普所說歉闰,一點點學習是一件危險的事情辖众。
C++:在24小時內(nèi),您可能可以學習C++的一些語法(如果您已經(jīng)知道另一種語言)和敬,但您無法了解如何使用該語言凹炸。簡單地說,如果你是一個基本程序員昼弟,你可以學習用C++語法以Basic的方式編寫程序啤它,但是你不能知道C++實際上是好的(和壞的)什么。那有什么意義舱痘?AlanPerlis曾經(jīng)說過:“一種不影響你對編程的思考方式的語言是不值得知道的”变骡。一個可能的問題是,您必須學習一點C++(或者更可能的是芭逝,類似JavaScript或處理的東西)塌碌,因為您需要與現(xiàn)有工具接口來完成特定的任務(wù)。但是你不是在學習如何編程旬盯,而是在學習如何完成這個任務(wù)台妆。
在24小時內(nèi):不幸的是,這還不夠胖翰,正如下一節(jié)所示频丘。
十年內(nèi)自學編程
研究人員(Bloom(1985)、Bryan&Harter(1899年)泡态、Hayes(1989)、Simmon&Chase(1973))已經(jīng)證明迂卢,在包括國際象棋某弦、音樂創(chuàng)作桐汤、電報運算、繪畫靶壮、鋼琴演奏怔毛、游泳、網(wǎng)球以及神經(jīng)心理學和拓撲學研究在內(nèi)的任何廣泛領(lǐng)域腾降,都需要十年的時間才能發(fā)展出專門知識拣度。關(guān)鍵在于深思熟慮的練習:不只是一次又一次地去做,而是用一項超出你目前能力范圍的任務(wù)來挑戰(zhàn)自己螃壤,嘗試它抗果,分析你