av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Peter Norvig:自學(xué)編程,十年磨一劍

黃小非譯注:本文作者Peter Norvig目前任職于Google,其職位是研究主管(Director of Research). Peter Norvig是享譽(yù)世界的計(jì)算機(jī)科學(xué)家和人工智能專家。他是 AAAI 和 ACM 的會(huì)員,是業(yè)界內(nèi)經(jīng)典書(shū)籍《Artificial Intelligence: A Modern Approach | 人工智能:一種現(xiàn)代方法》的作者之一。在加入Google之前,他曾經(jīng)是NASA(美國(guó)航空航天局)計(jì)算科學(xué)部門(mén)的主要負(fù)責(zé)人,并在南加州大學(xué)以及伯克利大學(xué)任教。以下為譯文。

你們著什么急?

隨意步入一家書(shū)店,滿目都是《7天搞定Java編程》這種速成書(shū)目,同樣的書(shū)籍還包括Visual Basic、Window系統(tǒng)、Internet互聯(lián)網(wǎng)等等,它們都承諾在幾天,甚至幾小時(shí)之內(nèi)就讓你能夠?qū)W會(huì)相關(guān)技術(shù)。我在亞馬遜網(wǎng)站上做了如下的條件檢索:

pubdate: after 1992 and title: days and

(title: learn or title: teach yourself)

出版日期:1992年以后,題目關(guān)鍵字:“天”,“學(xué)會(huì)”或者“自學(xué)”

然后得到了248條搜索結(jié)果。頭78條都是計(jì)算機(jī)類(lèi)書(shū)籍(第79條記錄是《30天學(xué)會(huì)孟加拉語(yǔ)》)。我將“天”關(guān)鍵字換成了“小時(shí)”,不出意外地搜索到了253條記錄,其中頭77條記錄是計(jì)算機(jī)書(shū)籍,第78條的搜索記錄是《24小時(shí)語(yǔ)法和樣式自學(xué)手冊(cè)》。在總共搜索到的頭200條記錄中,有96%是計(jì)算機(jī)書(shū)籍。

從上面的搜索結(jié)果可以看出來(lái),要么就是人們對(duì)計(jì)算機(jī)技術(shù)的學(xué)習(xí)如饑似渴,要么就是計(jì)算機(jī)技術(shù)實(shí)在太簡(jiǎn)單,不費(fèi)吹灰之力就能學(xué)會(huì)。相比于計(jì)算機(jī)技術(shù)書(shū)籍的如此“速成”,在其他領(lǐng)域的書(shū)籍里,你卻很難找到諸如:“三天學(xué)會(huì)貝多芬”,或者“五天搞定量子力學(xué)”,這種速成教材,甚至連《狗狗喂養(yǎng)手冊(cè)》這種寵物指南,都鮮有“幾天搞定”的說(shuō)法。Felleisen et al.在他們的著作《如何設(shè)計(jì)程序》一書(shū)中明確指出了這種“速成”的趨勢(shì),并評(píng)論到:“垃圾的編程技術(shù)當(dāng)然非常容易,***都能在21天之內(nèi)學(xué)會(huì),哪怕他天生就是個(gè)白癡?!?/p>

讓我們來(lái)仔細(xì)看看《3天學(xué)會(huì)C++》這種速成教材實(shí)際上意味著什么:

●學(xué)會(huì):在3天時(shí)間里你幾乎沒(méi)有時(shí)間去寫(xiě)任何有意義的程序,就更不要談什么從編程中獲得經(jīng)驗(yàn)和教訓(xùn)這種事情了。你也不可能有時(shí)間和有經(jīng)驗(yàn)的程序員一起工作和交流,也不會(huì)體驗(yàn)到在真正的C++環(huán)境下工作是什么感覺(jué)。長(zhǎng)話短說(shuō)吧,你就是沒(méi)時(shí)間,也學(xué)不到什么。所以這種書(shū)籍最多也就讓你有個(gè)粗淺的印象,但是絕對(duì)不可能有深入的理解。就像亞歷山大教皇說(shuō)的那樣,“淺嘗輒止是很危險(xiǎn)的”。

