本文原文來自 Dan Shipper,由 如歌行板 和 茜仔 翻譯投稿。html
這些天,許多人向我詢問該如何開始學習編程。我所能給出的答案就是:讀書,嘗試Code Academy,多在谷歌上檢索,使用Stack Overflow。一般,與他們交談的幾周後我都會進行回訪,看看最終誰開始步入正軌,誰已經放棄學習,這是一個頗有趣的現象。程序員
是什麼將開始掌握編程的人和放棄學習編程的人區分來來的呢?在我看來,那些成功的人在「奔跑」前總先學會「走路」。編程
「天天進步一點點」是一句你們十分熟悉的有關成功的格言。但我認爲結果會引導思考,對學會「走」的過程當中急功近利地作出「優化」,不只消磨了你的動力,並且下降了你達到目標的可能性。接下來讓咱們深刻探討一下爲何我是這麼認爲的。學習
在你閱讀如下關於獲取技能的過程的內容時,有三件事你須要牢記在心:你如何認知你的進展速度將取決於事的開端,你的真實進展速度和你認爲的本身的真實進展速度倒是每日不一樣的。爲了更好的理解我所討論的問題,讓咱們來看一幅圖表。優化
這張圖表簡單的描繪出在開始學習某種技能前你所預想的學習過程:是一條線性曲線,在每一段相同的時間段裏,你將習得的幾乎是等量的技能。但在我看來這個結論並不正確。下面是我所得出實際的技能習得的過程。翻譯
我認爲技能習得的真實過程是一系列的上升和平臺期組成的。這就像健身同樣。在開始階段,你進步神速,接着你會經歷一段瓶頸期。接着你會開始作一些較爲複雜的運動,完成這些健身項目須要更多的力量以及不一樣的肌肉的相互配合。所以你又開始進步。得到技能也是一樣的過程。設計
我不認爲這一觀點會使人們大吃一驚。但在這之中卻蘊含這整件事情的關鍵:你天天所作的和你頭腦中認爲的本身天天所作的存在着很大的區別。當你開始學習新知識的時候,好比學習如何編程,有時候你此刻會幻想你會成爲下一個扎克伯格。次日你又以爲你可能有更好的機會成爲一位全國橄欖球聯盟中的著名選手,而非一個優秀的程序員。下圖描繪出來你學習編寫代碼過程當中的自我感受:htm
個人經驗告訴我,你如何「感受」你的進度,比你真正實行的進度有着更爲真實的效用。這也是爲何格言「天天進步一點點」會令人們誤入歧途。若是你的目標是天天進步一點點,你會不斷地密切關注本身的進度。可是你自身的進度測量計真的很是糟糕,甚至就是它成爲了讓你沮喪泄氣的罪魁禍首。這正是大多數人放棄的緣由。three
我認爲當一我的認識到上述學習進展的特色的時候,就是他開始成功掌握如何編程的時候。他們不會時刻關注本身進展得有多順利,他們也不會日復一日地想着這件事。他們把精力都集中在學習這一行動上,把精力都集中在掌握基礎知識上。ip
隨後幾個月以後,這些人達到「作得好」這個目標以後,便馬上開始踏上「作得更好」的旅程。這些人秉持着樂觀的精神,盡力讓本身每一天都作得更好。
這些人能作到這一點,是由於他們已經打下了良好的知識和經驗基礎,這也使得他們更加自信。他們不多陷入到情緒波動中,即便有,他們也作好了準備,對此從容不迫安然度過。
掌握好編程並非說要在三十天內寫出一個風靡全球的社交應用。經過編程成爲百萬富翁也許是一個理智的長期目標。可是熱愛編程的人將編程視爲學習的過程。他們不急不躁,除了投入時間學習外,也很少想些發財致富白日夢。
由於他們最終明白學習編程並非將他們腦中現有的想法付諸現實,由於極可能這些想法都很爛。即便想法不錯,在編程的過程當中也許也會變得很糟糕。學習編程真正的目的是你在2年或是5年中後設計出的產品。若是你懂得如何編程,你能夠爲你的餘生創業,而僅有的成本就是時間。
你正在學習編程嗎?別急。慢慢來。享受過程,好好學習。
你最終會實現你的目標的。
轉自:褪墨