2021-01-21

十年內(nèi)自學(xué)編程

彼得·諾維格

為什么大家都這么著急煌恢?

走進任何一家書店,你就會看到如何自學(xué)爪哇 24 小時內(nèi)除了無休止的變化提供教 C, SQL、Ruby世剖、算法等在幾天或幾小時內(nèi)完成。 亞馬遜高級搜索 |標(biāo)題: 教學(xué)笤虫, 自己旁瘫, 小時, 因為: 20發(fā)現(xiàn)了512本這樣的書前十名中琼蚯,有九本是編程書籍(另一本是關(guān)于簿記的)境蜕。類似的結(jié)果來自將"自學(xué)"替換為"學(xué)習(xí)"或"小時"與"天"。

結(jié)論是凌停,要么人大都急于學(xué)習(xí) 關(guān)于編程粱年,或編程是不知何故非常容易 學(xué)習(xí)比什么都重要。 費雷森等罚拟。在他們的書里點頭如何設(shè)計程序台诗, 當(dāng)他們說 "糟糕的編程很容易完箩。白癡可以學(xué)習(xí)它21 天, 即使他們是傻瓜."阿布特魯斯鵝漫畫也有他們采取.

讓我們分析一下標(biāo)題是什么樣的在 24 小時內(nèi)C++一些孩子可能意味著:

自學(xué):在24小時內(nèi),你將沒有時間寫幾個 重要的計劃拉队,并學(xué)習(xí)你的成功和失敗 他們弊知。 您沒有時間與經(jīng)驗豐富的程序員合作, 了解生活在一個C++粱快。 簡而言之秩彤,您 不會有時間學(xué)太多。 所以這本書只能談一個 膚淺的熟悉事哭,不是深刻的理解漫雷。正如亞歷山大·波普說的 一點學(xué)習(xí)是件危險的事情。

C++:在24小時內(nèi)鳍咱,你也許能夠?qū)W習(xí)一些語法 C++(如果你已經(jīng)知道另一種語言)降盹,但你不能 學(xué)習(xí)如何使用語言。 總之谤辜,如果你是蓄坏,說,一個 基本程序員丑念,你可以學(xué)會寫程序的風(fēng)格 基本C++語法涡戳,但無法了解C++是什么 其實好 (和壞) 。 那有什么意義呢脯倚?艾倫 佩利斯曾經(jīng)說過:"一種語言妹蔽,不會影響你的方式 考慮編程,不值得知道"挠将。 一個可能的點是 你必須學(xué)習(xí)一點點C++ (或更可能的東西 像 JavaScript 或處理),因為您需要與 用于完成特定任務(wù)的現(xiàn)有工具编整。但你不是 學(xué)習(xí)如何編程;你正在學(xué)習(xí)完成那個任務(wù)

24 小時內(nèi):不幸的是舔稀,這還不夠,作為下一個 節(jié)顯示掌测。

十年內(nèi)自學(xué)編程

研究人員(綻放 (1985),布萊恩和哈特 (1899),海斯 (1989),西蒙與大通 (1973)) 已顯示它 需要大約十年的時間内贮,以發(fā)展專業(yè)知識,在任何各種 領(lǐng)域汞斧,包括國際象棋夜郁、音樂創(chuàng)作、電報 操作粘勒,繪畫竞端,鋼琴演奏,游泳庙睡,網(wǎng)球和研究 神經(jīng)心理學(xué)和拓撲學(xué)事富。 關(guān)鍵是協(xié)商實踐: 不只是一遍又一遍技俐, 但挑戰(zhàn)自己 任務(wù)超出了你目前的能力,嘗試一下统台, 分析您的性能雕擂,同時和之后這樣做,并糾正 任何錯誤贱勃。 然后重復(fù)井赌。 再重復(fù)一遍 似乎沒有 真正的捷徑:甚至莫扎特,誰是音樂神童在4歲贵扰,采取了 13年前仇穗,他開始制作世界級的音樂。 在 另一種流派拔鹰,披頭士樂隊似乎爆裂到現(xiàn)場與 一串#1和1964年埃德·沙利文秀的出場仪缸。 但他們一直在利物浦和漢堡打小俱樂部, 因為 1957年列肢,雖然他們有大規(guī)模呼吁早期恰画,他們的第一個偉大的 關(guān)鍵的成功,辣椒中士瓷马,于1967年發(fā)行拴还。

