Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
Is there a canonical book on Ruby on Rails?

I really want to change my PHP specialization to Ruby. I have some Ruby/Rails experience, and I've already created a few Ruby apps and a few Rails apps, but I want to dig deeper. I have limited time everyday for studying, so I'm looking for an effective way to improve my skills.

I want to learn and understand a lot of Ruby-specific topics, e.g.:

  • Ruby coding style
  • understanding Ruby/Rails internals
  • OOP and functional realization
  • OO patterns in Ruby

Also any other technologies related to Ruby and Rails that intermediate/senior developers should know.

I don't want to confuse myself by reading/watching everything without a plan, so I need a good roadmap; I could create this plan by myself, but I would like to hear some advice from more professional developers.

Update: here is what I have so far:

  1. Learn the obscure parts of Ruby syntax; the parts that aren't explained in books that simply cover syntax.
  2. Learn TestUnit.
  3. Learn TDD and use it every time I write code.
  4. Learn Ruby patterns. Ruby's OO architecture is different than PHP/Java/C++, so patterns look different.
  5. Learn metaprogramming techniques.
  6. Write my own web server that has common features, e.g. process-based, thread-based. Publish it on GitHub and get help from others at stackoverflow etc.
  7. Dig into rack.
  8. Dig into useful gems and tools such as: rake, haml, sass, rspec, nokogiri, capistrano, cucumber etc.
  9. Write my own simple MVC framework that uses several ORMs. Publish it on GitHub and get help from others at stackoverflow etc.
  10. Learn Rails by learning every topic from different sources: books, articles, screencasts. For example: learn generators from books, from railscasts, searching at stackoverflow, google groups etc.
  11. Read Rails-specific topics in Crafting Rails Applications, paid screencasts from RailsCasts, PeepCode, TekPub, Rails for Zombies v2.
share|improve this question

marked as duplicate by Mark Trapp Jan 23 '12 at 3:15

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Rails for PHP developers –  Yannis Oct 31 '11 at 11:58
I could create this plan by myself: Do it, then update your question. It would be a lot nicer if you show us some effort / research first and it would be a lot easier for us to advice you if you've already done some of the work. –  Yannis Oct 31 '11 at 12:03
do you want learn Ruby as a language or Rails as a framework ? –  Bohdan Pohorilets Oct 31 '11 at 13:12
do you want learn Ruby as a language or Rails as a framework - each one –  VitalyP Oct 31 '11 at 13:48

3 Answers 3

It seems like you want to learn about many more things than just Rails - methodologies, software architecture, etc. This is no small task, and there's a good chance you'll either be swamped or learn a whole lot of not very much.

Why don't you start with Agile Web Development With Rails or a similar book? (AWDwR is one of the main books recommended as a learning resource on the RoR website.) I have the book, and it feels like a good introduction to how Rails works and some recommended ways of working with it.

Once you have a better idea of how you can use Rails, you could then begin to learn other topics and implement those ideas.

share|improve this answer
+1: AWDwR is one of the best technical books I have read. Programming Ruby is also excellent. –  kevin cline Oct 31 '11 at 14:59

Start with one or more of: Agile Web Development, Rails for Zombies, Ruby on Rails Tutorial. To learn more advanced Ruby I heartily recommend The Well-Grounded Rubyist. I have yet to read through it (despite owning it for like a year...) but it goes really in-depth to Ruby. It's the spiritual successor to "Ruby for Rails Developers" but focuses entirely on Ruby, not Rails.

share|improve this answer

One Option

Learn by example and get some practice....

Following the Rails Guides, build

  • a very simple application (e.g., a minimal guestbook), followed by
  • a simple application (e.g., a blog with comments, tags, and authenticated users).

Get at-the-moment help in IRC in #RubyOnRails on freenode.org.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.