ai

考慮到一切,僅僅通過書本學(xué)習(xí)你能走多遠(yuǎn)是個值得懷疑的問題望几。

雷鋒網(wǎng) AI 科技評論按端礼,相信很多做技術(shù)的同學(xué)都自學(xué)過括饶,也看過「Teach Yourself Programming in Ten Years」這篇文章囊咏。雖然離初次發(fā)表已經(jīng)好幾年了恕洲,但所有試圖自學(xué)編程的人都應(yīng)該發(fā)自內(nèi)心的同意它的說法(除去少數(shù)過時的具體技術(shù)部分)塔橡。直到今天,這篇經(jīng)典的文章依然很有借鑒意義霜第。以下是這篇文章的中文版葛家。

為什么每個人都這么匆忙?

走進(jìn)任何書店泌类,你都會看到如何在 24 小時內(nèi)自學(xué) Java癞谒,同時你還可以看到很多在幾天或幾小時內(nèi)學(xué)會 C、SQL末誓、Ruby、算法等等的書籍书蚪。在亞馬遜使用「title: teach, yourself, hours, since: 2000」進(jìn)行高級搜索喇澡,我發(fā)現(xiàn)了 512 本這樣的書。在排在前十名的書籍中殊校,有九本是編程書籍晴玖,剩下一本是關(guān)于財務(wù)管理的。用「teach yourself」代替「learn」为流,或者用「day」代替「hours」產(chǎn)生的結(jié)果類似呕屎。

結(jié)論是,要么人們急于學(xué)習(xí)編程敬察,要么編程比其他任何東西都更容易學(xué)習(xí)秀睛。Felleisen 等人在他們的書《How to Design Programs》中提到,「糟糕的編程很容易莲祸,即便是白癡都可以在 21 天內(nèi)學(xué)會」時蹂安,請對這一觀點(diǎn)表示贊同。

讓我們來分析一下在 24 小時內(nèi)學(xué)會 C++意味著什么:

自學(xué):24 小時內(nèi)锐帜,你將沒有時間寫幾個重要的程序田盈,并從成功和失敗中吸取教訓(xùn)。你將沒有時間和一個有經(jīng)驗(yàn)的程序員一起工作缴阎,并理解在 C++環(huán)境中編程會是什么樣子允瞧。簡而言之,你將沒有時間去學(xué)習(xí)多少東西蛮拔。所以這本書只能說是膚淺的熟悉述暂,而不是深刻的理解。正如 Alexander Pope 所說建炫,只學(xué)會一點(diǎn)點(diǎn)點(diǎn)東西是危險的

C++:在 24 小時內(nèi)贸典,你也許能夠?qū)W習(xí) C++的一些語法(前提是你已經(jīng)知道了另一種語言),但是你不能學(xué)到多少關(guān)于如何使用這門語言的知識踱卵。簡而言之廊驼,如果你是一個基層的程序員据过,你可以學(xué)習(xí)用 C++語法編寫 BASIC 程序,但是你不能學(xué)習(xí)到 C++真正的優(yōu)缺點(diǎn)妒挎。那又有什么意義呢绳锅?Alan Perlis 曾經(jīng)說過:「一種不影響你編程思維方式的語言,是不值得學(xué)習(xí)的酝掩×圮剑」有一種可能是,你必須學(xué)習(xí)一點(diǎn) C++(或者是 JavaScript 之類的東西)期虾,因?yàn)槟阈枰矛F(xiàn)有的工具接口來完成特定的任務(wù)原朝。但這種情況下,你不是在學(xué)習(xí)如何編程镶苞,而是在學(xué)習(xí)如何完成這項(xiàng)任務(wù)喳坠。

在 24 小時內(nèi):不幸的是,這根本不夠茂蚓,正如下面所說的那樣壕鹉。

用十年時間自學(xué)編程

