Brook Riggio, a Code Fellows instructor, answered this question in great depth on Quora.
We recommend reading the full post, but we’ve compiled some highlights here to help you decide on a path to learning Ruby on Rails that works for you. As Brook says, People have many different learning styles, so naming one “best” way for all beginners is difficult. However, there are some basic principles of human nature that might light the way.
Best: One-on-one mentoring
As with anything else - painting, cooking, welding - sitting down with an expert instructor is the most powerful way to learn. Ideally, you can work with a coach who understands what you currently know, and how to communicate targeted next-step concepts well.
Great: Live, in-person training events
The next best option might be attending a live training event, such as a training conference or, for the more serious student, a developer bootcamp. You get personalized instruction, a great group of peers to learn with, and access to experts who can answer your actual questions while coding side-by-side with you. These camps are becoming more popular but may require travel or temporary relocation and can therefore also be expensive.
Good: Live, online training workshops
Live but online training workshops, where you can ask questions as needed, give you direct interaction with instructors and benefit from the community of learners at a similar level. As opposed to in-person events, it’s a lot harder to stay engaged when everything is happening through a screen, but this can work great for 1 to 4 hour sessions.
Acceptable: Interactive videos
The next step down from that are the videos (like those Code School (codeschool.com) offers) that contain an interactive component that ensures you are taking the steps of “doing” what you are learning. These videos are fun, accessible, and effective. They lack the ability to directly interact with the instructor, or explore tangents on a whim (which is a good way to reinforce concepts in our brains).
Workable: Videos with no interaction or books
Screencast videos with no interaction excel at covering focused topics and generally give you enough conceptually to dig deeper on your own. However, these tools really only become useful once you are on your way over the learning curve and have the core concepts nailed down.
As for plain old books, we’ve found that those are best when used as references: “what’s the method to remove the whitespace from the end of a string? oh yeah, .strip!” Again, doing a read-through may work for some. Maybe even for you. But it’s not generally recommended.
At the end of the day, however, the way in which you learn Ruby on Rails is as individual as you are. Take the pragmatic approach. Dive in with a project that will keep you motivated to work your way through the difficulties you will surely face. Find people you can ask to help when you get stuck. For your optimal learning, try out as many different strategies as possible, and pursue those that work best for you.
Read more in Brook’s post on Quora, or follow him on twitter, where he shares other helpful learning strategies and Rails development tips.