Based on my experience (and with the benefit of hindsight), I recommend a combination of basic knowledge, daily practice, and good classroom mentoring.
1. Start With a Solid Foundation
Mastering Rails may seem daunting at first because it involves so many moving parts. There’s hardware and software, front-end and back-end, different languages, networking, servers, databases, etc. Don’t let this cacophony of concepts discourage you. It is actually easy to acquire the necessary working knowledge from which to learn Rails. You will need to:
Feel comfortable with and in control of your machine (laptop or desktop), including the operating system, command line, and text editor or IDE.
Have a basic knowledge of data modeling and SQL
Be familiar with a version control system, such as Git
If you’re looking for in-person training to learn any topics mentioned above, Code Fellows has introductory courses designed to give you all the necessary knowledge to approach Rails with confidence.
2. Know Ruby
This seems like a pretty obvious piece of advice since Rails is written in Ruby, but you would probably be surprised how often it’s ignored.
As they start to learn Rails, it’s easy for beginners to take all of the constructs and syntactic shortcuts that Rails offers at face value, without really understanding the how or why. It seems like enough to know that it just works. Besides, it’s a lot to keep all of the pieces together, without the added complexity of looking deeper. But this hands-off approach is a lost learning opportunity.
A good grasp of the conceptual background of Ruby (methods, classes, etc) opens up a whole new level of understanding. Exploring Rails from a Ruby point of view will give you a level of detail and a broadness of scope that will make you a much better Rails developer. So brush up on your Ruby knowledge on your own or enroll in a Ruby course to become more proficient.
As you become more comfortable with Ruby, I recommend the book Rebuilding Rails by Noah Gibbs. It walks you through building a framework (like Rails) from scratch in Ruby!
3. Pick Your Resources
Do not limit your learning process to a single path. Instead, pick and choose from the different formats available so that they complement each other. Classes, tutorials, books, and documentation can all play in unison for you.
We are social animals and we learn best when interacting with each other. That’s why a classroom environment that complements lectures with one-on-one support between teacher and student will always give you the most bang for your buck. Code Fellows offers this through its Ruby on Rails Development Accelerator, but similar offerings are available from other schools. I encourage you to do your research and go talk with them.
Another alternative is to follow interactive online tutorials, but you need to be choosy because quality is spotty. Some tutorials provide an general overview that leaves you yearning for more, while other tutorials offer a far too narrow scope and open up more questions than they solve. A good source for tutorials is Code School.
Blog posts are great for resolving doubts and finding fixes to problems you encounter, but the same focus that makes them a great tool for development makes them less than ideal for learning a framework like Rails. Instead, I would recommend that you focus on books. My favorite is The Rails Way by Obie Fernandez.
Finally, documentation is an overlooked treasure trove, and the Ruby on Rails Guide is a pretty good reference. I always have it handy and check it frequently.
4. Practice to Make it Perfect
Coding is a craft in which practice makes perfect. In order for the things you have learned to stick and become owned knowledge, you have to experiment, play, and implement. A good rule of thumb is to dedicate at least 3/4 of your learning time to actually coding what you learn.
Finally, be curious and stay up to date by reading about the cool features and new developments in the Ruby and Rails communities. There are too many good resources to list, but these three should get you started:
5. Code Social
Seattle.rb is the oldest Ruby community in the U.S. It meets every week and has presentations and workshops once a month. There are many projects to help build, study groups to join, senior developers willing to help, and a lot of developers like you who are passionate about learning and coding.
So get out there, learn from others, try new resources, don’t limit your path of learning to one method, and starting building something!