很多研究人員發(fā)現(xiàn),在各種領(lǐng)域要成為專家大約需要十年時間聋涨,這些領(lǐng)域包括國際象棋晾浴、音樂創(chuàng)作、電報牍白、繪畫脊凰、鋼琴演奏、游泳茂腥、網(wǎng)球和科學(xué)研究笙各、神經(jīng)心理學(xué)和拓?fù)鋵W(xué)等等。成功的關(guān)鍵是不斷的實(shí)踐:不只是一次又一次地做础芍,而是每次都用一個超出你目前能力的任務(wù)挑戰(zhàn)你自己杈抢,嘗試去解決它,在做它的同時和之后分析你的表現(xiàn)仑性,糾正錯誤惶楼,然后重復(fù)這個循環(huán)。人和事情都沒有真正的捷徑:即便對莫扎特來說也是如此诊杆。4 歲就被稱為音樂天才的他歼捐,在開始創(chuàng)作世界級的音樂之前又花了 13 年時間來打磨自己。另一個例子是披頭士樂隊(duì)晨汹。披頭士樂隊(duì)似乎以一系列的熱門歌曲和 1964 年在艾德沙利文秀上的亮相而一夜成名豹储。但實(shí)際上自從 1957 年以來,他們一直在 Liverpool 和 Hamburg 的小酒吧里面演出淘这,雖然很早以前他們就受到大眾的歡迎剥扣,但他們第一次取得重大成功的專輯「Sgt. Peppers」是在 1967 年發(fā)布的巩剖。

Malcolm Gladwell 已經(jīng)普及了這個想法,盡管他的觀點(diǎn)是 10000 小時專注的努力钠怯,而不是 10 年佳魔。Henri Cartier-Bresson (1908-2004) 有一句名言:「你的前 10000 張照片是你最差的作品』薮叮」(他沒有預(yù)料到使用數(shù)碼相機(jī)鞠鲜,有些人可以在一周內(nèi)就拍完 10000 張照片。)真正成為專家可能需要一輩子:Samuel Johnson(1709-1784)說:「成為任何領(lǐng)域的卓越人士都需要畢生的努力断国,投機(jī)取巧并不可行」贤姆。Chaucer (1340-1400) 抱怨說:「人生太短暫了,而知識是無窮的」稳衬。Hippocrates (約公元前 400 年) 因?yàn)槟蔷涿浴竌rs longa, vita brevis」而被人稱頌霞捡,這句話的原文是「Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile」,意思是「生命很短暫宋彼,但是技藝卻很高深弄砍,機(jī)遇轉(zhuǎn)瞬即逝仙畦,探索難以捉摸输涕,抉擇困難重重」。

當(dāng)然慨畸,沒有一個數(shù)字可以作為最終的答案莱坎,假定所有的技能(如編程、下棋寸士、跳棋和音樂演奏)都需要完全相同的時間來掌握檐什,或者所有人都需要完全相同的時間是不合理的。正如 K. Anders Ericsson 教授所說弱卡,「在大多數(shù)領(lǐng)域乃正,即使是最有才華的人也需要很多時間才能達(dá)到最高水平,這是非常值得注意的婶博。10000 小時這個數(shù)字讓你感覺到瓮具,我們說的是一周 10 到 20 個小時》踩耍」

你想成為一名程序員

以下是我的編程秘訣:

對編程感興趣名党,因?yàn)榕d趣而編程。請保持足夠的興趣挠轴,以便你愿意投入你的 10 年或者 10000 小時传睹。

編碼。最好的學(xué)習(xí)方式是實(shí)踐岸晦。更嚴(yán)格地說欧啤,「在特定領(lǐng)域中睛藻,一個人的最高水平不是由于經(jīng)驗(yàn)的積累自動獲得的,而是經(jīng)過深思熟慮的改進(jìn)堂油,經(jīng)驗(yàn)豐富的人也可以提高水平修档。」府框,「最有效的學(xué)習(xí)需要有一個明確的任務(wù)吱窝,對特定的人來說難度適中,還要有信息反饋以及重復(fù)試錯和糾正錯誤的機(jī)會迫靖≡合浚」「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」這本書正是這一觀點(diǎn)的有趣參考。

與其他程序員交談系宜;閱讀其他程序照激。這比任何書籍或培訓(xùn)課程都重要。