馬爾科姆 格拉德韋爾他推廣了這個想法, 雖然他專注于 10欧聘,000 小時片林, 而不是 10 年。 亨利·卡蒂埃-布雷森(1908-2004)還有另一個指標(biāo):"你的前10怀骤,000張照片是你們最差的费封。(他沒有 預(yù)計使用數(shù)碼相機,有些人可以在一周內(nèi)達到這個目標(biāo)蒋伦。 真正的專業(yè)知識可能需要一生的時間: 塞繆爾·約翰遜 (1709-1784) 說:"在任何部門弓摘,卓越都可以 只通過一生的勞動獲得;它不得在 較低的價格。 喬瑟 (1340 - 1400) 抱怨 "萊夫這么短痕届, 工藝 這么久的勒恩韧献。希波克拉底 (c. 400BC) 是眾所周知的摘錄 "阿爾斯朗加, 維塔布雷維斯"研叫,這是較長的報價"阿爾斯龍加锤窑,維塔的一部分 布雷維斯, 偶爾練習(xí)嚷炉, 實驗周利庫蘇姆渊啰, iudicium 困難",在英語中呈現(xiàn)為"生命是短暫的申屹,[the]工藝 長虽抄, 機會轉(zhuǎn)瞬即逝走搁, 實驗背信棄義, 判斷 困難迈窟。當(dāng)然私植,沒有一個數(shù)字可以是最終的答案:它似乎不合理 假定所有技能(例如編程、下棋车酣、跳棋和音樂演奏) 可以都需要完全相同的時間來掌握曲稼,也不是所有的人 需要完全相同的時間。作為 教授湖员。K贫悄。安德斯·愛立信說,"在大多數(shù)領(lǐng)域娘摔,這是顯著多少時間窄坦,甚至最 人才需要達到最高水平。10凳寺,000 小時的數(shù)字只是讓您感覺到鸭津,我們談?wù)摰氖敲恐?10 到 20 小時,有些人會認為這些人是天生的天才人才肠缨,仍然需要達到最高水平逆趋。

所以你想成為一名程序員

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

獲取興趣在編程,并做一些晒奕,因為它是有趣的闻书。 確保 它一直足夠有趣,這樣你才愿意投入你的十年/10脑慧,000小時魄眉。

程序. 最好的學(xué)習(xí)方式是學(xué)習(xí) 通過做. 簡單地說,技術(shù)上闷袒,"最高水平 未達到給定域中個人的性能 自動作為擴展體驗的函數(shù)坑律,但級別 即使經(jīng)驗豐富的個人可以提高績效, 經(jīng)過深思熟慮的改進霜运。(第366位)和"最有效的學(xué)習(xí)需要一個明確定義的任務(wù)與 適合特定個體的難度級別, 信息性反饋蒋腮,以及重復(fù)和更正的機會 錯誤淘捡。(第20-21號) 這本書實踐中的認知:日常思維、數(shù)學(xué)和文化 生活是一個有趣的 參考這個觀點池摧。

與交談其他程序員;閱讀其他程序焦除。 這更重要 比任何書籍或培訓(xùn)課程。

如果你想作彤,把在四年大學(xué)(或更多在 研究生院)膘魄。 這將讓您訪問一些需要 憑據(jù)乌逐,它會讓您更深入地了解該領(lǐng)域, 但如果你不喜歡學(xué)校创葡, 你可以 (與一些奉獻) 得到 類似的經(jīng)驗浙踢,你自己或工作。無論如何灿渴,單靠書本學(xué)習(xí)不會 就足夠了洛波。"計算機科學(xué)教育不能使任何人成為專家 程序員比研究刷子和顏料可以使 某人是專家畫家,"埃里克·雷蒙德說骚露,作者新 黑客詞典.我雇傭過的最好的程序員之一 只有高中學(xué)位;他產(chǎn)生了很多偉大軟件蹬挤, 有他自己的新聞組,并做了足夠的股票期權(quán)購買自己的夜總會.

