青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++博客 聯系 聚合 管理  

Blog Stats

文章分類

隨筆檔案

文章檔案

Albert.W的窩兒

10年編程無師自通

出處:Teach Yourself Programming in Ten Years ,Peter Norvig 郭曉剛翻譯

 

為什么每個人都急不可耐? 

走進任何一家書店,你會看見《Teach Yourself Java in 7 Days》(7天Java無師自通)的旁邊是一長排看不到盡頭的類似書籍,它們要教會你Visual Basic、Windows、Internet等等,而只需要幾天甚至幾小時。我在Amazon.com上進行了如下搜索: 
    pubdate: after 1992 and title: days and (title: learn or title: teach yourself) 
    (出版日期:1992年后 and 書名:天 and (書名:學會 or 書名:無師自通)) 
我一共得到了248個搜索結果。前面的78個是計算機書籍(第79個是《Learn Bengali in 30 days》,30天學會孟加拉語)。我把關鍵詞“days”換成“hours”,得到了非常相似的結果:這次有253本書,頭77本是計算機書籍,第78 本是《Teach Yourself Grammar and Style in 24 Hours》(24小時學會文法和文體)。頭200本書中,有96%是計算機書籍。 
結論是,要么是人們非常急于學會計算機,要么就是不知道為什么計算機驚人地簡單,比任何東西都容易學會。沒有一本書是要在幾天里教會人們貝多芬或者量子物理學,甚至怎樣幫狗打扮。 
讓我們來分析一下像《Learn Pascal in Three Days》(3天學會Pascal)這樣的題目到底是什么意思: 

 

學會:在3天時間里,你不夠時間寫一些有意義的程序,并從它們的失敗與成功中學習。你不夠時間跟一些有經驗的程序員一起工作,你不會知道在那樣的環境中是什么滋味。簡而言之,沒有足夠的時間讓你學到很多東西。所以這些書談論的只是表面上的精通,而非深入的理解。如Alexander Pope(英國詩人、作家,1688-1744)所言,一知半解是危險的(a little learning is a dangerous thing) 

Pascal:在3天時間里你可以學會Pascal的語法(如果你已經會一門類似的語言),但你無法學到多少如何運用這些語法。簡而言之,如果你是,比如說一個Basic程序員,你可以學會用Pascal語法寫出Basic風格的程序,但你學不到Pascal真正的優點(和缺點)。那關鍵在哪里? Alan Perlis(ACM第一任主席,圖靈獎得主,1922-1990)曾經說過:“如果一門語言不能影響你對編程的想法,那它就不值得去學”。另一種觀點是,有時候你不得不學一點Pascal(更可能是Visual Basic和javascript之類)的皮毛,因為你需要接觸現有的工具,用來完成特定的任務。但此時你不是在學習如何編程,你是在學習如何完成任務。 

3天:不幸的是,這是不夠的,正如下一節所言。 

 

 

10年編程無師自通 

一些研究者(Hayes、Bloom)的研究表明,在許多領域,都需要大約10 年時間才能培養出專業技能,包括國際象棋、作曲、繪畫、鋼琴、游泳、網球,以及神經心理學和拓撲學的研究。似乎并不存在真正的捷徑:即使是莫扎特,他4 歲就顯露出音樂天才,在他寫出世界級的音樂之前仍然用了超過13年時間。再看另一種音樂類型的披頭士,他們似乎是在1964年的Ed Sullivan節目中突然冒頭的。但其實他們從1957年就開始表演了,即使他們很早就顯示出了巨大的吸引力,他們第一次真正的成功——Sgt. Peppers——也要到1967年才發行。Samuel Johnson(英國詩人)認為10 年還是不夠的:“任何領域的卓越成就都只能通過一生的努力來獲得;稍低一點的代價也換不來。”(Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.)喬叟(Chaucer,英國詩人,1340-1400)也抱怨說:“生命如此短暫,掌握技藝卻要如此長久。”(the lyf so short, the craft so long to lerne.) 
下面是我在編程這個行當里獲得成功的處方: 

 

對編程感興趣,因為樂趣而去編程。確定始終都能保持足夠的樂趣,以致你能夠將10年時間投入其中。 