如果你愿意盹牧,可以在大學(xué)(或研究生院)呆四年俩垃。這將使你有機(jī)會獲得一份需要證書的工作,讓你對這個領(lǐng)域有更深的了解汰寓,但如果你不喜歡學(xué)校口柳,你可以自學(xué)或在工作中獲得類似的經(jīng)驗(yàn)。無論如何有滑,光靠書本知識是遠(yuǎn)遠(yuǎn)不夠的跃闹。「The New Hacker's Dictionary」的作者 Eric Raymond 說:「計算機(jī)科學(xué)教育不能使任何人成為一個專業(yè)的程序員毛好,就像學(xué)習(xí)刷子和顏料不可以使某人成為一個專業(yè)的畫家一樣望艺。」我雇用過的最好的程序員之一只有高中學(xué)歷肌访,他開發(fā)了許多優(yōu)秀的軟件找默,擁有自己的團(tuán)隊(duì),并且擁有足夠買下一個夜店的股票期權(quán)吼驶。

與其他程序員一起做項(xiàng)目惩激。在某些項(xiàng)目上你是最好的程序員,而在某些項(xiàng)目上你是最差的程序員旨剥。當(dāng)你是最好的時候咧欣,你可以鍛煉主導(dǎo)一個項(xiàng)目的能力,并用你的遠(yuǎn)見激勵別人轨帜。當(dāng)你是最壞的時候魄咕,你可以學(xué)習(xí)大師們做什么,觀察他們不喜歡做什么(因?yàn)樗麄儠屇銥樗麄冏鲎约翰幌矚g的事情)蚌父。

接手其他程序員的項(xiàng)目哮兰,理解別人寫的程序毛萌。當(dāng)原來的程序員不在時,學(xué)習(xí)需要怎樣理解和修復(fù)程序喝滞。想想如何設(shè)計你的程序阁将,讓那些在你之后的人維護(hù)它們更容易些。

學(xué)習(xí)至少六種編程語言右遭。包括一種強(qiáng)調(diào)類抽象的語言(如 Java 或 C++)做盅,它強(qiáng)調(diào)函數(shù)抽象的語言(如 Lisp 或 ML 或 Haskell),一種支持句法抽象的語言(如 Lisp)窘哈,一種支持聲明性規(guī)范的語言(如 Prolog 或 C++模板)吹榴,一種強(qiáng)調(diào)并發(fā)性的語言(像 Clojure 或 Go)。

記住「computer science」中有一個「computer」滚婉。知道計算機(jī)執(zhí)行一條指令图筹、從內(nèi)存中提取一個字符(有或沒有緩存)、從磁盤中讀取連續(xù)的字符以及在磁盤上尋找新的位置需要多長時間让腹。

參與語言標(biāo)準(zhǔn)化工作远剩。它可能是 ANSI C++委員會,也可以是決定你自己的本地編碼風(fēng)格是有 2 個或者 4 個空間縮進(jìn)骇窍。無論哪種方式瓜晤,你都可以了解到其他人對一種語言的喜好,他們的感受有多深像鸡,甚至可能了解他們的感受活鹰。

有很好的判斷力哈恰,盡快適應(yīng)語言的標(biāo)準(zhǔn)化

考慮到這一切只估,僅僅通過書本學(xué)習(xí)你能走多遠(yuǎn)是個值得懷疑的問題。在我的第一個孩子出生之前着绷,我讀完了所有的「How To」類型的書蛔钙,但仍然覺得自己像個笨手笨腳的新手。30 個月后荠医,當(dāng)我的第二個孩子出生時吁脱,我重新學(xué)習(xí)了那些書本知識嗎?不彬向,相反兼贡,我依靠的是我的個人經(jīng)驗(yàn),這比專家們寫的幾千頁書更有用娃胆,更讓我放心遍希。

Fred Brooks 在他的論文《No Silver Bullet》中指出了尋找優(yōu)秀軟件設(shè)計師的三個步驟:

盡早系統(tǒng)地發(fā)掘頂級程序員。

指派一名職業(yè)導(dǎo)師負(fù)責(zé)指導(dǎo)他里烦,并謹(jǐn)慎對待履歷凿蒜。

為成長中的程序員提供相互交流和互相激勵的機(jī)會禁谦。