●C++: 如果你有其他編程語(yǔ)言的基礎(chǔ),那么3天之內(nèi)你也許可以學(xué)到C++的一些語(yǔ)法,但即使是這樣,你還是無(wú)法了解如何使用該語(yǔ)言編程。簡(jiǎn)言之,如果你之前是一個(gè)Basic程序員,那么經(jīng)過(guò)3天的學(xué)習(xí),你會(huì)成為一個(gè)“能使用C++語(yǔ)法編寫(xiě)B(tài)asic風(fēng)格程序的程序員”,不過(guò)這樣是沒(méi)法發(fā)揮出C++語(yǔ)言本身的優(yōu)勢(shì)的(說(shuō)句不好聽(tīng)的,你連怎么犯C++的典型錯(cuò)誤都不會(huì))。僅僅知道一點(diǎn)語(yǔ)法意味著什么呢?Allan Perlis曾經(jīng)說(shuō)過(guò):“一個(gè)無(wú)法改變你思維方式的編程語(yǔ)言是不值得學(xué)習(xí)的?!?;另一種可能性是,你可以只學(xué)一點(diǎn)點(diǎn)C++知識(shí)(類(lèi)似的,或者一點(diǎn)點(diǎn)JavaScript,或者一點(diǎn)點(diǎn)Flex Script),然后就可以利用現(xiàn)有的工具制作應(yīng)用接口,完成特定的編程任務(wù)了。但是這樣的行為并不意味著你“會(huì)”編程了,你只是會(huì)使用這個(gè)工具完成任務(wù)而已。

●3天:很不幸,3天是遠(yuǎn)遠(yuǎn)不夠的,往下看你就知道了。

[[93531]] 
peter norvig

研究人員(Bloom (1985)、 Bryan & Harter (1899,見(jiàn)文后參考書(shū)目)、Hayes (1989)、Simmon & Chase (1973,見(jiàn)文后參考書(shū)目) 的一系列調(diào)查研究顯示,在各個(gè)領(lǐng)域內(nèi),要想獲得專業(yè)級(jí)別的水平,大約需要10年時(shí)間的努力。參與此項(xiàng)調(diào)查的領(lǐng)域包括:國(guó)際象棋,作曲,發(fā)報(bào),繪畫(huà),鋼琴演奏,游泳,網(wǎng)球等。科學(xué)家們從神經(jīng)心理學(xué)和拓?fù)鋵W(xué)的角度對(duì)這些領(lǐng)域進(jìn)行研究,并得出結(jié)論。若要在某一領(lǐng)域內(nèi)達(dá)到專家級(jí)的水平,其關(guān)鍵在于“審慎地重復(fù)”,也就是說(shuō),并非是機(jī)械地,一遍又一遍地練習(xí),而是要不斷地挑戰(zhàn)自我,試圖超越自身當(dāng)前的水平,通過(guò)不斷的嘗試挑戰(zhàn),并在嘗試的過(guò)程中和嘗試之后對(duì)自身的表現(xiàn)進(jìn)行分析和總結(jié),吸取經(jīng)驗(yàn),糾正之前犯過(guò)的各種錯(cuò)誤。把這一“審慎”的過(guò)程不斷重復(fù),才能取得成功。

所謂的“捷徑”是不存在的,即使對(duì)于莫扎特這種天才來(lái)說(shuō),也沒(méi)有捷徑可走,盡管4歲就開(kāi)始作曲,可是他也花了13年的時(shí)間,才真正地寫(xiě)出了***的作品。再舉一個(gè)例子,甲殼蟲(chóng)樂(lè)隊(duì)(The Beatles),他們似乎在1964年憑借一系列熱門(mén)單曲和其在艾德沙利文秀(The Ed Sullivan show)上的演出一炮而紅,但是你也許不知道,他們?cè)缭?957年就在利物浦和漢堡兩地進(jìn)行小規(guī)模演出了,而在此之前的非正式演出更是不計(jì)其數(shù)。甲殼蟲(chóng)樂(lè)隊(duì)的主要成名曲《Sgt. Peppers》,則是1967年才發(fā)行的。Malcolm Gladwell公布了他對(duì)柏林音樂(lè)學(xué)院所作的一項(xiàng)研究的報(bào)告,該研究對(duì)比了一個(gè)班里的學(xué)習(xí)成績(jī)?yōu)樯稀⒅邢氯齻€(gè)檔次的學(xué)生,并逐一詢問(wèn)他們進(jìn)行音樂(lè)練習(xí)的時(shí)間