工作在項目與其他程序員棘幸。成為最好的程序員 在某些項目上;是其他人最差的焰扳。 當(dāng)你是最好的 你可以測試你的能力,領(lǐng)導(dǎo)一個項目误续,并激勵 別人有你的愿景吨悍。 當(dāng)你是最差的,你學(xué)到什么 大師做女嘲,你學(xué)習(xí)他們不喜歡什么做(因為他們 讓你為他們做)畜份。

工作在項目后其他程序員。 了解其他人編寫的程序欣尼”ⅲ看看需要什么 了解和修復(fù)它時, 原始程序員不 周圍愕鼓「铺考慮如何設(shè)計程序,使其更易于使用 那些會支持你的人

至少學(xué)習(xí)半打編程語言. 包括一個 強調(diào)類抽象的語言(如Java或C++)菇晃,一個 強調(diào)功能抽象(如 Lisp 或 ML 或 Haskell)册倒,一 支持句法抽象 (如 Lisp), 一 支持聲明性規(guī)范(如 Prolog 或 C++ 模板)磺送,以及 一個強調(diào)平行性 (如克洛朱爾或去) 驻子。

請記住,有一個"計算機在"計算機科學(xué)"中估灿。知道 計算機執(zhí)行指令需要多長時間崇呵,獲取 從內(nèi)存中的字(有和沒有緩存錯過),從磁盤讀取連續(xù)單詞馅袁,并查找到磁盤上的新位置域慷。(答案在這里。)

參與語言標(biāo)準(zhǔn)化努力。 可能是安西C++委員會犹褒, 或者它 可以決定您的本地編碼風(fēng)格是否會有 2 或 4 個空間 縮進級別抵窒。 無論哪種方式,你了解什么其他人 喜歡在語言叠骑,他們感覺多么深李皇,甚至一點點 關(guān)于他們?yōu)槭裁磿@樣。

有好感下車語言標(biāo)準(zhǔn)化工作作為 盡快座云。

這一切在心中疙赠, 它值得懷疑的, 你能得到多遠朦拖, 只是 書籍學(xué)習(xí)圃阳。 在我的第一個孩子出生之前,我讀了所有的如何 自書璧帝,仍然覺得自己像一個無知的新手捍岳。 30個月后 當(dāng)我的第二個孩子到期,我回到書 復(fù)習(xí)睬隶?不锣夹。 相反,我依靠我的個人經(jīng)驗苏潜,這 原來更有用银萍,更讓人放心 對我來說比寫數(shù)千頁 由專家。

弗雷德·布魯克斯恤左,在他的文章中無銀彈確定了一個三部分的計劃贴唇,找到偉大的 軟件設(shè)計師:

盡早系統(tǒng)地確定頂級設(shè)計師。

指派一位職業(yè)導(dǎo)師負責(zé)潛在客戶的發(fā)展飞袋,并仔細保存職業(yè)檔案戳气。

為成長的設(shè)計師提供互動和刺激的機會。

這假定有些人已經(jīng)具備了 成為一個偉大的設(shè)計師;工作是正確地哄他們一起巧鸭。艾倫 佩利斯說得更簡潔:"每個人都可以被教導(dǎo)雕刻: 米開朗基羅必須被教導(dǎo)如何不瓶您。因此,它是與 偉大的程序員"纲仍。 佩利斯說呀袱,偉人有一些 超越他們訓(xùn)練的內(nèi)部質(zhì)量。 但是郑叠,在哪里 質(zhì)量來自夜赵? 是天生的嗎? 或者他們通過 勤奮锻拘? 作為奧古斯特古斯托 (虛構(gòu)的廚師在拉塔圖耶)說油吭,"任何人都可以做飯,但只有無所畏懼 可以是偉大的署拟。 我認為它更多的是愿意奉獻一個大 一個人一生審議實踐的一部分婉宰。 但也許無畏是一種總結(jié)的方法⊥魄睿或者心包,作為古斯托的批評者, 安東·埃戈說:"不是每個人都能成為一個偉大的藝術(shù)家馒铃,但一個偉大的 藝術(shù)家可以從任何地方蟹腾。

