十年內(nèi)自學(xué)編程
彼得·諾維格
為什么大家都這么著急誉碴?
走進(jìn)任何一家書店,您將看到如何在24小時內(nèi)教會自己Java沾鳄,以及提供在幾天或幾小時內(nèi)教授C、SQL确憨、Ruby译荞、算法等的無休止的變體。亞馬遜高級搜索[標(biāo)題:教學(xué)休弃,你自己吞歼,小時,自2000年以來塔猾,發(fā)現(xiàn)512這樣的書篙骡。在前十名中,有九本是編程書(另一本是關(guān)于簿記的)丈甸。類似的結(jié)果來自于將“自學(xué)”改為“學(xué)習(xí)”糯俗,或?qū)ⅰ靶r”替換為“天”。
結(jié)論是睦擂,要么人們急于學(xué)習(xí)編程得湘,要么編程比其他任何東西都容易得多。費萊森等人在他們的“如何設(shè)計程序”(How To Design Program)一書中祈匙,他們表示:“糟糕的編程很容易忽刽,白癡可以在21天內(nèi)學(xué)會它,即使他們是假人夺欲」虻郏”這位狂暴的鵝漫畫也有自己的想法。
讓我們分析24小時內(nèi)自學(xué)C++這樣的標(biāo)題可能意味著什么:
自學(xué):在24小時內(nèi)些阅,你就沒有時間寫幾個重要的程序伞剑,從你的成功和失敗中吸取教訓(xùn)。您將沒有時間與有經(jīng)驗的程序員一起工作市埋,并了解在C++環(huán)境中生活是什么感覺黎泣∷×酰總之,你沒有時間學(xué)到很多東西抒倚。因此褐着,這本書只能談?wù)撘环N膚淺的熟悉,而不是一種深刻的理解托呕。正如亞歷山大·波普所說含蓉,一點點學(xué)習(xí)是一件危險的事情。
C++:在24小時內(nèi)项郊,您可能可以學(xué)習(xí)C++的一些語法(如果您已經(jīng)知道另一種語言)馅扣,但您無法了解如何使用該語言。簡單地說着降,如果你是一個基本程序員差油,你可以學(xué)習(xí)用C++語法以Basic的方式編寫程序,但是你不能知道C++實際上是好的(和壞的)什么任洞。那有什么意義蓄喇?AlanPerlis曾經(jīng)說過:“一種不影響你對編程的思考方式的語言是不值得知道的”。一個可能的問題是侈咕,您必須學(xué)習(xí)一點C++(或者更可能的是公罕,類似JavaScript或處理的東西)器紧,因為您需要與現(xiàn)有工具接口來完成特定的任務(wù)耀销。但是你不是在學(xué)習(xí)如何編程,而是在學(xué)習(xí)如何完成這個任務(wù)铲汪。
在24小時內(nèi):不幸的是熊尉,這還不夠,正如下一節(jié)所示掌腰。
十年內(nèi)自學(xué)編程
研究人員(Bloom(1985)狰住、Bryan&Harter(1899年)、Hayes(1989)齿梁、Simmon&Chase(1973))已經(jīng)證明催植,在包括國際象棋、音樂創(chuàng)作勺择、電報運算创南、繪畫、鋼琴演奏省核、游泳稿辙、網(wǎng)球以及神經(jīng)心理學(xué)和拓?fù)鋵W(xué)研究在內(nèi)的任何廣泛領(lǐng)域,都需要十年的時間才能發(fā)展出專門知識气忠。關(guān)鍵在于深思熟慮的練習(xí):不只是一次又一次地去做邻储,而是用一項超出你目前能力范圍的任務(wù)來