這三個(gè)檔次中的所有人,大約都是在5歲的時(shí)候開(kāi)始練習(xí)音樂(lè)的,一開(kāi)始的時(shí)候大家練習(xí)音樂(lè)的時(shí)間都差不多,大約一周2到3小時(shí)。但是到了八歲左右,大家的區(qū)別就開(kāi)始體現(xiàn)了。后來(lái)成為班里***的那一部分學(xué)生開(kāi)始比別的學(xué)生練習(xí)得更多,大概每周6到9小時(shí),12歲的時(shí)候每周8小時(shí),14歲的時(shí)候每周16小時(shí),往后則越來(lái)越多,直到20歲左右,他們每周練習(xí)音樂(lè)的時(shí)間已經(jīng)超過(guò)30小時(shí)了。在20歲的年紀(jì),那些精英級(jí)別的演奏家們都有累計(jì)超過(guò)10000小時(shí)的音樂(lè)練習(xí)時(shí)間。相比之下,僅有部分優(yōu)等生能達(dá)到8000小時(shí)的累計(jì)練習(xí)時(shí)間,而那些音樂(lè)教師級(jí)別的學(xué)生,他們的累計(jì)練習(xí)時(shí)間只有4000小時(shí)左右。

所以,也許這個(gè)讓你能達(dá)到專業(yè)等級(jí)的神奇時(shí)間應(yīng)該是10000小時(shí),而不是10年。(Henri Cartier-Bresson (1908-2004)說(shuō)過(guò),“(作為攝影師),你所拍攝的頭10000張照片都是垃圾”,但即使是垃圾作品,他拍一張照片也要花接近一小時(shí)。)Samuel Johnson (1709-1784)認(rèn)為這個(gè)時(shí)間應(yīng)該更長(zhǎng):“在任何一個(gè)領(lǐng)域要想做到極好,勢(shì)必窮盡一生的精力,否則根本無(wú)法企及?!?Chaucer (1340-1400)也發(fā)出過(guò)“生命如此短暫,技能如此高深”的感嘆。Hippocrates (c. 400BC)因?qū)懴铝巳缦碌木渥佣蝗朔Q頌:“ars longa, vita brevis”,該句是來(lái)自于一個(gè)更長(zhǎng)的引用:”Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile”, 這段話翻譯成英語(yǔ)就是:“生命很短暫,但是技藝卻很高深,機(jī)遇轉(zhuǎn)瞬即逝,探索難以捉摸,抉擇困難重重”。這段話是用拉丁文寫(xiě)的。在拉丁文里,ars可以翻譯為“技藝”或者“藝術(shù)”,但是在古希臘文里,ars只能做“技能”的意思,而沒(méi)有“藝術(shù)”的意思。

你想當(dāng)程序員么?