因此,繼續(xù)購買 Java/Ruby/Javascript/PHP 書籍;你會 可能從中得到一些利用区宇。 但你不會改變你的生活娃殖,或者 您作為程序員在 24 小時或 21 天內(nèi)獲得真正的整體專業(yè)知識。 努力在24個月內(nèi)不斷改進怎么樣议谷? 現(xiàn)在你開始找個地方了...

引用

布魯姆炉爆, 本杰明 (ed.)培養(yǎng)青年人才,巴蘭廷卧晓,1985年芬首。

布魯克斯 弗雷德無銀彈, IEEE 計算機逼裆, 第 20 卷郁稍, 第 4 號, 1987 年胜宇, p. 10 -19耀怜。

布萊恩, W. l. – 哈特掸屡, N. "關(guān)于電報語言的研究: 習(xí)慣等級的獲取封寞。心理學(xué)評論, 1899, 8, 345-375

海斯,約翰完整的問題解算器勞倫斯·埃鮑姆仅财,1989年狈究。

蔡斯, 威廉 G. 和西蒙盏求, 赫伯特 A."國際象棋中的感知"認知心理學(xué), 1973, 4, 55-81.

熔巖抖锥,約翰,實踐中的認知:日常思維碎罚、數(shù)學(xué)和文化 生活磅废,劍橋大學(xué)出版社,1988年荆烈。

答案

典型 PC 上各種操作的大致計時:

執(zhí)行典型指令1/1拯勉,000竟趾,000,000 秒 = 1 納米秒從 L1 緩存內(nèi)存獲取0.5 納米秒分支預(yù)測錯誤5 納米秒從 L2 緩存內(nèi)存獲取7 納米秒靜音鎖定/解鎖25納米秒從主內(nèi)存獲取100納米秒通過 1Gbps 網(wǎng)絡(luò)發(fā)送 2K 字節(jié)20宫峦,000 納米秒從內(nèi)存中按順序讀取 1MB250岔帽,000 納米秒從新磁盤位置獲取(查找)8导绷,000犀勒,000 納米秒從磁盤按順序讀取 1MB20,000妥曲,000 納米秒發(fā)送包我們到歐洲和回來150 毫秒 = 150贾费,000,000 納米秒

附錄:語言選擇

有幾個人問他們應(yīng)該先學(xué)什么編程語言檐盟。 沒有一個答案褂萧,但請考慮以下幾點:

使用你的朋友.當(dāng)被問及"什么操作系統(tǒng)應(yīng)該 我使用, Windows葵萎, Unix箱玷, 或 Mac? 你的朋友使用陌宿。 從學(xué)習(xí)中獲得的優(yōu)勢 朋友將抵消操作系統(tǒng)之間的任何內(nèi)在差異锡足,或 編程語言之間。 還要考慮你未來的朋友: 程序員社區(qū)壳坪,你將成為其中的一部分舶得,如果你 繼續(xù)。 您選擇的語言是否擁有龐大的增長社區(qū) 還是一個小垂死的爽蝴? 是否有書籍沐批、網(wǎng)站和在線論壇 得到答案? 你喜歡那些論壇里的人嗎蝎亚?

保持簡單. 編程語言九孩,如C++ 和 Java 是專為專業(yè)開發(fā)由大型團隊 經(jīng)驗豐富的程序員誰關(guān)心運行時效率 他們的代碼。 因此发框,這些語言具有專為這些情況設(shè)計的復(fù)雜部分躺彬。 你關(guān)心的是學(xué)習(xí)編程。 你不需要這種并發(fā)癥梅惯。 你想要一種被設(shè)計成易于學(xué)習(xí)和記憶的語言宪拥。 單個新程序員。

玩铣减。哪種方式她君,你寧愿學(xué)習(xí)彈鋼琴: 正常,互動的方式葫哗,你聽到每個音符缔刹,只要你點擊一個鍵球涛, 或 "批" 模式, 你只聽到筆記后校镐, 你完成了一整首歌宾符? 顯然,交互式模式使鋼琴的學(xué)習(xí)更容易灭翔,也為 編程。堅持使用交互式模式的語言并使用它辣苏。

