Rails 初學者指南

DHH Talks About Rails And Beginner

今年 2 月初,我 和 DanielTerryKevinTeahour.FM 上聊了一期 Ruby 與 Rails 的學習經歷和對初學者的學習建議 How to Learn Ruby and Rails。而這居然成爲了目前 Teahour 這麼多期裏面最受歡迎的一期。Rails 4 發佈在即,看上去 Rails 已經愈來愈不適合初學者學習。因此對於初學者而言,瞭解正確的學習方式無痛上路顯得就格外重要。html

我在 06 年末開始接觸 Rails 的時候,Rails 版本仍是 1.2,Ruby 版本 1.8.6。那時我主要是一個後端開發程序員,不懂 Web 開發,不會 HTML,CSS,JS。可是那時的 Rails 學習起來比較簡單,特別是搭配着 Agile Web Development With Rails (2nd Edition),跟着例子走基本就瞭解了 Rails 的方方面面。再跟本身的已知的知識體系作結合,也算很是平滑的學習曲線。前端

而現在,你在學習 Rails 的時候,你會發現不少額外的東西,好比 CoffeeScript,Asset Pipeline。而 Rails 4 不少新特性如 Cache Digest (Russion-Doll caching), TuoboLinks,前端傾斜更是會讓新手直接暈掉。咱們如今已經聽到愈來愈多的新手抱怨 Rails 難學了。DHH 曾經發過一篇頗有名的博文 Rails is omakase,中文翻譯版見這裏。在 DHH 和 Rails Core Team 眼裏,Rails 框架但願提供的是他們認爲的 Web 開發的最佳實踐,而這個最佳實踐,必然跟他們過去這麼多年的開發經歷相關。在我看來,基本上 Rails 的框架演變過程跟 Web 開發技術的演變過程是一致的。可是對於初學者而言,在沒有經歷過足夠的痛的前提下,要理解不少改進就成了一件不容易的事情。特別是當目前 Web 開發開始向前端傾斜的時候,對開發人員的素質要求愈來愈高,全能化,全棧化,擺在初學者面前的是個極大的挑戰。程序員

可是,我仍是認爲,Rails 是一個適合初學者學習的 Web 開發框架,只是在學習方法上須要有所改變。web

越思考這個問題,我越贊成 Kevin 在第二期介紹的溫室培養模式。他儘可能會讓初學者在溫室環境中成長,也就是讓他們瞭解最樸素的東西,而不用過多追求一些細節,以最快速度看到一個站點的建造過程。甚至 Ruby 語言的不少細節,元編程之類,都不須要在一開始瞭解。Rails 之於其餘框架更適合初學者的緣由在於它儘管表明着目前 Web 開發的先進浪潮,可是都提供了一個默認值。而這個默認值很是關鍵,它能讓初學者免於選擇也不用關心細節,幾分鐘就能夠開始上手練習。這種方式會把一些開發上的痛延緩到了後期發生,也就是一些初學者在向中級水平發展時會經歷的一段痛苦時光,可是這點偏偏在我認爲是對初學者友好的。編程

從我本身的經歷而言,我在鍵盤上敲點東西而後最後在瀏覽器裏面看到真實效果,得到的成就感是最大的,也會讓我本身更有動力去學習。這也是我認爲 Agile Web Development With Rails (AWDWR) 這本書特別適合初學者學習 Rails 的緣由,由於它讓你關注如何去構建一個站點,其次讓你關注如何用 Rails 去構建,內容按部就班,不少 Rails 中相對高級的特性都放到了最後去介紹,而這些特性當你有了必定基礎之後其實也就並非那麼的難了。美中不足的是,AWDWR 這本書中文版只出到第 2 版,跟最新的 Rails 版本脫節過久,而啃英文書對大多數初學者來講都不是一件容易的事情。雖然學好英語對於學好 Rails 是一個基本條件,可是我仍是但願初學者能在一開始學習的時候少由於語言問題而多碰壁。這個問題目前來看並無很好的解,不過但願 Terry 和我能在將來改善一下現狀,若是時間上容許的話,咱們很但願能原創一本面向初學者的中文書。segmentfault

偷偷的說一下,這裏有一段我未經 Terry 許可偷偷錄的一段關於初學者應該如何學習 Rails 的討論,很是值得你們收聽,:)後端

書籍推薦

  • 初學者瀏覽器

    • Agile Web Development With Rails - 經過一個實例教會你如何使用 Rails 製做網站。舉手投足之間,其實教會了讀者不少有趣的實踐和思想。很是生動且有趣。這本書的第二版是最爲經典的。而且也有中文版,翻譯也算不錯。可是的確第二版對於如今的 Rails 版本已經太老,不適合新手閱讀了。ruby

    • Programming Ruby - 不少人說學 Rails 你得先啃這本 Ruby 寶典,再去學 Rails。其實我以爲否則,這本書能夠做爲閱讀 Agile Web Development With Rails 時的工具書,隨時查閱不懂的 Ruby 小知識。當那本書看完後,能夠選擇再細讀此書,這樣不少知識因爲先獲得了運用,因此掌握會更加牢固。app

  • 進階

  • 高級

其餘資源

  • Ruby China 不說了,咱們的大本營!
  • SegmentFault 專業程序員問答社區,若是你們有 Ruby/Rails 方面的問題,這裏是最純粹的問答地方,你們也能夠站內邀請我 (yedingding) 回答。
  • QQ 羣,羣號 231618869。Terry 之前建的一個 Ruby/Rails 學習俱樂部,若是有學習上的問題也能夠來這裏交流。
  • 新浪微羣 Ruby/Rails 學習俱樂部
  • Learn Ruby on Rails Ash 寫的一篇學習 Rails 的書籍推薦。

最後我要強調的是,學習編程最好的方法永遠是 Code!Code!Code!。敲代碼永遠比只看書來的效果好,勤加練習纔是王道。

相關文章
相關標籤/搜索