Ruby on Rails Has Many Dependencies

It’s in the name. Rails depends on Ruby. But as anyone learning Rails can tell you, it depends on a lot more. There is a whole corpus of tools and concepts that a modern web developer must be familiar with. On top of those, Rails comes with it’s own flavor of conceptual requirements. Just how much do you need to know to be effective as a Rails dev? Here’s a mind-map I generated of the conceptual landscape underpinning a modern, competent web developer using Rails:



There it is. That’s all you need to know! ;]

If this looks intimidating to you, fear not! You can get started with just the basics. This should give you a high-level overview of the set of things you’ll want to understand the essence of to be considered “competent” as a modern Rails developer. Use this to guide your learning process.

The branches on the left side are general areas of knowledge that would be understood by any web developer. The branches on the right are specific to Rails. The right side also holds general practices done the “Rails Way” (VCS? Git! Process? Agile!). As a guideline, I made the list based on what I thought one Rails developer would expect to be able to talk about with another Rails developer upon meeting for the first time.

This is Why Learning Rails is Hard

Using terms like “hard” and “easy” generally refer to familiarity. Something is easy if you know how to do it. Something is hard (in one sense) if you have to figure out the steps as you go. Learning Rails is “hard” because there are many independent concepts to learn, and if you aren’t already a web developer (competent with those branches on the left), then it can feel quite daunting to have to understand such a variety of concepts to do the simplest things in Rails.

Luckily, these competencies can be developed in parallel or independently. You can learn about git while you are learning the command line. You can learn to deploy a basic Rails app without understanding anything about all the testing framework alternatives (or even VCS, for that matter). Any skill you develop with the Ruby programming language will boost your Rails efficiency and understanding.

The Best Way To Learn

With this foundation of what a Rails developer’s skills are built upon, we can explore the best way to go about achieving each of these competencies. In the following posts in this series, I’ll look more in-depth at the individual competencies and how to best approach learning them. Pick the path that best matches your existing skill set.

Do you know what style of learning works the best for you? I’ve met people who pick up new skills just by reading a book, or watching a screencast. I’ve found that I learn best by watching the way other people do something, and asking them questions about what I don’t understand.

If you’re like me, and are ready to dive in, sign your butt up for my 8-hour get-over-the-learning-curve “Learn by Doing” Rails Fundamentals Workshop, May 31st & June 1st (9a-1p both days). It’s a live, online workshop, so you can attend from anywhere, and ask your own questions. Over the course of the workshop, you will learn to create and launch your own web app. Brilliant!

(My thanks to @TrevorBramble, @JackDanger, and @Carlos d’Avis for giving valuable feedback on early versions of the map and post.)

