by Josh Alletto

Why our coding boot camp still teaches two programming languages at once

TuoEN1ay3JAY8IhNW5XsJhJL7otn5xyLVgwt
Image Source: Code Platoon

In our quest to train employment-ready full-stack developers, our coding boot camp decided to teach Ruby on Rails (a Ruby-based back-end framework) and React (a Javascript-based front-end framework) side by side.

In the beginning, teaching two languages was a practical decision. Students needed both the front-end and back-end education to meet our standard for real-world, full-stack developer success.

Our ideal language for each piece was different. While learning two languages at once was much more difficult, our students had no choice because we couldn’t create a better solution at the time.

Rather than getting overwhelmed and washing out, our students thrived on the challenge of learning two languages.

Since we didn’t see any negative consequences for the students other than a heavier workload, we didn’t change the program for our first five years.

Despite our success teaching Ruby on Rails, we eventually decided to update our program and introduce a new back-end framework to our curriculum. We considered several options, but eventually the choice came down to two: Python’s Django or Javascript’s Node.js.

We finally had the opportunity to simplify the challenge level of our program and teach Javascript alone while maintaining a cutting-edge education.

We didn’t do it.

2GHQZYIMmgOd9PechhX5lLUutXVia97zuMsp
Image Source: Code Platoon

Instead, we chose Python’s Django.

Employment analysis had indicated that Python and Django were equally as valuable to our students as Javascript and Node.js. So, choosing Django wouldn’t compromise quality. It would just be harder for our students to learn than if we taught only Javascript and used Node.js.

We weren’t just making the program harder for the heck of it. There was more to the story when we looked at what happened after our students graduated.

In the process of deliberating on our choices, we realized that learning multiple languages had become our graduates’ advantage.

The speed at which our students learned to program, their success after graduation, and the feedback we received from them confirmed that learning two languages at once was — while difficult in the short term — ultimately essential to their long term success.

Based on what we’ve measured and heard, here are the most important reasons we continue to teach more than one programming language at Code Platoon.

ZLJlNQAPdIlCIB1ZYnZ7b34XC0-faRmPoSn1
Image Source: Code Platoon

1. You prioritize concepts over syntax

Just like great mathematicians are not measured by their ability to memorize theorems, great developers are not measured by their ability to write a syntactically perfect ‘for’ loop in a certain language off the top of their head.

More important is their ability to grasp the essential concepts and understand the systems they are working with.

Syntax is easy. Googling “How do I write a singleton in Ruby” will immediately return numerous results. Knowing when to use a singleton (rather than a class instance) is the hard part.

Syntax changes with the language, but many of the methods for solving problems with computers remain the same.

Once you understand that all object-oriented languages have singletons, you become less obsessed with memorizing where commas go — and more focused on what steps you need to take to solve your problems.

Seeing the similarities in languages can go a long way in hammering down universal concepts. But looking at differences can be just as helpful. Some concepts are more abstract, or just flat-out harder to understand in one language over another.

For example, lambdas in Ruby made no sense to me, but the concept finally clicked when I saw lambdas in Javascript. Sometimes it’s just a matter of seeing the same thing in a different way, and you’ll never get that if you stick to just one language.

2. You increase your job opportunities

We want our graduates to be prepared for actual coding jobs. While some of our graduates get jobs where they write code in the languages we teach, more of them land jobs that require a different language.

With each subsequent job, they’ll usually need to learn at least one new language or framework.

Learning that first language is challenging. Showing that you’ve learned two in a short amount of time advertises your ability to learn under pressure. This is a skill which really helps you stand out from the crowd.

Having both Javascript and Python on your résumé shows that you can write in those two languages.

More importantly, it shows that you can continue to learn coding languages. This increases your chances of getting hired in a job which doesn’t require either of them.

In the real world, you won’t last long as a programmer if you only know one language, or if you’re not prepared to keep learning new ones. The time you spend learning the second one in the safety of the classroom will give you the confidence to learn the third one on the clock at your new job.

md2OKJvQkOgzMChLC17lWk---85mjnLES6Lt
Image Source: Code Platoon

3. You can build more things with more languages

Few modern web apps are built with just one programming language. Some languages are better at certain things. Javascript dominates the front end. You can use it on your back end also. But, depending on what you want to do, you might want to use Ruby or Java on the server side.

Most apps require a database. In which case, you’ll want to learn a query language like SQL.

Do you need to analyze lots of data? Python or R might be what you’re looking for. You’ll build faster and smarter if you understand what each language does well and how to use the languages to accomplish the tasks you need to get done.

NA6g5e6YDupi1d7VejK0nXs6PwtAVT4iN2U2
Image Source: Code Platoon

4. Perspective helps you gain confidence and grow

Learning your first language can be incredibly difficult. But like anything else, the more you learn, the more confident you’ll become in your ability to solve difficult problems.

And that’s what a lot of programming is — the ability to evaluate a problem and find a solution. The willpower and confidence to push through those inevitable “I have no idea what to do next” moments is key.

After you’ve learned your second language, you become more open to change. You’ll understand how to choose the best tool for the job. One language that’s great for web development may not be the best for data analysis, and you’ll understand that. You’re less likely to force a tool you know really well over just learning the better tool on the fly.

5. We want two-language bootcamps as standard

Learning two languages at once is no small feat. But knowing two languages better prepares our graduates for a competitive job market and sets them up to succeed.

We hope to see more coding boot camps take this approach in the best interests of their students. We encourage prospective coding students to seek out coding boot camps that offer this advantage, despite the extra legwork required of them.