下面是我列舉的程序員成功“食譜”

  • 沉醉于編程,編程是為了興趣。保持這種充滿興趣的感覺(jué),以便于你能將其投入到你的10年/10000小時(shí)的編程時(shí)間中。
  • 程序. ***的學(xué)習(xí)方式是“在實(shí)踐中學(xué)習(xí)”。更技術(shù)一些地說(shuō):“一個(gè)人在某個(gè)專業(yè)領(lǐng)域方面能夠達(dá)到***水平,并不是因?yàn)檫@個(gè)人經(jīng)驗(yàn)增長(zhǎng)了以后而自動(dòng)獲得的,而是這個(gè)人為了進(jìn)步所做出了專門(mén)的努力之后產(chǎn)生的結(jié)果?!?p. 366)“最有效的學(xué)習(xí)包括如下幾個(gè)要素:明確并且難度適當(dāng)?shù)娜蝿?wù),適應(yīng)學(xué)習(xí)者個(gè)人情況,及時(shí)的信息反饋,有重新開(kāi)始和改正錯(cuò)誤的機(jī)會(huì))(p. 20-21) 《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life》這本書(shū)提供了上述有趣的觀點(diǎn)
  • 同其他程序員交流,多閱讀其他人寫(xiě)的程序。這些遠(yuǎn)比你看書(shū)或者上培訓(xùn)班重要
  • 如果你愿意的話,就選擇去讀一個(gè)計(jì)算機(jī)科學(xué)專業(yè)吧(當(dāng)然你還可以去念這個(gè)專業(yè)的研究生)。如果你能做到這點(diǎn),那么你就有機(jī)會(huì)找到一些需要計(jì)算機(jī)學(xué)位認(rèn)證的工作,也會(huì)讓你對(duì)這個(gè)行業(yè)有更深的理解。不過(guò),如果你不是上學(xué)的料,那么你可以(當(dāng)然需要有足夠的毅力)靠自己學(xué)習(xí),或者通過(guò)工作來(lái)積累經(jīng)驗(yàn)。無(wú)論你采用哪種途徑,光依靠書(shū)本是遠(yuǎn)遠(yuǎn)不夠的。“如果說(shuō)僅僅靠學(xué)習(xí)油畫(huà)和調(diào)色技術(shù)無(wú)法創(chuàng)造出***的畫(huà)家的話,那么光學(xué)習(xí)計(jì)算機(jī)科學(xué)課程更不能造就***的程序員?!?,Eric Raymond這樣說(shuō)過(guò),他著有《新黑客字典》一書(shū)。我所聘用過(guò)的***的程序員僅僅只有高中文憑; 他寫(xiě)了很多偉大的軟件,他有他自己的新聞組,并且通過(guò)股權(quán)賺夠了錢(qián),還開(kāi)了家屬于自己的夜店。(作者說(shuō)的這個(gè)人是Jamie Zawinski,他是網(wǎng)景瀏覽器(Netscape)的早期開(kāi)發(fā)這者之一,也是開(kāi)源項(xiàng)目Mozilla和XEmacs的主要貢獻(xiàn)者,他開(kāi)了一家叫做DNA_lounge的夜店,位于舊金山的SoMa區(qū)——譯者注)
  • 與其他程序員一起做項(xiàng)目。在某些項(xiàng)目中要盡量做到***,在某些項(xiàng)目中卻別做那么好。當(dāng)你是***的時(shí)候,你的領(lǐng)導(dǎo)能力就會(huì)得到鍛煉,并激發(fā)你高瞻遠(yuǎn)矚的視野。當(dāng)你做得不好的時(shí)候,你就能知道你的領(lǐng)導(dǎo)怎么做事,以及他們不喜歡哪些事(因?yàn)轭I(lǐng)導(dǎo)總是把那些他們不愛(ài)做的雜事丟給他們認(rèn)為不得力的人去做)
  • 嘗試跟隨其他程序員一起做項(xiàng)目。嘗試去理解其他人所寫(xiě)的代碼。看看如果你無(wú)法找到代碼的作者本人的情況下,理解和修正他寫(xiě)的代碼需要花費(fèi)什么樣的代價(jià)。同時(shí)也思考,如何規(guī)劃你自己的程序代碼,讓它們更容易被其他人理解和維護(hù)。
  • 至少學(xué)習(xí)半打編程語(yǔ)言。包括一種支持類(lèi)抽象的語(yǔ)言(例如Java或者C++),一種支持函數(shù)抽象的語(yǔ)言(例如Lisp或者M(jìn)L),一種支持語(yǔ)法抽象的語(yǔ)言(例如Lisp),一種支持聲明式編程的語(yǔ)言(例如Prolog或者C++模板),一種支持協(xié)同程序的語(yǔ)言(例如Icon或者Scheme),一種支持平行并發(fā)編程的語(yǔ)言(例如Sial)
  • 牢記“計(jì)算機(jī)科學(xué)”中包含著“計(jì)算機(jī)”這個(gè)詞。了解計(jì)算機(jī)需要花多長(zhǎng)的時(shí)間執(zhí)行一條指令,花多長(zhǎng)時(shí)間從內(nèi)存中獲取一個(gè)字(word)(包括緩存命中和不命中兩種情況),如果連續(xù)從磁盤(pán)中獲取數(shù)據(jù),時(shí)間消耗如何?以及需要花多少時(shí)間才能再磁盤(pán)上定位一個(gè)新的位置?
  • 盡量參與語(yǔ)言的標(biāo)準(zhǔn)化過(guò)程。往大了說(shuō),你可以試著加入ANSI C++委員會(huì)這樣的專業(yè)組織,往小了講,你也可以從自己的代碼規(guī)范入手,限定代碼縮進(jìn)是需要2個(gè)空格寬還是4個(gè)空格寬。無(wú)論采用哪種方式,你都需要了解其他人對(duì)于語(yǔ)言的喜好,以及他們的喜好的程度,甚至你要知道他們?yōu)槭裁串a(chǎn)生這樣的喜好的原因。
  • 有良好的意識(shí),能盡快適應(yīng)語(yǔ)言標(biāo)準(zhǔn)化的成果。

