Learning To Code

Should I Learn JavaScript or Ruby at a Coding Bootcamp?

Why the answer is actually both.

Flatiron School / 21 June 2017
SHARE:
If you’re asking yourself, “Should I learn Ruby or Javascript?” as you consider attending a coding bootcamp, you’re asking the wrong question. 

There are different schools of thought over what to teach at a coding bootcamp – JavaScript, Ruby, Python, to name a few common bootcamp languages – to turn students into software engineers and help them find jobs. At Flatiron School, both our NYC Software Engineering Immersive and Online Web Developer Program take a different approach from the rest of the bootcamp industry: We teach an equal amount of JavaScript and Ruby. Beyond giving you wider exposure to different languages to help you discover what you’re passionate about, there are three key reasons this pair of languages drives our curriculum

1. Versatile developers = better developers

As our co-founder and Dean Avi Flombaum explains: “If all you have is a hammer, every problem looks like a nail.” If the only programming language you know is JavaScript, every single problem you encounter will look like it needs a JavaScript solution. “That can’t possibly be the case,” according to Avi. “I like to think of our students as swiss-army knife developers – they know there’s never just one tool for the job.”

Here on Flatiron School’s engineering team, our JavaScript developers have a Ruby foundation, so they’re more likely to bring over the best parts of Ruby and apply them to JavaScript. Consider iterating over an array in JavaScript versus in Ruby:

// JavaScript (ES5):
var array = ["This", "is", "an", "array", "in", "JavaScript"];

for (var index = 0; index < array.length; index++) {
 console.log(array[index]);
}
// JavaScript (ES6):
const array = ["This", "is", "also", "an", "array", "in", "JavaScript"];

for (let element of array) {
 console.log(element);
}
# Ruby:
array = ["This", "is", "an", "array", "in", "Ruby"]

array.each do |element|
  puts element
end

The Ruby version is easier to read and, consequently, easier to understand. And readability matters – not just because it looks nicer. As Douglas Crockford writes in JavaScript: The Good Parts:

“Computer programs are sometimes thought of as a write-only medium, so it matters little how it is written as long as it works. But it turns out that the likelihood a program will work is significantly enhanced by our ability to read it, which also increases the likelihood that it actually works as intended. It is also the nature of software to be extensively modified over its productive life. If we can read and understand it, then we can hope to modify and improve it.”

Our students learn how to write beautiful, clear, structured code in a pure object-oriented language and then apply those same concepts to functional programming in JavaScript, building a knowledge base of the best from both languages. It’s an especially appropriate pairing given the direction of modern JavaScript towards a more class-based system, folding in more Ruby-like syntax with each new version (see: the ES6 example above).

It’s that ability to find the most elegant solution or tool for the job that keeps employers coming back to us to build their teams. They don’t see our alums as strict Rubyists or JavaScript developers, but as creative, language-agnostic problem solvers. “Flatiron grads have consistently demonstrated that they bring the right mix of skills and aptitudes to our firm,” says CKM Advisors hiring manager Eric Chung. “We regularly find that they are hybrid thinkers who can combine technical proficiency with an appreciation of the human side of data.”

2. Knowing two languages = more jobs. Period.

Most coding bootcamps frame their argument simply as Ruby vs. JavaScript and ask you to compare graphs of the popularity of those languages in the job market without considering the benefits of learning both. We thoroughly teach both of these key languages, producing grads who are job-ready in each language, and ready to learn even more. This expands your opportunities to over 3000 NYC-based job openings on Indeed across two of the most popular programming languages – or really a whopping 12,800 “software engineer” openings if you see yourself as language-agnostic and ready to learn new languages on the job.

This bears out in our own alumni outcomes data. We see that our alumni community works across a variety of tech stacks – some of which they learned here; many of which they didn’t.

A snapshot of the languages employed by our grads on the job based on our recent alumni survey.

3. Learning how to learn = the only skill that never goes obsolete

As Avi says, “The most consistent thing in technology is that everything is going to change. You don’t see Fortran or ColdFusion developers anymore. Similarly, you won’t be a Ruby developer in 10 years. Eventually, you will need to know more than one language if you want to have an awesome career and build deep, meaningful things.”  

Having a laser-like focus on just one language may help you get your first job in that language, but is shortsighted when it comes to building your career. Working as a software engineer, you will need to learn new languages (maybe even as early as your first day on the job). We teach a second language at the beginning of your coding education not just to teach you that language – but to teach you how to learn languages, how to recognize patterns, abstractions, and commonalities between technologies and take on new languages faster in the future.

We teach a second language at the beginning of your coding education not just to teach you that language – but to teach you how to learn languages, how to recognize patterns, abstractions, and commonalities between technologies and take on new languages faster in the future.

For example, if you only know JavaScript – which uses prototypal inheritance and doesn’t include much in the way of classic, class-based OO principles – picking up a class-based language like Java or .NET for your next job will have a much steeper learning curve than if you also had Ruby, which focuses on pure, class-based OO programming, in your toolkit.

Consistently, when we ask our alumni what was the most important skill they learned here, it’s never a specific tool or technology – it’s that they’ve learned how to learn. Hear it in their own words:

Doing Well by Doing Good: Reflecting on Five Years of Flatiron School Previous Post 2 Standout Student Projects from our NYC Software Engineering Immersive Next Post