掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
下面是一個《Teach Yourself C++ in 21 Days》的流程圖,請各位程序員同仁認真領會。如果有必要,你可以查看這個圖書以作參照:http://www.china-pub.com/27043

看完上面這個圖片,我在想,我學習C++有12年了,好像C++也沒有學得特別懂,看到STL和泛型,還是很頭大。不過,我應該去考慮研究量子物理 和生物化學,這樣,我才能重返98年殺掉還在大學的我,然后達到21天搞定C++的目標。另外,得要特別提醒剛剛開始學習C++的朋友,第21天的時候, 小心被人殺害。呵呵。
當然,上面只是一個惡搞此類圖片,學習一門技術(shù),需要你很長的時間,正如圖片中的第三圖和第四圖所示,你需要用十年的時間去不斷在嘗試,并在錯誤中總結(jié)經(jīng)驗教訓,以及在項目開發(fā)中通過與別人相互溝通互相學習來歷練自己。你才能算得上是真正學會。
這里有篇文章叫《Teach Yourself Programming in Ten Years》,網(wǎng)上有人翻譯了一下,不過原文已被更新了,我把網(wǎng)上的譯文轉(zhuǎn)載并更新如下:
走進任何一家書店,你會看見《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個搜索結(jié)果。前面的78個是計算機書籍(第79個是《Learn Bengali in 30 days》,30天學會孟加拉語)。我把關(guān)鍵詞“days”換成“hours”,得到了非常相似的結(jié)果:這次有253本書,頭77本是計算機書籍,第78本是《Teach Yourself Grammar and Style in 24 Hours》(24小時學會文法和文體)。頭200本書中,有96%是計算機書籍。 結(jié)論是,要么是人們非常急于學會計算機,要么就是不知道為什么計算機驚人地簡單,比任何東西都容易學會。沒有一本書是要在幾天里教會人們欣賞貝多芬或者量子物理學,甚至怎樣給狗打扮。在《
How to Design Programs》這本書里說“
Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.” (壞的程序是很容易的,就算他們是笨蛋白癡都可以在21天內(nèi)學會。) 讓我們來分析一下像《Learn C++ in Three Days》(3天學會C++)這樣的題目到底是什么意思:
一些研究者(Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973)) 的研究表明,在許多領域,都需要大約10 年時間才能培養(yǎng)出專業(yè)技能,包括國際象棋、作曲、繪畫、鋼琴、游泳、網(wǎng)球,以及神經(jīng)心理學和拓撲學的研究。似乎并不存在真正的捷徑:即使是莫扎特,他4 歲就顯露出音樂天才,在他寫出世界級的音樂之前仍然用了超過13年時間。再看另一種音樂類型的披頭士,他們似乎是在1964年的Ed Sullivan節(jié)目中突然冒頭的。但其實他們從1957年就開始表演了,即使他們很早就顯示出了巨大的吸引力,他們第一次真正的成功——Sgt. Peppers——也要到1967年才發(fā)行。Malcolm Gladwell 研究報告稱,把在伯林音樂學院學生一個班的學生按水平分成高中低,然后問他們對音樂練習花了多少工夫:
在這三個小組中的每一個人基本上都是從相同的時間開始練習的(在五歲的時候)。在開始的幾年里,每個人都是每周練習2-3 個小時。但是在八歲的時候,練習的強度開始顯現(xiàn)差異。在這個班中水平最牛的人開始比別人練習得更多——在九歲的時候每周練習6個小時,十二歲的時候,每周 8個小時,十四歲的時候每周16個小時,并在成長過程中練習得越來越多,到20歲的時候,其每周練習可超過30個小時。到了20歲,這些優(yōu)秀者在其生命中 練習音樂總共超過 10,000 小時。與之對比,其它人只平均有8,000小時,而未來只能留校當老師的人僅僅是4,000 小時。
所以,這也許需要10,000 小時,并不是十年,但這是一個magic number。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.) 下面是我在編程這個行當里獲得成功的處方:
抱著這些想法,我很懷疑從書上到底能學到多少東西。在我第一個孩子出生前,我讀完了所有“怎樣……”的書,卻仍然感到自己是個茫無頭緒的新手。30 個月后,我第二個孩子出生的時候,我重新拿起那些書來復習了嗎?不。相反,我依靠我自己的經(jīng)驗,結(jié)果比專家寫的幾千頁東西更有用更靠得住。
Fred Brooks在他的短文《No Silver Bullets》(沒有銀彈)中確立了如何發(fā)現(xiàn)杰出的軟件設計者的三步規(guī)劃:
這實際上是假定了有些人本身就具有成為杰出設計師的必要潛質(zhì);要做的只是引導他們前進。Alan Perlis說得更簡潔:“每個人都可以被教授如何雕塑;而對米開朗基羅來說,能教給他的倒是怎樣能夠不去雕塑。杰出的程序員也一樣”。
所以盡管去買那些Java書;你很可能會從中找到些用處。但你的生活,或者你作為程序員的真正的專業(yè)技術(shù),并不會因此在24小時、24天甚至24個月內(nèi)發(fā)生真正的變化。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流