要掌握上面所說(shuō)的所有內(nèi)容,光靠看書(shū)學(xué)習(xí)應(yīng)該是很難做到的。當(dāng)我的***個(gè)孩子出生的時(shí)候,我?guī)缀蹰喿x了市面上所有的《如何…》指南書(shū)籍,但是我讀完了以后還是覺(jué)得自己是個(gè)菜鳥(niǎo)。30個(gè)月以后,我的第二個(gè)孩子快出生時(shí),我難道還要做一個(gè)書(shū)蟲(chóng)么?不!相反,我此時(shí)更依賴我的個(gè)人經(jīng)驗(yàn),這些經(jīng)驗(yàn)相比于那些上千頁(yè)的書(shū)籍,則更加有效和讓我放心。

Fred Brooks所著的著名的論文《No Silver Bullets| 沒(méi)有銀彈》里向我們揭示了發(fā)現(xiàn)和培養(yǎng)軟件設(shè)計(jì)人才的三步驟:

1.有組織地辨認(rèn)***的軟件設(shè)計(jì)人才,越早越好

2.安排一個(gè)職業(yè)導(dǎo)師,為其職業(yè)前景指點(diǎn)迷津,并謹(jǐn)慎對(duì)待自己的職業(yè)履歷

3.為成長(zhǎng)中的設(shè)計(jì)師們提供機(jī)會(huì),讓他們能夠互相激發(fā)促進(jìn)。

即使一部分人已經(jīng)具備了成為優(yōu)秀軟件設(shè)計(jì)人員的潛質(zhì),也需要經(jīng)歷工作的慢慢琢磨,方可展現(xiàn)才華。Alan Perlis則說(shuō)得更加直接:“任何人都可以被‘教’成一個(gè)雕塑匠,但米開(kāi)朗基羅則被‘教’如何不要成為一個(gè)雕塑匠,因?yàn)樗龅氖堑袼艽髱?,。這個(gè)道理放到編程大師身上同樣管用?!盤(pán)erlis認(rèn)為,偉大的軟件開(kāi)發(fā)人員都有一種內(nèi)在的特質(zhì),這種特質(zhì)往往比他們所接受的訓(xùn)練更重要。但是這些特質(zhì)是從哪里來(lái)的呢?是與生俱來(lái)的?還是通過(guò)后天勤奮而來(lái)?正如Auguste Gusteau(動(dòng)畫(huà)電影《料理鼠王》里的幻象大廚)所說(shuō),“誰(shuí)都能做飯,但只有那些無(wú)所畏懼的人才能成為大廚!”我很情愿地說(shuō),將你生命中的大部分時(shí)間花在審慎地練習(xí)和提高上,這很重要!但是“無(wú)所畏懼”的精神,才是將促使這些練習(xí)成果凝聚成形的途徑?;蛘?,就像是《料理鼠王》里那個(gè)與Gusteau作對(duì)的刻薄的美食評(píng)論家Anton Ego說(shuō)的那樣:“不是任何人都能成為偉大的藝術(shù)家,不過(guò),偉大的藝術(shù)家在成名前可能是任何人?!?/p>

