一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

十年學(xué)會(huì)程序設(shè)計(jì)

  這里分享一篇 Peter Norvig的 《十年學(xué)會(huì)程序設(shè)計(jì)》 (Peter Norvig  系Google研究院主任、美國(guó)計(jì)算機(jī)協(xié)會(huì)(ACM)資深會(huì)員(Fellow))。全文如下:

  十年學(xué)會(huì)程序設(shè)計(jì)

  Peter Norvig (Copyright 2001)

  原文網(wǎng)址

  為何大家如此匆忙?

  走進(jìn)任何一家書(shū)店,你會(huì)看到書(shū)架上一排不見(jiàn)盡頭的放著如 <7天自學(xué)Java語(yǔ)言> 以及幾天或者幾小時(shí)學(xué)會(huì)Windows,因特網(wǎng)或者Visual Basic 這類(lèi)書(shū)。我在Amazon 網(wǎng)上書(shū)店用一下的方式進(jìn)行高級(jí)搜索:

  出版年份: 1992以后 書(shū)名包括:“天” 和 “學(xué)習(xí)” 或 “自學(xué)”

  得到了268條搜索結(jié)果,其中前78條都是計(jì)算機(jī)書(shū)(第79條是 30天學(xué)會(huì)孟加拉語(yǔ))。 我用 “小時(shí)” 代替“天” 作為關(guān)鍵字,得到了神奇般類(lèi)似的結(jié)果:這次有253本書(shū),前77本是計(jì)算機(jī)書(shū), 第78本是 24小時(shí)自學(xué)語(yǔ)法和寫(xiě)作風(fēng)格。排名前200的書(shū)中有96%是計(jì)算機(jī)書(shū)。

  由此可見(jiàn),人們要不就是急著想學(xué)會(huì)計(jì)算機(jī),要不就是計(jì)算機(jī)相比于其他事情太容易學(xué)會(huì)了。比如說(shuō)把,沒(méi)有書(shū)是寫(xiě)在幾天彈奏貝多芬或幾天學(xué)會(huì)量子物理,甚至也沒(méi)有幾天學(xué)會(huì)幫小狗打扮這樣的書(shū)。

  讓我們分析一下 三天學(xué)會(huì)Pascal語(yǔ)言 [英文網(wǎng)頁(yè)] 這樣的標(biāo)題表達(dá)了什么意思:

  • 學(xué)會(huì):在三天內(nèi),你沒(méi)有時(shí)間去寫(xiě)幾個(gè)有意義的程序,或者從成功和失敗中學(xué)到東西。你也沒(méi)時(shí)間跟有經(jīng)驗(yàn)的程序員一起工作,所以也無(wú)法了解在真正編程是什么樣子。簡(jiǎn)短的說(shuō),就學(xué)會(huì)而言,時(shí)間顯然不夠。所以這些書(shū)只是浮于表面的熟悉,而不是深刻的理解。如同Alexander Pope 所說(shuō),一知半解是危險(xiǎn)的。
  • Pascal 語(yǔ)言:三天內(nèi)你可能學(xué)會(huì)Pasacl語(yǔ)言的語(yǔ)法(如果你已經(jīng)掌握一個(gè)類(lèi)似的編程語(yǔ)言),但你無(wú)法學(xué)會(huì)如何合理運(yùn)用這些語(yǔ)法。簡(jiǎn)言之,如果你是個(gè)Basic 程序員,你可以用Pascal 語(yǔ)言寫(xiě)出類(lèi)似Basic風(fēng)格的程序,但你學(xué)不到Pascal語(yǔ)言的優(yōu)點(diǎn)(還有缺點(diǎn))到底在哪。重點(diǎn)是什么呢? Alan Perlis 曾說(shuō): “如果編程語(yǔ)言不能影響你的編程思維,那就不值得去學(xué).” 另一個(gè)可能是,你必須學(xué)會(huì)一點(diǎn)點(diǎn)Pascal語(yǔ)言(或是像VB語(yǔ)言、Javascript等),因?yàn)槟阈枰F(xiàn)成的工具組合完成特定的工作。不過(guò)這個(gè)時(shí)候,你實(shí)際上學(xué)的不是怎么寫(xiě)程序,而是要學(xué)著如何完成工作。
  • 三天:不幸的是三天根本不夠;下面的章節(jié)會(huì)告訴你為什么

  十年學(xué)會(huì)程序設(shè)計(jì)

  研究者 Hayes, Bloom 的研究表明,在幾乎所有的各種領(lǐng)域,大約要十年才能培養(yǎng)出專(zhuān)業(yè)技能。這些領(lǐng)域包括下西洋棋、音樂(lè)作曲、繪畫(huà)、鋼琴、游泳、網(wǎng)球,及神經(jīng)心理學(xué)和數(shù)學(xué)拓?fù)鋵W(xué)。似乎沒(méi)有真正的捷徑--即便是莫扎特在四歲就展露出音樂(lè)天才,在他寫(xiě)出世界級(jí)的音樂(lè)之前仍然用了超過(guò)十三年的時(shí)間。

  再看另一種類(lèi)型的領(lǐng)域。披頭士樂(lè)團(tuán)似乎是在1964年的Ed Sullivan 劇場(chǎng)表演突然地火起來(lái)并成為第一樂(lè)隊(duì)的。但其實(shí)他們從 1957 年開(kāi)始,就在利物浦、漢堡等地的小型俱樂(lè)部表演。雖然他們很早就顯現(xiàn)強(qiáng)大的吸引力,但他們決定性的成功作品 Sgt Pepper 也到1967年才發(fā)行。Samuel Johnson 則認(rèn)為或許還不止十年才行,他說(shuō):任何領(lǐng)域的卓越成就都必須用一生的努力才能取得;稍微低一點(diǎn)的代價(jià)都是換不到的。Chaucer 則感嘆道: “生命如此短促,學(xué)習(xí)技藝卻要這么地長(zhǎng)。”

  以下是我在編程上成功的秘訣:

  • 對(duì)編程產(chǎn)生感興趣并因?yàn)闃?lè)趣而寫(xiě)程序。確信你自始至終都能樂(lè)在其中,這樣你才愿意將十年光陰投入編程事業(yè)。
  • 與其他程序員交流;閱讀別人的代碼。這比任何書(shū)任何培訓(xùn)都重要。
  • 不斷地編寫(xiě)。最好的學(xué)習(xí)方法是在實(shí)踐中學(xué)習(xí)。從技術(shù)角度說(shuō),“在特定領(lǐng)域的個(gè)人最高效率并不因?yàn)榻?jīng)驗(yàn)夠多就會(huì)自動(dòng)獲得;但若有意識(shí)的通過(guò)努力去提升經(jīng)驗(yàn),個(gè)人效率會(huì)變高”(第336頁(yè))而 “高效的學(xué)習(xí)一般需要明確的任務(wù)和因人而異的適當(dāng)難度,以及及時(shí)的反饋和重復(fù)或者修正錯(cuò)誤的機(jī)會(huì)”(20~21頁(yè))Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life (實(shí)踐中認(rèn)知:心智、數(shù)學(xué)與日常文化) 是這個(gè)觀點(diǎn)的一本有趣參考書(shū)籍。
  • 如果你愿意,你可以去讀四年大學(xué)(或再讀研究生)。這可以讓你滿足一些工作的學(xué)歷要求,同時(shí)也可讓你對(duì)這個(gè)領(lǐng)域有更深的認(rèn)識(shí)。但如你不喜歡上學(xué),你也能(得有犧牲)通過(guò)工作獲得類(lèi)似的經(jīng)驗(yàn)。無(wú)論如何,只讀書(shū)是不夠的?!禢ew Hacker’s Dictionary》的作者Eric Raymond 曾經(jīng)說(shuō)過(guò):“計(jì)算機(jī)的教育無(wú)法讓人成為編程的專(zhuān)家,正如研究畫(huà)筆與顏料不能讓人成為專(zhuān)業(yè)畫(huà)家一樣。” 一個(gè)在我所有招聘過(guò)的人中屬于最優(yōu)秀之一的程序員只有高中畢業(yè),但他寫(xiě)出很多很棒程序,他甚至有自己的新聞組。他獲得的股票期權(quán)使得他可以擁有自己的午夜酒吧。
  • 跟其他程序員一起完成項(xiàng)目。在一些項(xiàng)目中成為最好的程序員;在一些中則充當(dāng)最差的一個(gè)。當(dāng)你是最佳的,你要測(cè)試自己領(lǐng)導(dǎo)項(xiàng)目的能力,并以你的能力鼓勵(lì)他人。當(dāng)你是最差的,要看看高手做些什么,他們不喜歡做什么 (因?yàn)樗麄儠?huì)叫你去幫他們做)。
  • 接手別的程序員完成項(xiàng)目。全心投入并理解別人的程序。當(dāng)原作者不在的時(shí)候,看看在理解與修改時(shí)有什么要注意的。想想如何設(shè)計(jì)你的程序使得后來(lái)維護(hù)的人容易上手。
  • 至少學(xué)會(huì)六門(mén)編程語(yǔ)言。一種要支持類(lèi)/對(duì)象(class abstractions)的語(yǔ)言,如Java或C++;一種函數(shù)式(functional abstraction)語(yǔ)言,如 LISP 或 ML;一種支持語(yǔ)法抽象(syntactic abstraction) 的語(yǔ)言如 LISP;一種聲明式語(yǔ)言, 如Prolog或 C++模版;一種支持協(xié)同式(coroutines)編程,如 Icon 或 Scheme;還有一種支持并行(parallelism)的語(yǔ)言,如 Sisal。
  • 記住在“計(jì)算機(jī)科學(xué)” 中包括”計(jì)算機(jī)” 這個(gè)詞。要知道你的計(jì)算機(jī)執(zhí)行一條指令需要多久,到內(nèi)存中取一個(gè)字需要多久(緩存是否擊中),到磁盤(pán)讀取連續(xù)的字需要多久,而磁盤(pán)的定位又需要多久。(解答見(jiàn)文末)
  • 進(jìn)行語(yǔ)言標(biāo)準(zhǔn)化的工作??梢韵袷怯葾NSI C++ 委員會(huì),或由你自己的團(tuán)隊(duì),來(lái)決定你們的編碼風(fēng)格,譬如說(shuō)縮排是2或4個(gè)空格。不管怎樣,你都能學(xué)到別人到底喜歡什么,對(duì)語(yǔ)言的感受有多深,甚至能了解到一點(diǎn)他們?yōu)槭裁从羞@樣的感覺(jué)。
  • 并具備良好的判斷力,也別老糾纏在語(yǔ)言標(biāo)準(zhǔn)化上。

  談了上面所有的想法后,我不禁要問(wèn)究竟能從書(shū)上學(xué)到多少。在第一個(gè)孩子出生前,我讀完了所有的 “怎樣…” 的書(shū),仍覺(jué)得自己是個(gè)一無(wú)所知的(照顧孩子的)菜鳥(niǎo)。30個(gè)月后,第二個(gè)孩子出世,我要重回這些書(shū)好好復(fù)習(xí)么? 不!取而代之的是,我開(kāi)始相信自己的個(gè)人經(jīng)驗(yàn)。這些難得的經(jīng)驗(yàn),比專(zhuān)家寫(xiě)的幾千頁(yè)手冊(cè)還要有用,而且讓我重新找到了自信。

  Fred Brooks (譯注: <人月神話>作者) 在他的文章 沒(méi)有銀彈 中指出,發(fā)掘卓越軟體設(shè)計(jì)者的三部曲:

  1. 盡早盡可能地以系統(tǒng)化的方式發(fā)掘最佳設(shè)計(jì)人員。
  2. 給有潛力者指派生涯規(guī)劃師,并謹(jǐn)慎地規(guī)劃他們的職業(yè)生涯。
  3. 提供機(jī)會(huì)給正在成長(zhǎng)的程序員,讓他們能相互影響,彼此激勵(lì)。

  這里假定了某些人已具備成為卓越設(shè)計(jì)師的必要潛能;工作只是誘導(dǎo)他們前進(jìn)。Alan Perlis 說(shuō)得更簡(jiǎn)潔了,你可以教任何人學(xué)雕塑,但對(duì)米開(kāi)朗基羅而言,要教他的反倒是有哪些事不要做,卓越的程序員也一樣。

  所以,盡管買(mǎi)那些 Java 書(shū)吧!你或許能從中找到點(diǎn)有用的,但是在24小時(shí),幾天或者幾個(gè)月中,這些都不會(huì)改變你的人生,你也不能掌握一個(gè)真正的程序員應(yīng)該具備的真正的綜合的技能。

  參考文獻(xiàn):

  · 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.

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

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