鑒于這些標(biāo)準(zhǔn)肝箱,我關(guān)于第一次編程的建議 語言將是Python或方案. 另一個選擇是Javascript,不是因為它為初學(xué)者設(shè)計得很好稀蟋, 但因為有這么多的在線教程煌张,如汗學(xué)院的教程. 但您的 情況可能會有所不同,還有其他不錯的選擇退客。如果您的 年齡是一位數(shù)骏融,你可能更喜歡愛 麗 絲或吱吱 聲或塊(年齡較大的學(xué)習(xí)者也可能喜歡這些)。重要 事情是萌狂, 你選擇和開始档玻。

附錄:書籍和其他資源

有幾個人問他們應(yīng)該學(xué)什么書和網(wǎng)頁 從。 我再說一遍茫藏, "單靠書學(xué)習(xí)是不夠的"误趴, 但我可以 建議以下事項:

方案:結(jié)構(gòu)和 計算機程序的解釋(阿貝爾森和蘇斯曼)是 可能是計算機科學(xué)的最佳介紹, 它確實 教編程作為理解計算機科學(xué)的一種方式务傲。 你可以看到講座的在線視頻在這本

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凉当,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子售葡,更是在濱河造成了極大的恐慌看杭,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挟伙,死亡現(xiàn)場離奇詭異楼雹,居然都是意外死亡,警方通過查閱死者的電腦和手機尖阔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門烘豹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诺祸,你說我怎么就攤上這事携悯。” “怎么了筷笨?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵憔鬼,是天一觀的道長龟劲。 經(jīng)常有香客問我,道長轴或,這世上最難降的妖魔是什么昌跌? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮照雁,結(jié)果婚禮上蚕愤,老公的妹妹穿的比我還像新娘。我一直安慰自己饺蚊,他們只是感情好萍诱,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著污呼,像睡著了一般裕坊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上燕酷,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天籍凝,我揣著相機與錄音,去河邊找鬼苗缩。 笑死饵蒂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酱讶。 我是一名探鬼主播苹享,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浴麻!你這毒婦竟也來了得问?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤软免,失蹤者是張志新(化名)和其女友劉穎宫纬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膏萧,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡漓骚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了榛泛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝌蹂。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖曹锨,靈堂內(nèi)的尸體忽然破棺而出孤个,到底是詐尸還是另有隱情,我是刑警寧澤沛简,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布齐鲤,位于F島的核電站斥废,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏给郊。R本人自食惡果不足惜牡肉,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望淆九。 院中可真熱鬧统锤,春花似錦、人聲如沸炭庙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽煤搜。三九已至,卻和暖如春唧席,著一層夾襖步出監(jiān)牢的瞬間擦盾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工淌哟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迹卢,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓徒仓,卻偏偏與公主長得像腐碱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掉弛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

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

  • 十年內(nèi)自學(xué)編程 彼得·諾維格 為什么大家都這么著急症见? 走進任何一家書店,你就會看到如何 自學(xué)爪哇 24 小時內(nèi) 除...
    amberman閱讀 83評論 0 0
  • 十年內(nèi)自學(xué)編程 彼得·諾維格 為什么大家都這么著急殃饿? 走進任何一家書店谋作,你就會看到如何 自學(xué)爪哇 24 小時內(nèi) 除...
    han741閱讀 192評論 0 1
  • Teach Yourself Programming in Ten Years Peter Norvig Why ...
    趙凱閱讀 344評論 0 0
  • 彼得 · 諾維格 為什么每個人都這么匆忙? 走進任何一家書店乎芳,你會看到如何在24小時內(nèi)自學(xué)Java遵蚜,以及提供無盡的...
    陳兵洋閱讀 151評論 0 0
  • Java語言與程序 程序是什么 程序就是現(xiàn)實邏輯的表達 現(xiàn)實邏輯清晰 你的程序表達邏輯也清晰 程序本質(zhì)就是三個東西...
    徐榮康閱讀 187評論 0 0