所以盡管去書(shū)店大買(mǎi)Java/Ruby/Javascript/PHP書(shū)籍吧;你也許會(huì)發(fā)現(xiàn)他們真的挺管用。但是這樣做不會(huì)改變你的人生,也不會(huì)讓你在整體經(jīng)驗(yàn)上有什么提高。24小時(shí),幾天,幾周,做一個(gè)真正的程序員?光靠讀書(shū)可讀不出來(lái)。你嘗試過(guò)連續(xù)24個(gè)月不懈努力提高自己么?呵呵,如果你做到了,好吧,那么你開(kāi)始上路了……

參考書(shū)目

Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.

Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.

Bryan, W.L. & Harter, N. “Studies on the telegraphic language: The acquisition of a hierarchy of habits. Psychology Review, 1899, 8, 345-375

Hayes, John R., The Complete Problem Solver Lawrence Erlbaum, 1989.

Chase, William G. & Simon, Herbert A. “Perception in Chess” Cognitive Psychology, 1973, 4, 55-81.

Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.

問(wèn)答

典型PC系統(tǒng)各種操作指令的大概時(shí)間

execute typical instruction

執(zhí)行基本指令

1/1,000,000,000 sec = 1 nanosec

fetch from L1 cache memory

從一級(jí)緩存中讀取數(shù)據(jù)

0.5 nanosec

branch misprediction

分支誤預(yù)測(cè)

5 nanosec

fetch from L2 cache memory

從二級(jí)緩存獲取數(shù)據(jù)

7 nanosec

Mutex lock/unlock

互斥加鎖/解鎖

25 nanosec

fetch from main memory

從主內(nèi)存獲取數(shù)據(jù)

100 nanosec

send 2K bytes over 1Gbps network

通過(guò)1G bps 的網(wǎng)絡(luò)發(fā)送2K字節(jié)

20,000 nanosec

read 1MB sequentially from memory

從內(nèi)存中順序讀取1MB數(shù)據(jù)

250,000 nanosec

fetch from new disk location (seek)

從新的磁盤(pán)位置獲取數(shù)據(jù)(隨機(jī)讀?。?/p>

8,000,000 nanosec

read 1MB sequentially from disk

從磁盤(pán)中順序讀取1MB數(shù)據(jù)

20,000,000 nanosec

send packet US to Europe and back

從美國(guó)發(fā)送一個(gè)報(bào)文包到歐洲再返回

150 milliseconds = 150,000,000 nanosec

附錄:如何選擇語(yǔ)言

很多人曾經(jīng)問(wèn)過(guò)我,他們應(yīng)該選擇什么編程語(yǔ)言作為入門(mén)之用?我想這個(gè)問(wèn)題很難有一個(gè)確切的答案,但是下面幾點(diǎn)可以用來(lái)作為選擇的參考。

  • 隨大流。當(dāng)被問(wèn)到“我應(yīng)該使用什么系統(tǒng)呢?Windows, Unix還是Mac?”,我的回答通常是:“看你的朋友們用什么你就用什么。”這么做的好處是,有了你朋友的幫助,你就能有效地回避操作系統(tǒng)固有的一些差異,對(duì)于選擇編程語(yǔ)言來(lái)說(shuō),也是同樣道理。同時(shí),你還要有點(diǎn)兒戰(zhàn)略眼光:如果選擇了一種編程語(yǔ)言,并成為其編程社區(qū)的一員,那么你選擇的語(yǔ)言和社區(qū)是正在不斷壯大?還是奄奄一息?如果你有編程方面的問(wèn)題,能不能從相關(guān)的書(shū)籍,網(wǎng)站以及在線論壇中得到解答?你是不是跟論壇里的人合得來(lái)?這些都是要考慮的。
  • 簡(jiǎn)單實(shí)用。諸如C++以及Java這樣的編程語(yǔ)言都是非常專業(yè)的開(kāi)發(fā)語(yǔ)言,適用于有經(jīng)驗(yàn)的大型團(tuán)隊(duì)進(jìn)行開(kāi)發(fā),需要時(shí)??紤]代碼的運(yùn)行效率。所以,這類(lèi)的編程語(yǔ)言就適合于那樣(復(fù)雜)的編程環(huán)境。如果你是一個(gè)初學(xué)者,那么就不要搞那么復(fù)雜。你所需要的是一種簡(jiǎn)單易學(xué)的編程語(yǔ)言,你靠你自己就可以搞定的語(yǔ)言。
  • 交互。給你兩種選擇去學(xué)鋼琴:***種,常規(guī)做法,也是互動(dòng)的做法,也就是你每敲一下琴鍵就能聽(tīng)到琴音;第二種,批量模式,等你把所有該按的琴鍵都按了一遍,然后再一次性放給你聽(tīng)。你選擇哪一個(gè)呢?顯然,交互式的方式對(duì)于鋼琴學(xué)習(xí)來(lái)說(shuō)更容易,對(duì)于編程學(xué)習(xí)也是如此。那么就堅(jiān)持使用交互式模式學(xué)習(xí)編程吧。