________________________________

解答:

各種操作的時(shí)間,以2001年夏季,典型配置的 1GHz 個(gè)人計(jì)算機(jī)為標(biāo)準(zhǔn):

執(zhí)行單一指令1 納秒
從L1 高速緩存取一個(gè)字2 納秒
從內(nèi)存取一個(gè)字10 納秒
從磁盤(pán)取連續(xù)存放的一個(gè)字200 納秒
磁盤(pán)尋址并取字8 毫秒

________________________________

it知識(shí)庫(kù)十年學(xué)會(huì)程序設(shè)計(jì),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 男女视频在线观看免费高清观看 | 久久精品国产2020观看福利色 | 超人碰碰碰人人成碰人 | 日韩二三区 | 国产区一区二 | 免费女人扒开下面无遮挡 | 精品免费在线视频 | 激情文学区 | 日韩1234| 国产精品合集一区二区三区 | 美女被免费视频网站九色 | 亚洲第一区视频在线观看 | 日本道精品一区二区三区 | 激情综合网婷婷 | 亚洲国产成人精彩精品 | 国产高清视频91 | 婷婷六月丁 | 特大毛片 | 伊人啪啪网| 日韩视频一区二区三区 | 麻豆国内精品久久久久久 | 男女免费视频网站 | 国产在线精品国自产拍影院同性 | 欧美ol丝袜高跟秘书在线观看 | 91se精品免费观看 | 91热精品视频 | 日色网 | 国产xxxxxx久色视频在 | 午夜久久网 | 成人特黄午夜性a一级毛片 成人婷婷 | 日韩一区国产二区欧美三区 | 欧美综合色另类图片区 | 97视频国产| 色多多www | 精品日韩一区二区三区 | 国产一级毛片午夜福 | 六月综合网 | 国产美女在线免费观看 | 色综合天天综久久久噜噜噜久久〔 | 国产成人亚洲欧美激情 | 一本色道久久鬼综合88 |