跟其他程序員交談;閱讀其他程序。這比任何書籍或訓練課程都更重要。 

編程。最好的學習是從實踐中學習。用更加技術性的語言來講,“個體在特定領域最高水平的表現不是作為長期的經驗的結果而自動獲得的,但即使是非常富有經驗的個體也可以通過刻意的努力而提高其表現水平。”(p. 366),而且“最有效的學習要求為特定個體制定適當難度的任務,有意義的反饋,以及重復及改正錯誤的機會。”(p. 20-21)《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life》(在實踐中認知:心智、數學和日常生活的文化)是關于這個觀點的一本有趣的參考書。 

如果你愿意,在大學里花上4年時間(或者再花幾年讀研究生)。這能讓你獲得一些工作的入門資格,還能讓你對此領域有更深入的理解,但如果你不喜歡進學校,(作出一點犧牲)你在工作中也同樣能獲得類似的經驗。在任何情況下,單從書本上學習都是不夠的。“計算機科學的教育不會讓任何人成為內行的程序員,正如研究畫筆和顏料不會讓任何人成為內行的畫家”, Eric Raymond,《The New Hackers Dictionary》(新黑客字典)的作者如是說。我曾經雇用過的最優秀的程序員之一僅有高中學歷;但他創造出了許多偉大的軟件,甚至有討論他本人的新聞組,而且股票期權讓他達到我無法企及的富有程度(譯注:指Jamie Zawinski,Xemacs和Netscape的作者)。 

跟別的程序員一起完成項目。在一些項目中成為最好的程序員;在其他一些項目中當最差的一個。當你是最好的程序員時,你要測試自己領導項目的能力,并通過你的洞見鼓舞其他人。當你是最差的時候,你學習高手們在做些什么,以及他們不喜歡做什么(因為他們讓你幫他們做那些事)。 

接手別的程序員完成項目。用心理解別人編寫的程序。看看在沒有最初的程序員在場的時候理解和修改程序需要些什么。想一想怎樣設計你的程序才能讓別人接手維護你的程序時更容易一些。 

學會至少半打編程語言。包括一門支持類抽象(class abstraction)的語言(如Java或C++),一門支持函數抽象(functional abstraction)的語言(如Lisp或ML),一門支持句法抽象(syntactic abstraction)的語言(如Lisp),一門支持說明性規約(declarative specification)的語言(如Prolog或C++模版),一門支持協程(coroutine)的語言(如Icon或Scheme),以及一門支持并行處理(parallelism)的語言(如Sisal)。 

記住在“計算機科學”這個詞組里包含“計算機”這個詞。了解你的計算機執行一條指令要多長時間,從內存中取一個word要多長時間(包括緩存命中和未命中的情況),從磁盤上讀取連續的數據要多長時間,定位到磁盤上的新位置又要多長時間。(答案在這里。) 

嘗試參與到一項語言標準化工作中。可以是ANSI C++委員會,也可以是決定自己團隊的編碼風格到底采用2個空格的縮進還是4個。不論是哪一種,你都可以學到在這門語言中到底人們喜歡些什么,他們有多喜歡,甚至有可能稍微了解為什么他們會有這樣的感覺。 

擁有盡快從語言標準化工作中抽身的良好判斷力。 


抱著這些想法,我很懷疑從書上到底能學到多少東西。在我第一個孩子出生前,我讀完了所有“怎樣……”的書,卻仍然感到自己是個茫無頭緒的新手。 30個月后,我第二個孩子出生的時候,我重新拿起那些書來復習了嗎?不。相反,我依靠我自己的經驗,結果比專家寫的幾千頁東西更有用更靠得住。 
Fred Brooks在他的短文《No Silver Bullets》(沒有銀彈)中確立了如何發現杰出的軟件設計者的三步規劃: 

 

盡早系統地識別出最好的設計者群體。 

指派一個事業上的導師負責有潛質的對象的發展,小心地幫他保持職業生涯的履歷。 

讓成長中的設計師們有機會互相影響,互相激勵。 


