By Javier SotoFebruary 11, 2015

Learning Rails: 5 Tips to Become an Exceptional Rails Developer

A few months ago I was in the same place as you are now, asking myself: What is the best way to learn Rails?

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.

  • Know the basics of how the Internet works, such as the Request/Response cycle, the essentials of HTTP, some HTML and CSS, and a dash of JavaScript (or similar) to spice things up.

  • 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.

In-Person Courses

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.

Online Tutorials

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.

Books

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.

Documentation

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.

Also, code small exercises (a.k.a. katas) to keep your brain agile. These tend to be little puzzles in the language of your choice (Ruby, JavaScript, etc). Take advantage of a long bus commute or that first cup of coffee early in the morning to read and practice a bit. Make it habitual. Some of my favorite practicing resources are:

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

You are not alone. We have a vibrant community of Ruby and Rails developers in the U.S., especially in Seattle. Join other developers that share your same interests through Meetup or the Seattle.rb.

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!