Here’s Why I’m Learning Ruby On Rails First

Michael Hartl Learn Ruby on Rails

I wrote recently about learning the Ruby on Rails programming framework.  That post outlined some initial thoughts on why I picked Ruby, but I decided to expand on this for readers with an interest in learning programming.

There is a raging debate these days on whether new programmers should first learn Ruby and RoR or JavaScript and a back-end JavaScript-based framework that uses Node.js.  Frankly, I went back and forth on the pros and cons quite a bit myself, and it was a tough decision which framework and language to tackle first.

A lot of commentators say you shouldn't agonize about this decision, but I disagree for two reasons.  First, when you spend six months learning anything, you should invest a lot of time upfront making sure it makes sense.  Second, all the research involved in choosing a first programming language proved a tremendous education into the current state of programming languages and web development.  Just researching where to start was a big part of acquiring some of the basic vocabulary of programming and web development.

So Here's Why I'm Focused On Ruby On Rails First

  • I can get to a baseline skillset of creating marketable apps most quickly with RoR.  Why?  Because Rails is such an "opinionated" language, there are massive guardrails in place to help a newbie get an app up and running.  (Hence the word "Rails" in the RoR title.).
  • I will learn JavaScript regardless as JS is a core technology in developing interactive websites.
  • If, down the road, I need to learn a backend framework build on Node.js, I will.
  • I know myself.  My motivation is to write content and build software--and, through these products, help people.  A more elegant way to express this is that I'm more focused on web entrepreneurship and SaaS than becoming a full-time developer.  (If I were keen to get a job as a developer as soon as possible, I'd be learning full stack JavaScript-based development and not spending time now with Ruby and RoR.)
  • Learning Ruby and RoR is the least steep path to building true, functional apps.  This is important because I'm starting from a fairly basic level of knowledge.  Learning this stuff isn't that easy.  So making it as painless as possible is important.  Seeing progress matters.
  • The matter of Node.js-based websites' greater performance (in terms of speed) vis-a-vis Rails is irrelevant to me and almost everyone not developing web apps that will scale into thousands of simultaneous users.  Speed and ease of development are significantly more important to me than application performance at this stage.
  • I love languages in general.  I learned basic Latin and Ancient Greek in college.  I've also learned French, Spanish, Latvian, and Croatian.  Within that context, I enjoy the crazy Zen nature of the Ruby language.  It's no accident that Ruby was developed by someone from Japan, a culture with a greater emphasis on economy of effort, minimalist design, and beauty in the mundane.  To Learn Ruby is to learn something beautiful and practical.

So that's why I'm going with RoR.  The truth is that I'll likely immediately start learning a JavaScript-oriented framework once I've gotten halfway proficient at Rails.  I'm just curious about learning a second framework, and I do recognize that JavaScript is the future (for now) of web development.

This question of what to learn first is an important one.  I'd love to hear any thoughts from readers.  What's your take?  Any flaws in my thinking?

Click Here to Leave a Comment Below

Leave a Reply: