Java, Ruby, and Go, Oh My!
By: Quincy Larson
Tags: Programming, Design, Technology, Education, Social Media

Free Code Camp has focused 100% on full stack JavaScript since we started 17 months ago. We’ve taught JavaScript on the front end, JavaScript on the back end (thanks to the powerful Node.js framework) — and even JavaScript as a database querying language.

And since the beginning, our open source community has fielded several requests each day asking us to teach other popular back end languages as well.

Well today, I’m excited to announce that we will heed those thousands of requests. Free Code Camp will now teach a wide variety of web development languages.

Starting today, we’re building a massive collection of Creative Commons-licensed tutorials on popular languages like Python, Java, Ruby, and PHP, along with emergent languages like Elixir and Go.

And you can now complete our Back End Development Certification — and build its ten API and Dynamic Web App projects — using whichever languages and frameworks you want.

An image of our Back End Development Certification challenges, with optional Git, Node.js, Express.js and MongoDB sections, and 10 required projects.

Which of these languages should I learn first?

The answer is the same as before: JavaScript.

As virtually any professor would tell you, you should learn one language thoroughly before attempting to learn a second language. And JavaScript is by far the most popular and promising language right now. JavaScript is also a popular choice for a first programming language, and has a wide variety of free learning resources (including Free Code Camp itself).

Regardless of which web development framework you use, you will need to become proficient at JavaScript. This is because JavaScript has the distinction of not only owning a near monopoly on front end web development, but also being quite competent on the back end, thanks to tools like Node.js and Express.js.

So if you’re just getting started as a web developer, our advice remains the same: focus 100% of your time on mastering JavaScript.

If new developers should focus on full stack JavaScript, then why will Free Code Camp teach additional back end languages?

About two-thirds of our campers are new to web development. Some of them have no prior programming experience at all. Others join Free Code Camp with experience in web design, systems administration, and other related fields. This two-thirds of campers are the people for whom we specifically designed our open source curriculum.

But another third of our community has already done some web development — often with languages like PHP or Ruby. And they are joining Free Code Camp to review — or build upon — existing skills.

And — as you’ve probably heard — hundreds of our campers have gotten software development jobs after joining our open source community. Some of these jobs were not specifically full stack JavaScript jobs, but rather full stack web developer jobs that use alternative web development frameworks, like Python Django or Ruby on Rails. After accepting these jobs, these campers were able to parlay their knowledge of Node.js and Express.js into using these other tools. But many of these campers reported that they needed to pay for expensive learning resources in the process.

This third of our community — experienced web developers and campers who just got hired — have voiced their desire for us to cover additional back end languages and frameworks. And their voice has been heard.

Our open source community is now large enough — and we are now diverse enough in our web development expertise — that we can create extensive free resources on a wide range of web development topics.

So that’s what we’re going to do.

How will these languages be incorporated into Free Code Camp?

One of Free Code Camp’s strengths has always been that we offer a clear, unambiguous path forward to your first software engineering job.

Rather than complicate our challenge map with electives, we’ve chosen to keep our core curriculum 100% focused on full stack JavaScript.

Instead, campers are building this content in Free Code Camp’s “Expanded Universe.”

We’re creating a variety of tutorials and articles on these languages — everything from how to set up a development environment on different operating systems, to how to build example apps using popular libraries. And these can be written in Markdown and interlinked with one another, right on our wiki.

We’re welcoming campers to live-stream web development in any language they want on our (soon-to-be 24-hour) Twitch.tv channel.

We’re inviting campers to contribute articles to our Medium Publication on these languages. Here’s one we just published yesterday on the similarities between Java and Go.

We’re creating videos that discuss various concepts specific to other languages, such as the Rails Asset Pipeline and the Java Virtual Machine. We’ll embed these videos in wiki articles and post them on our YouTube channel.

Arijit Layek is an experienced Java and Python developer in Hyderabad, India. He joined Free Code Camp to improve his JavaScript, and now leads our effort to cover additional back end languages.

Arijit Layek is actively creating tutorials for Python and Java, and coordinating the efforts of other campers who want to contribute tutorials on these and other languages.

If you are a web developer with experience in one or more of these languages, you should join these relevant chat rooms and introduce yourself. Arijit and the other campers there can help you come up with ideas for tutorials, and answer any other questions you may have.

Our goal is to build the most inclusive web development resource on the planet. To us, that means a rigorous core curriculum, volumes of supplementary content, and — most importantly — a vibrant, supportive community.

I only write about programming and technology. If you follow me on Twitter I won’t waste your time. 👍