這實際上是假定了有些人本身就具有成為杰出設計師的必要潛質;要做的只是引導他們前進。Alan Perlis說得更簡潔:“每個人都可以被教授如何雕塑;而對米開朗基羅來說,能教給他的倒是怎樣能夠不去雕塑。杰出的程序員也一樣”。 
所以盡管去買那些Java書;你很可能會從中找到些用處。但你的生活,或者你作為程序員的真正的專業技術,并不會因此在24小時、24天甚至24個月內發生真正的變化。 

 

參考文獻 

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. 

 

答案 

各種操作的計時,2001年夏天在一臺典型的1GHz PC上完成: 
    執行單條指令            1 納秒 = (1/1,000,000,000) 秒 
    從L1緩存中取一個word        2 納秒 
    從主內存中取一個word        10 納秒 
    從連續的磁盤位置中取一個word    200 納秒 
    從新的磁盤位置中取一個word(尋址) 8,000,000納秒 = 8毫秒

posted on 2007-04-12 20:28 Albert 閱讀(1751) 評論(5)  編輯 收藏 引用

評論

# re: 10年編程無師自通 2007-04-12 22:02 happia
原文鏈接 http://norvig.com/21-days.html  回復  更多評論
  

# re: 10年編程無師自通 2007-04-12 22:20 CPPer
happia:
thanks!  回復  更多評論
  

# re: 10年編程無師自通 2007-04-13 12:16 深藍色的音符
我現在正在讀大學,學習的是網絡技術,現在在學編程.
看了你寫的這篇文章,深有感觸!
謝謝!
受益良多!  回復  更多評論
  

# re: 10年編程無師自通 2007-04-13 12:49 FreePlus
子曾經曰:10年磨一劍1  回復  更多評論
  

