原文:http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/
當我們學(xué)習(xí)編程的時候果正,會碰到一個時間點剔蹋,在這個時間點一切都會發(fā)生變化焚挠。在FireHose题翻,我們稱之為編程的拐點。經(jīng)過了這個時期,你作為程序員的開發(fā)工作會發(fā)生顯著的變化。邁向這個拐點的道路,就是讓自己在編程上能自給自足的過程熊咽,也就是你不再需要任何手把手的幫助。這可能是一個讓人沮喪的過程闹丐,但是你一旦邁過這個門檻横殴,會讓你感覺充滿力量。
在FireHose卿拴,我們的目標不僅僅是教你Ruby衫仑、如何去構(gòu)建Web應(yīng)用或者如何寫測試用例,盡管我們傳授了很多這樣的技巧堕花,但是我們的首要目標是讓學(xué)生能快速通過編程拐點文狱,從而讓他們獲得解決任何所遇到的問題的能力。 我們相信缘挽,能夠獨立解決問題的能力是無價的瞄崇。學(xué)習(xí)并獲取這種能力,比簡單地學(xué)習(xí)如何構(gòu)建一些app壕曼,能讓你走得更遠苏研。
入門階段(3-8周認真地編程)
當你開始學(xué)習(xí)編程時,有很多知識點是你不知道的腮郊。這些信息被稱為特殊領(lǐng)域知識摹蘑。例如:知道如何用Ruby寫一個循環(huán),或者如何用Ruby on Rails從數(shù)據(jù)庫中提取數(shù)據(jù)轧飞。領(lǐng)域知識對某個特定的編程環(huán)境來說衅鹿,包含了獨特的協(xié)議。
成為一個自給自足編程者的第一步就是要學(xué)習(xí)如何去完成特定的任務(wù)过咬。一旦你能掌握某些任務(wù)塘安,把不同步驟拼接起來的大致框架就會顯現(xiàn)出來了。經(jīng)過這個階段援奢,你會開始發(fā)現(xiàn)一些規(guī)律。最終忍捡,那些剛開始看起來很困擾并且陌生的東西集漾,也變得駕輕就熟了切黔。
對于剛起步的學(xué)生,最重要的技能是要注重細節(jié)
當你通讀官方文檔或者入門手冊的時候具篇,一定要密切關(guān)注細節(jié)纬霞。即便是最細小的拼寫錯誤都會產(chǎn)生錯誤信息或者bug。查找錯誤信息在開始階段是非常讓人沮喪的過程驱显。
Debugging 錯誤信息是非常重要的诗芜。 事實上是,錯誤信息是編程的一部分埃疫,這在沒有經(jīng)驗和非常有經(jīng)驗的開發(fā)人員眼里都一樣伏恐。唯一不同的事,你在處理錯誤信息上越有經(jīng)驗栓霜,在修復(fù)錯誤上花的時間會越少翠桦。原因如下:
- 隨著時間的積累,你會掌握如何閱讀錯誤日志胳蛮,并且迅速地提取問題相關(guān)細節(jié)销凑。你第一次看見錯誤日志的時候,會花費一些時間去找到它真正的含義仅炊。但是當你看了幾百次的錯誤日志后(而且你確實會看幾百次6酚住),你就能精確地定位到問題的所在抚垄,并且找到修復(fù)問題的相關(guān)細節(jié)蜕窿。
- 你應(yīng)該從每一個你解決過的錯誤信息中學(xué)習(xí)。不要僅僅修復(fù)錯誤就完了督勺,要理解修復(fù)的代碼為什么會出錯渠羞。通過學(xué)習(xí)每一個犯過的錯誤,下次你遇到同樣的錯誤時智哀,你就會更快地修復(fù)錯誤次询。
- 最初,你可能會對每一個遇到的錯誤都需要幫助瓷叫。過一段時間屯吊,通過仔細檢查自己的代碼,并且聰明地搜索google摹菠,就不會那么頻繁地需要幫助了盒卸。
在入門階段,你應(yīng)該遵循這些指導(dǎo)次氨。在開始階段蔽介,你會發(fā)現(xiàn)去遵循這些指導(dǎo)會有挑戰(zhàn)性,并且錯誤信息會時常發(fā)生。過一段時間虹蓄,你會具備debug錯誤的能力犀呼,并且對細節(jié)
更加注意,然后你就會進步地更快薇组。一旦你圓滿完成入門階段外臂,你會發(fā)現(xiàn)自己能夠以更快的節(jié)奏寫代碼了。
在這個時候律胀,有些人就會感到滿足了宋光,就像他們準備好拋棄訓(xùn)練就開始在缺乏系統(tǒng)性指引下做事情,他們會很開心地去挖掘更深的問題炭菌。另一些學(xué)生會找到更多入門指引罪佳,為了得到"全面的了解",去獲取更多的特殊領(lǐng)域知識娃兽。不幸的是菇民,入門指引帶不了他們多遠,真正的信心在入門指引里面是找不到的投储。真正的自信是來自于跟沒有頭緒的困難做斗爭第练,并且靠自己的力量去解決問題。