時間:2019-08-02 19:36:06 作者:johnnyl 瀏覽量:36
相信很多人在追求知識的過程中都有自學過,尤其是編程這一塊,相信自學成才的人站多數,那么為什么有些人成功了,有些人卻失敗了呢?是什么原因導致成功與失敗的,相信他們自己心里肯定都明白,看過“Teach Yourself Programming in Ten Years”這篇文章。雖然離初次宣布現已好幾年了,但一切試圖自學編程的人都應該發自內心的同意它的說法(除掉少量過時的具體技能部分)。直到今日,這篇經典的文章依然很有借鑒含義。以下是這篇文章的中文版。

程序員必讀經典長文圖1
為什么每個人都這么匆忙?
走進任何書店,你都會看到怎么在 24 小時內自學 Java,一起你還能夠看到許多在幾天或幾小時內學會 C、SQL、Ruby、算法等等的書本。在亞馬遜運用“title: teach,yourself,hours,since: 2000”進行高級搜索,我發現了 512 本這樣的書。在排在前十名的書本中,有九本是編程書本,剩下一本是關于財務管理的。用“teach yourself”替代“learn”,或許用“day”替代“hours”發生的成果相似。
結論是,要么人們急于學習編程,要么編程比其他任何東西都更簡單學習。Felleisen 等人在他們的書《How to Design Programs》中提到,“糟糕的編程很簡單,即使是癡人都能夠在 21 天內學會”時,請對這一觀念表明贊同。
讓我們來剖析一下在 24 小時內學會 C++意味著什么:
自學:24 小時內,你將沒有時刻寫幾個重要的程序,并從成功和失敗中吸取教訓。你將沒有時刻和一個有經歷的程序員一同作業,并了解在 C++環境中編程會是什么樣子。簡而言之,你將沒有時刻去學習多少東西。所以這本書只能說是膚淺的熟悉,而不是深入的了解。正如 Alexander Pope 所說,只學會一點點點東西是風險的
C++:在 24 小時內,你或許能夠學習 C++的一些語法(前提是你現已知道了另一種言語),可是你不能學到多少關于怎么運用這門言語的常識。簡而言之,假如你是一個底層的程序員,你能夠學慣用 C++語法編寫 BASIC 程序,可是你不能學習到 C++真實的優缺點。那又有什么含義呢?Alan Perlis 曾經說過:“一種不影響你編程思維方法的言語,是不值得學習的。”有一種或許是,你有必要學習一點 C++(或許是 JavaScript 之類的東西),由于你需求用現有的東西接口來完結特定的使命。但這種狀況下,你不是在學習怎么編程,而是在學習怎么完結這項使命.

程序員必讀經典長文圖2
在 24 小時內:不幸的是,這根本不行,正如下面所說的那樣。
用十年時刻自學編程
許多研究人員發現,在各種范疇要成為專家大約需求十年時刻,這些范疇包含國際象棋、音樂創作、電報、繪畫、鋼琴演奏、游水、網球和科學研究、神經心理學和拓撲學等等。成功的關鍵是不斷的實踐:不只是一次又一次地做,而是每次都用一個超出你現在才能的使命應戰你自己,測驗去處理它,在做它的一起和之后剖析你的表現,糾正錯誤,然后重復這個循環。人和作業都沒有真實的捷徑:即使對莫扎特來說也是如此。4 歲就被稱為音樂天才的他,在開始創作世界級的音樂之前又花了 13 年時刻來打磨自己。另一個比如是披頭士樂隊。披頭士樂隊似乎以一系列的熱門歌曲和 1964 年在艾德沙利文秀上的亮相而一夜成名。但實際上自從 1957 年以來,他們一直在 Liverpool 和 Hamburg 的小酒吧里邊演出,雖然很早以前他們就遭到群眾的歡迎,但他們第一次取得嚴重成功的專輯“Sgt. Peppers”是在 1967 年發布的。
Malcolm Gladwell 現已遍及了這個想法,雖然他的觀念是 10000 小時專心的盡力,而不是 10 年。Henri Cartier-Bresson (1908-2004) 有一句名言:“你的前 10000 張照片是你最差的作品。”(他沒有預料到運用數碼相機,有些人能夠在一周內就拍完 10000 張照片。)真實成為專家或許需求一輩子:Samuel Johnson(1709-1784)說:“成為任何范疇的杰出人士都需求畢生的盡力,投機取巧并不行行”。Chaucer (1340-1400) 訴苦說:“人生太時刻短了,而常識是無窮的”。Hippocrates (約公元前 400 年) 由于那句名言“ars longa,vita brevis”而被人稱頌,這句話的原文是“Ars longa,vita brevis,occasio praeceps,experimentum periculosum,iudicium difficile”,意思是“生命很時刻短,可是技藝卻很深邃,機遇轉瞬即逝,探究難以捉摸,抉擇困難重重”。