# re: 10年編程無師自通 2007-04-14 10:12 wlcsw
謝謝....看了才知道自己的心太急了....努力..  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区视频在线观看| 欧美一区二区在线播放| 亚洲天天影视| 一区二区高清在线观看| 亚洲精品综合久久中文字幕| 亚洲激情女人| 亚洲美洲欧洲综合国产一区| 一区二区日韩免费看| 在线综合+亚洲+欧美中文字幕| 99日韩精品| 午夜精品一区二区三区四区| 欧美专区福利在线| 美日韩在线观看| 亚洲风情在线资源站| 久久最新视频| 亚洲国内高清视频| 亚洲五月六月| 久久亚洲国产成人| 欧美色图五月天| 国产原创一区二区| 亚洲经典一区| 欧美一区二区在线免费观看| 快射av在线播放一区| 亚洲黄色大片| 亚洲欧美日韩在线| 玖玖玖国产精品| 欧美午夜精品久久久| 国内精品视频久久| 这里只有精品电影| 久久久国产一区二区| 亚洲国产成人久久| 香蕉国产精品偷在线观看不卡| 久久亚洲春色中文字幕| 欧美午夜久久| 亚洲电影在线播放| 亚洲性视频网址| 巨胸喷奶水www久久久免费动漫| 亚洲高清自拍| 欧美一区二区三区四区视频 | 国产综合久久久久久| 欧美成人情趣视频| 欧美+亚洲+精品+三区| 99re8这里有精品热视频免费| 欧美一级淫片aaaaaaa视频| 欧美一区二区视频在线观看| 欧美视频免费在线| 欧美日本韩国在线| 亚洲宅男天堂在线观看无病毒| 免费亚洲网站| 国产日韩欧美三级| 午夜久久影院| 午夜欧美精品久久久久久久| 国产欧美精品久久| 欧美在线播放一区| 亚洲国产三级在线| 欧美日韩成人网| 日韩手机在线导航| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲第一精品福利| 性欧美办公室18xxxxhd| 亚洲欧美日韩精品久久久久| 国产精品久久久久久亚洲毛片 | 亚洲视频在线观看| 午夜精品久久久久久久久久久| 一区二区三区波多野结衣在线观看| 国产精品久久夜| 欧美国产先锋| 一区二区亚洲精品| 亚洲一区二区成人在线观看| 国产婷婷色一区二区三区四区| 蜜臀va亚洲va欧美va天堂| 亚洲图色在线| 久久久久国产精品人| 久久综合给合| 亚洲欧美一区二区精品久久久| 久久免费黄色| 欧美国产三级| 影院欧美亚洲| 久久久国产91| 久久青草福利网站| 亚洲欧美日韩天堂一区二区| 国产精品成人va在线观看| 亚洲激情网站| 在线免费不卡视频| 欧美久久久久久蜜桃| 夜夜爽99久久国产综合精品女不卡 | 在线播放国产一区中文字幕剧情欧美 | 国产精品麻豆成人av电影艾秋| 国产精品美女视频网站| 一本久道久久久| 亚洲欧美日韩另类| 激情成人在线视频| 欧美精品v日韩精品v韩国精品v| 欧美激情女人20p| 欧美在线观看一区| 国产精品乱码一区二区三区| 欧美在线日韩精品| 欧美二区在线观看| 国产人妖伪娘一区91| 久久欧美肥婆一二区| 亚洲乱码国产乱码精品精可以看| 99亚洲视频| 欧美日韩和欧美的一区二区| 亚洲一区在线观看视频| 久久成人这里只有精品| 国产精品久久久久久久久免费樱桃 | 久久美女性网| 亚洲女优在线| 99视频有精品| 国产一区二区三区无遮挡| 久久综合伊人77777麻豆| 亚洲一区二区在线看| 99国产精品99久久久久久粉嫩| 久久久久青草大香线综合精品| 日韩视频一区二区| 亚洲日本中文字幕区| 久久精品女人的天堂av| 欧美激情一区| 亚洲欧美国产va在线影院| 在线观看欧美视频| 99视频在线观看一区三区| 一区二区av在线| 久久久久九九视频| 久久精品国产99精品国产亚洲性色 | 久久午夜色播影院免费高清| 久久精品理论片| 欧美性大战久久久久| 在线高清一区| 久久精品国产96久久久香蕉| 国产精品二区在线观看| 黑人一区二区| 久久激情中文| 亚洲一区二区视频在线| 欧美超级免费视 在线| 尤物yw午夜国产精品视频| 亚洲影视在线播放| 国产一区二区在线观看免费| 一本久久精品一区二区| 免费视频最近日韩| 久久久久久一区二区| 精品1区2区| 欧美高清hd18日本| 免费成人黄色av| 亚洲精品人人| 亚洲美女毛片| 欧美午夜视频| 久久精品人人爽| 久久综合久久久久88| 亚洲少妇一区| 亚洲国产导航| 免费日韩视频| 亚洲人成在线观看网站高清| 久久综合久久久| 久久婷婷色综合| 一本一本久久a久久精品牛牛影视| 欧美在线视频导航| 久久五月天婷婷| 99在线精品免费视频九九视| 久久精品动漫| 国产精品毛片va一区二区三区 | 在线一区二区三区做爰视频网站| 亚洲综合成人婷婷小说| 亚洲国产婷婷| 欧美成人午夜激情在线| 1024欧美极品| 欧美黑人在线观看| 国产一区二区高清不卡| 99伊人成综合| 亚洲欧美视频在线| 国产精品久久久久久久久久尿 | 亚洲免费在线看| 欧美一区二区三区婷婷月色| 99在线精品视频| 欧美一区二区观看视频| 亚洲第一在线视频| 久久国产99| 午夜精品福利电影| 欧美成人精品激情在线观看| 欧美在线免费一级片| 欧美小视频在线| 免费在线观看精品| 国产精品爽黄69| 亚洲裸体在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲精品专区| 久久久国产一区二区三区| 亚洲欧美国产高清| 欧美日韩国产另类不卡| 亚洲国语精品自产拍在线观看| 国产一区二区三区在线观看视频| 亚洲专区欧美专区| 在线性视频日韩欧美| 欧美一区影院| 欧美www视频| 一本色道久久88亚洲综合88| 蜜桃av一区二区| 亚洲天堂网站在线观看视频| 性色av一区二区三区| 1769国内精品视频在线播放| 欧美日韩国产一区精品一区|