Deciding on which programming languages you need to learn to be a successful web developer can be overwhelming. And while coding bootcamps are an efficient way to gain the programming skills you’ll need to get a job as a developer, different schools have different beliefs on which programming languages represent the best way to build those skills. I wanted to take a moment to share what languages we teach here at Flatiron School, and why they’re important.
There are three main goals for our full-stack Web Developer Program at Flatiron School which have influenced our curriculum and the languages we teach:
- Discover what type of programming you’re most passionate about
- Learn enough so that you can get a job as developer
- Learn how to learn, so that you can progress in your career after your first job
Let’s take a closer look at each.
Discovering what you’re passionate about
We love how excited our students are to learn how to code and our best ones do a ton of research about which languages to learn for getting a job. But the reality is that if you’re new to programming, you probably don’t even know what kind of developer you’re aiming to become or where you excel—and that should start to become more obvious as you dive deeper into programming.
For instance, if you want to be a front-end developer, you’ll need to be proficient in JavaScript, but if you want to be a full-stack or back-end developer, you’ll need to learn other languages like Ruby or Python. We train our students to be full-stack developers. Of those, over 60% end up focusing on the back-end or full-stack and the rest choose to pursue the front-end. Being exposed to multiple languages and frameworks helps you discover—and pursue—what you’re passionate about. I always tell my beginner students that they should care more about diving in and getting excited about learning to program, rather than having strong opinions from the start about the benefits of one language over another.
Learning enough to get a job
As you progress through our program, you’ll begin to get a sense of what type of developer you want to become and start to explore your career possibilities. After finishing our program, the best way to learn is to get paid to do so on the job.
In addition to ensuring you have the foundation to begin a lifelong career as a developer, we want to make sure you’re able to get your foot in the door with employers in the short-term. We’re constantly iterating on our curriculum to keep it in line with the always-changing job market. It’s why we still teach Objective-C in our iOS course alongside Swift (many mobile development jobs today still require some knowledge of the former) and have evolved the way we teach JavaScript in the Web Developer program (working with Ember, Angular 2, and more). We also teach a fair amount of Computer Science, some of which is actually helpful on the job, some of which is really just needed in the interview process.
Ultimately, our goal is to prepare every student with the skills necessary to start a career as a full stack developer.
So, what are employers looking for? You may see lots of job advertisements asking for JavaScript. That’s because almost all front-end development jobs require this language. So if that’s your intended path, it’s important to have a solid foundation in JavaScript.
Node.js is a runtime that allows developers to use JavaScript—a language originally developed for use in the browser—for the back-end, and some schools now only teach JavaScript and Node.js as you can technically be a full-stack developer with only JavaScript under your belt. But in our experience, if you want to be a great full-stack developer, mastering JavaScript alone is not enough. Great full-stack developers are flexible; they use the right tool for each job. As the saying goes, if you only have a hammer, every problem looks like a nail; if you only know JavaScript, you’re limited to seeing every problem as a JavaScript problem, when there might be better approaches. This is one of the reasons why, in addition to teaching JavaScript and Node.js, we also teach Ruby and the Ruby on Rails framework, along with others. Our goal is to give you as large a toolset as possible in our time together so you can be a versatile and adaptable developer.
Companies can choose to build their back-ends in several different languages and frameworks—Google is built on Python, Airbnb on Ruby, Amazon on Java—so there’s isn’t one all-purpose language that will prepare you for every single back-end job. Starting your coding education by learning multiple languages, like you do at Flatiron School, is the best preparation possible.
Learning how to learn
Without a doubt, you’ll leave Flatiron School with the skills to get a job as a developer. But skills alone aren’t enough to thrive as a developer in the long-term. It’s also crucial that you love learning. We give you the foundation at Flatiron School, but learning to code and evolving as a programmer is a lifelong endeavor. No matter what language you learn first, you will have to learn other languages throughout your career in order to keep pace with changing technology.
At Flatiron School, we teach you multiple languages (e.g., JavaScript, Ruby) and frameworks (e.g., Rails, Angular, Express). This not only makes you a more versatile—and employable—programmer, but also helps you learn how to learn. If you’ve ever learned a second language in school, you may have noticed that learning the grammar of the new language helped you better understand English (or your native language). It’s similar in programming: learning more than one language makes you better at understanding abstractions and noticing patterns, which ultimately help you pick up more languages.
We begin our course with Ruby and that’s a deliberate choice. Ruby is a great language for beginners. It’s clean and colloquial, so you can focus on learning how to think rather than getting bogged down in complicated syntax. Ruby also has a very active and welcoming open-source community—so you’ll immediately feel connected to other programmers, which is critical for effective learning.
Then, once you’ve mastered the basic concepts in Ruby, we introduce other languages which further prepare you for a job as a junior developer. We’ve seen many of our grads, who have a solid foundation in a language like Ruby, go on to secure full-stack jobs that require other languages like Python and Objective-C. They’re extremely adaptable.
If you’re interested in seeing what our grads have gone on to do, you can read about the career paths of alums like Natacha, Victoria, and Shana.
As an educator, I feel my biggest responsibility is to inspire students to fall in love with code. Loving what you’re doing, being excited by the learning process, is your biggest asset in being prepared for not just your first job, but a lifelong career as a developer.
If you’re interested in learning more about our Web Developer Program, take a look at our syllabus here.
For more information, take a look at a recent online lecture I gave on this subject:
This article originally appeared on Quora.