Fullstack Bootcamp - Leaving JS for Later

December 8, 2020

As an active member of Dev Twitter, I'm more than familiar with the kinds of tweets circulating the tech community. Code snippets, portfolio highlights, and celebratory posts following successful job interviews are always a pleasure to see. However, a trend I've noticed among so-called "Code Influencers" (Codefluencers?) is the generic numbered list of "Steps to Become a Full Stack Developer", which usually go something like this:

  1. HTML, DOM
  2. CSS (Grid, Flex)
  3. JavaScript
  4. React
  5. Node.js
  6. MySQL
  7. MongoDB
  8. The CRUD pattern
  9. Congrats, you're a full stack developer

While I'm a strong advocate for self-education when it comes to coding, and believe that you should follow whatever tech stack interests you, I feel as though there's a huge push for people to learn JavaScript IMMEDIATELY after HTML and CSS basics are mastered. It feels like it's almost required to continue web development.

While I can understand wanting to learn a technology that is both in-demand and has powerful capabilities, JavaScript is notoriously difficult to learn, even to slightly more experienced developers. No doubt I would have been struggling with it myself months ago (and would probably have cultivated a love/hate relationship akin to how most feel about CSS) if I had follow the dominant narrative of learning JS straight away.

However, I'm thankful that I learned Ruby first.

Being in a boot camp has both its pros and cons, and not learning JavaScript in the first few months could fall into either one of these categories depending on your perspective. However, being a student means following the curriculum, and one thing that our program does that seems to deviate from the norm is teaching its students to program in Ruby before any other programming language. At first I was skeptical of this approach; dev jobs online are all seeking JS and Python programmers. Learning Ruby was, at times, incredibly frustrating. But when I finally started teaching myself JavaScript, everything started to make sense.

For those that are unfamiliar with Ruby as a language, it's designed to be as readable to humans as possible. Ruby's creator, Yukihiro "Matz" Matsumoto, essentially took features of several languages that he found pleasant to use, and wrapped them all nicely in an Object-Oriented Programming Language that was pleasant to read and abstracted unnecessary complexities.

Thus, in 1995, Ruby was born. But why learn a relatively new and underutilised language over an in-demand technology?

Anyone who has learned to program can likely attest to the fact that learning your first programming language can be a frustrating endeavour. While I felt much the same way about Ruby in my first few weeks working with it, I am someone with no previous programming experience. I can say without a doubt that Ruby gave me the confidence with programming I really needed to start exploring other languages on my own, and it's all due to its simple syntax.

The reason I recommend Ruby prior to learning JavaScript is the similarities between the two languages. Basic JavaScript feels a lot like writing in Ruby with a little extra syntax (eg the keyword "lets" in front of variables, and console.log() instead of the keyword "puts"). Diving into JS after a month of coding in Ruby means I can already do everything in JS that I am capable of in Ruby, with next to no effort on my part.

I am, of course, speaking as a boot camp student, and I no doubt have the amazing educational staff at Coder Academy Sydney to thank for my rapid growth as a developer. However, I do firmly believe that Ruby is a fantastic stepping stone towards JavaScript, that can help prevent future frustrations and the potential of lost passion over a language that just won't seem to work.

My advice to those learning to program: Try Ruby. If you find that it isn't for you, then there's nothing lost, and there's a multitude of other tech waiting for you to play with. But don't let Ruby's relative obscurity fool you into passing by an enjoyable and powerful language.