這假設(shè)一些人已經(jīng)具備成為一個偉大的程序師所必需的素質(zhì),那么你的工作就是適當(dāng)?shù)睾弪_他們废封。Alan Perlis 的說法更加簡潔:「每個人都可以學(xué)會雕刻州泊,但 Michelangelo 必須學(xué)會如何不雕刻。對偉大的程序員來說也是如此漂洋∫T恚」Perlis 認(rèn)為,偉人有一些超越訓(xùn)練的內(nèi)在品質(zhì)刽漂。但是這些品質(zhì)是從哪里來的呢渴肉?是先天的嗎?或者他們是通過勤奮養(yǎng)成的爽冕?正如 Auguste Gusteau 所說:「任何人都能學(xué)會做飯仇祭,但只有無畏的人才是偉大的【被」我認(rèn)為這更像是愿意將一生中大部分時間投入到某種實(shí)踐中乌奇,但也許無畏是總結(jié)這一點(diǎn)的一種方式∶杏椋或者礁苗,正如 Gusteau 的批評家 Anton Ego 所說:「不是每個人都能成為偉大的藝術(shù)家,但偉大的藝術(shù)家可以來自任何地方徙缴∈曰铮」

所以繼續(xù)購買 Java/Ruby /JavaScript /PHP 書籍吧,你可能會從中得到一些有用的東西于样。但是它們不會在 24 小時或 21 天內(nèi)改變你的生活疏叨,也不會教會你作為一個程序員所需要的所有專業(yè)知識。何不努力工作穿剖,在接下來的 24 個月內(nèi)不斷改進(jìn)蚤蔓?

作者:來杯牛奶唄
鏈接:http://www.reibang.com/p/6ed1a5dfa937
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)糊余,非商業(yè)轉(zhuǎn)載請注明出處秀又。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市贬芥,隨后出現(xiàn)的幾起案子吐辙,更是在濱河造成了極大的恐慌,老刑警劉巖蘸劈,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昏苏,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捷雕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門椒丧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人救巷,你說我怎么就攤上這事壶熏。” “怎么了浦译?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵棒假,是天一觀的道長。 經(jīng)常有香客問我精盅,道長帽哑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任叹俏,我火速辦了婚禮妻枕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粘驰。我一直安慰自己屡谐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布蝌数。 她就那樣靜靜地躺著愕掏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顶伞。 梳的紋絲不亂的頭發(fā)上饵撑,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機(jī)與錄音唆貌,去河邊找鬼滑潘。 笑死,一個胖子當(dāng)著我的面吹牛挠锥,可吹牛的內(nèi)容都是我干的众羡。 我是一名探鬼主播侨赡,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼蓖租,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了羊壹?” 一聲冷哼從身側(cè)響起蓖宦,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎油猫,沒想到半個月后稠茂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年睬关,在試婚紗的時候發(fā)現(xiàn)自己被綠了诱担。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡电爹,死狀恐怖蔫仙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丐箩,我是刑警寧澤摇邦,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站屎勘,受9級特大地震影響施籍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜概漱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一丑慎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓤摧,春花似錦立哑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至产喉,卻和暖如春捂掰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背曾沈。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工这嚣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人塞俱。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓姐帚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親障涯。 傳聞我的和親對象是個殘疾皇子罐旗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 相信很多做技術(shù)的同學(xué)都自學(xué)過,也看過“Teach Yourself Programming in Ten Year...
    你怎么又在胡說八道閱讀 407評論 0 0
  • 本文精選了 PHP開發(fā) 者2016年4月和5月的10篇熱門文章唯蝶。其中有技術(shù)分享和技術(shù)資源九秀。 《為什么大型網(wǎng)站前端使...
    見背閱讀 105評論 0 1
  • 畢業(yè)年薪百萬?跟我來聊聊量化金融粘我! 關(guān)注:公眾號:實(shí)習(xí)工作那些事 Quantitative Finance 什么樣...
    3e15d0f92bd5閱讀 316評論 0 0
  • 一鼓蜒、HelloWorld HelloWorld 是經(jīng)典的編程入門程序,指在編寫代碼生成程序,運(yùn)行該程序?qū)诔绦蛑?..
    張小龍_aba0閱讀 67評論 0 0
  • 1 數(shù)組也是一種類型 Java中要求所有的數(shù)組元素具有相同的數(shù)據(jù)類型都弹。因此在一個數(shù)組中娇豫,數(shù)組元素的類型是唯一的,不...
    9K賬號閱讀 443評論 0 0