基于上述的觀點(diǎn),我所推薦的編程入門(mén)語(yǔ)言應(yīng)該是Phyton或者Scheme.但是讀者自身的環(huán)境是非常復(fù)雜多變的,所以你們也許會(huì)其他更好的選擇。如果你的年齡還不到兩位數(shù),那么你們應(yīng)該考慮Alice語(yǔ)言或者Squeak語(yǔ)言(很多成年的初學(xué)者也認(rèn)為他們很有趣)。當(dāng)然,做出選擇并開(kāi)始行動(dòng),這個(gè)最重要。

附錄:書(shū)籍和其他資源

  • 模式編程:《Structure and Interpretation of Computer Programs (Abelson & Sussman) | 計(jì)算機(jī)程序的構(gòu)造和解釋》 這本書(shū)或許是計(jì)算機(jī)科學(xué)***的入門(mén)書(shū)籍,本書(shū)從計(jì)算機(jī)科學(xué)的角度入手,教你如何進(jìn)行編程。你可以在online videos of lectures觀看本書(shū)的在線視頻教程,以及complete text online的在線文字版。 學(xué)習(xí)本書(shū)是需要一些挑戰(zhàn)的,相信該書(shū)會(huì)讓一部分人望而卻步的。
  • 模式編程:《How to Design Programs (Felleisen et al.) | 程序設(shè)計(jì)方法》是一本好書(shū),該書(shū)介紹了如何用優(yōu)雅并且有效的方式進(jìn)行程序設(shè)
  • Python: Python Programming: An Intro to CS (Zelle) 是一本介紹Python的好書(shū)
  • Python: Python.org官方網(wǎng)站上提供了一些在線教程 tutorials.
  • Oz: Concepts, Techniques, and Models of Computer Programming (Van Roy & Haridi) 被看做是Abelson & Sussman(經(jīng)典計(jì)算機(jī)教程《計(jì)算機(jī)程序的構(gòu)造和解釋》的作者——譯者注)的當(dāng)代傳承者。該書(shū)繪制了一幅關(guān)于計(jì)算機(jī)編程的宏觀藍(lán)圖,它囊括了比Abelson & Sussman的經(jīng)典教材更廣泛的知識(shí)領(lǐng)域,也更加通俗易懂。此書(shū)中使用了一種編程語(yǔ)言,Oz, 這種語(yǔ)言在工業(yè)領(lǐng)域內(nèi)幾乎不被使用,其主要目的就是針對(duì)于教學(xué)

備注

T. Capey指出,Amazon網(wǎng)頁(yè)上那個(gè)Complete Problem Solver頁(yè)面把《21天搞定孟加拉語(yǔ)》以及《21天學(xué)會(huì)語(yǔ)法》這兩本書(shū)移到了“購(gòu)買(mǎi)此書(shū)的用戶還購(gòu)買(mǎi)過(guò)這些產(chǎn)品”這個(gè)區(qū)域內(nèi)。我估計(jì)大部分人就是從這個(gè)區(qū)域看到這本書(shū)的。感謝Ross Cohen的幫助。

***插播一張漫畫(huà):《21天自學(xué)C++》

英文原文:Peter Norvig

譯文鏈接:http://blog.jobbole.com/22905/


本文題目:Peter Norvig:自學(xué)編程,十年磨一劍
文章來(lái)源:http://uogjgqi.cn/article/cdcgsie.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流