本文列出 Ruby 相關的學習資源,以供有心學習 Ruby 的同好們參考。
- https://www.ruby-lang.org/:官方網站,有一些文件可看
- Ruby Doc:查 Ruby API 用 [連結]
- Ruby User's Guide:快速學習 Ruby 的語法,原版是由 Ruby 之父松本行弘以日文撰寫 [英譯] [中譯]
- 深入淺出 Ruby:用大量圖示、輕鬆風格的 Ruby 入門書 [中文] [原文]
- Beginning Ruby, 3rd edition:簡明的 Ruby 入門書 [連結]
- Learn to Program:新手導向的入門書 [連結]
- Learn Ruby the Hard Way:含許多練習的入門書 [連結] [中譯]
- The Well-Grounded Rubyist, 2nd edition:著重觀念的 Ruby 程式設計書籍 [連結]
- TutorialsPoint 的 Ruby 教程 [連結]
- Programming Ruby:具指標性的 Ruby 教材,Ruby 版本略舊 [連結] [舊版]
- Ruby Under a Microscope:講解 Ruby 內部實作的書籍,非一般 Ruby 入門教材 [連結]
撰碼風格 (coding style) 是一個參考性的項目,不是硬性的規定。最重要的是在同一份專案內保持一致,再來就是在同公司或團體內保持一致,能和 Ruby 社群也保持一致就更好了。
- Practical Object-Oriented Design in Ruby: An Agile Primer:以 Ruby 為例,講解物件導向程式設計的書 [連結] [中譯]
- Effective Ruby:一些 Ruby 的實務和經驗 [連結] [中譯]
- Test Driven Development in ruby: 以測試導向開發為主軸,講解 Ruby 程式設計 [連結]
- Effective Testing with Rspec 3: 以 Rspec 撰寫測試程式,對開發過程有所幫助 [連結]
- Codecademy:免費線上練習程式設計的網站,可付費升級以取得部分獨特內容 [連結]
- RubyMonk:免費線上互動式 Ruby 學習網站 [連結]
- Ruby Koans:下載學習 Ruby 程式設計 [連結]
- SoloLearn:免費線上互動式程式設計學習網站,有多種語言,包括 Ruby 在內 [連結]
- Code School:線上練習程式設計的網站,包括 HTML, CSS, JavaScript, Ruby, Python 等課程,大部分課程需付費 [連結]
- LauchSchool (原 Tealeaf):紮實的線上課程,費用較高,有真人導師協助學習 [連結]
熟悉 Ruby 語法後,可以到下列網站練功。有些題目有相當難度,做不出來也不用太灰心。
- LeetCode:線上練習
- HackerRank:線上練習
- HackerEarth:線上練習
- exercism:下載習題於本地端練習
建議想學習 web 開發的初學者,先將 HTTP 的基礎概念看完一次,但不需強記那些協定的細節。然後,可以依照前端 (frontend) 和後端 (backend) 分頭學習,以 Ruby 社群來說,初學者可以先透過 Sinatra 來學習 web 開發,在學到 web form 和 ajax 時,就會用到後端,另外,資料庫也需要透過後端程式和前端連結。對於有經驗的開發者,則可直接學習 Ruby on Rails。
- HTML:靜態的網頁內容
- CSS:靜態的網頁形式
- JavaScript:動態的網頁動作。對於初學者來說,先學基本的 JavaScript 語法和 jQuery。以後再視需要學習前端框架。
傳統上來說,後端是由 Perl、PHP、ASP、JSP 等語言負責,但後端不限於某種特定的語言。以 Ruby 社群來說,可由下列框架入門:
- Ruby on Rails:Ruby 社群最知名的 MVC 框架
- Sinatra:一個微框架 (micro-framework),非 MVC 框架
或是這些新的框架:
資料庫有相當多的實作品,以 web application 來說,可先從以下兩種資料庫擇一學習:
- MySQL/MariaDB
- PostgreSQL
Ruby 中最知名的 web framework。但 Rails 較適合已有一些網頁程式開發經驗,想要快速開發新產品的開發者。
- Rails Guide:官方文件,略為學過 Rails 後再看,比較容易上手 [連結]
- 為你自己學 Ruby on Rails:國內 Rails 前輩高見龍先生所著的 Rails 書籍 [紙本][線上]
- The Rails 5 Way:詳細敘述 Rails 的特性,適合學過一段 Rails 後再看 [連結]
- Ruby on Rails Tutorial:國外知名的 Rails 入門教程 [連結]
- Agile Web Development with Rails 5:DHH 參與編寫的 Rails 教程 [連結]
- Learning Rails 5 [連結]
- Rails, Angular, Postgres, and Bootstrap:綜合性書籍,建議有一些網頁程式的經驗再看 [連結]
- RailsBridge Docs:簡易的 Rails 教程,可以按部就班學習 [連結]
- Rails Girls 指南:可跟著練習的教程 [連結]
- Ruby on Rails 實戰聖經:國內有名的 Rails 參考書 [連結]
- Rails 101:目前改為免費線上課程 [連結]
- Rails 102:一些較進階的 Rails 相關知識 [連結]
- The Rails Way:將 Rails 詳細講一次的大部頭書籍,適合學過一陣子 Rails 後再看 [連結]
一個微框架,可用來快速建立網頁應用程式。對於不熟悉 web 開發的程式設計師而言,先學 Sinatra 比較容易上手。但 Sinatra 較不適合用來建立大型網站。
- Sinatra 官網,有一些文件可看 [連結]
- Sinatra Up and Running:第一本 Sinatra 的實體書籍 [連結]
- Jump Start Sinatra:電子和實體書籍 [連結]
最流行的分散式版本管理系統,Linux 之父 Linus Torvalds 的作品。
建議到 GitHub 註冊帳號,以存放程式碼,帳號本身為免費,如果需要私有 repo 時可付費。也可到 Bitbucket 註冊帳號,存放私有 repo 不需收費。
PaaS 的好處是不需管理主機,但收費會略高
- Heroku:提供免費額度可供練習
- Engine Yard
- Google App Engine
- OpenShift:有免費額度可供練習
註:OpenShift 上 Ruby 及其他相關套件的版本較舊,可能會在部署時發生問題,請小心服用。
VPS 的好處是收費相對較低,但需自行管理站台
透過 RubyMotion 可將 Ruby 程式碼轉為原生的 iOS、Mac OS 及 Android 平台的應用程式。這是一套商業軟體,基本功能免費,進階功能需付費,請需要的朋友自行參考。要注意的是,RubyMotion 不能直接沿用 Ruby 原生的 gem,需重新撰寫適用於 RubyMotion 的插件 (plugins)。
- Ruby Cookbook, 2nd edition:綜合性 Ruby 技巧及應用 [連結]
- The Ruby Way: 綜合性 Ruby 技巧及應用 [連結]
- The Ruby Toolbox: 列出各種情境可用的 gems,有一些指標像是開發活躍度、下載次數等可參考
- Awesome Ruby: 列出許多 Ruby 函式庫和框架,可供開發者參考
- Awesome Ruby (from LibHunt);另一個整理過的 Awesome Ruby 站台
- Text Processing with Ruby:利用 Ruby 進行文字處理相關任務 [連結]
- Ruby Performance Optimization:各種加速 Ruby 程式的技巧 [連結]
- Build Awesome Command-Line Applications in Ruby 2:用 Ruby 撰寫終端機程式 [連結]
- Ruby Quicktips:一些簡短而實用的 Ruby 程式碼
什麼?Ruby 可以用來做遊戲?用 Gosu 就可以做出一個 2D 遊戲了。
以下是另一本有趣的 Ruby 書:
- Mazes for Programmers:用 Ruby 製作迷宮 [連結]
一些 Ruby/Rails 前輩的網站,按網路代名的字母排序。
- Rails Taiwan:台北和高雄的 Meetup
- RailsFun:Rails 社群,包括線上討論區和實體聚會
- Ruby Taiwan:Facebook 社團
- Ruby on Rails 讀書會:Facebook 社團
- Ruby on Rails 新手村:Facebook 社團
以東亞的研討會為主。
- RubyConf Taiwan:台灣的 Ruby 研討會
- RubyConf China:中國大陸的 Ruby 研討會
- Ruby Kaigi:日本的 Ruby 研討會
- Rails Pacific:亞洲區的 Rails 研討會
如果有機會出國,可以參考 Ruby Conferences 網站,有全世界的 Ruby 相關研究會短訊。
小弟和下列團體沒對價關係,各位網友可放心。 有些網友比較喜歡上課,故放在此處,請各位自行參考。
- 五倍紅寶石:提供 Ruby、Rails、iOS 等課程
- ALPHAcamp:提供 Rails、iOS 和行銷等課程,以創業為目標,需面試
- GrowthSchool:提供 Rails、敏捷開發、Growth Hack 等課程
- 飛鳥學院:提供網頁前端、PHP、Rails、iOS 等課程