There’s a lot to learn when it comes to coding. How do you know where to start? Should you learn HTML or JavaScript? What’s the difference between Python and Ruby? What are "client-side" and "server-side" languages, "front end" and "back end," and how are they different? Hopefully this quick post will help you choose the language best suited for what you want to do.
Coding is a tool: pick the language that suits your needs
Similar to spoken languages, the answer to the question of "which coding language should I learn" depends on your context, and what you want to do with the language. If you wanted to move to France, you should probably learn French. Coding languages can vary a lot in what they can do and how they work… and that means some are better suited to certain tasks than others. The following is a breakdown of how different languages are used in order to build websites; even if building sites isn’t your goal, knowing how that process works will help you figure out your coding path.
To edit webpages
If you’re interested in creating a static website or a single webpage, you should start with HTML and CSS. (We’ll show you how to use both in our Build a Website with HTML, CSS, and GitHub Pages skill path.)
HTML stands for Hyper Text Markup Language and describes the structure of webpages. CSS stands for Cascading Style Sheets, and controls their appearance — for example, the font color or the position of text on the page.
To make them interactive
If you want to give your website behavior—think automatic Twitter updates, your Facebook notifications, or the ability to drag and drop elements of your LinkedIn profile—then you’ll want to learn JavaScript and jQuery. JavaScript is a frontend, or "client-side" language which means it runs on the web browser of the person visiting your site. jQuery is a library of specific JavaScript tools designed to make website interaction more awesome.
To store user information
If you want to develop a full-blown web app that lets users log in and saves information for them (such as tweets, Facebook posts, or Codecademy badges), you’ll want to learn a backend, or "server-side" language like Ruby (often paired with its framework, Rails) Python, or JavaScript (it’s ambidextrous). These languages run on the computer where the website code lives, also called the server. You can accomplish the same things and build the same kinds of projects with each of them, so go ahead and pick your favorite! Choosing a server-side language is often a matter of personal preference, even for professional developers. Codecademy courses are a great way to try out different languages and see which ones you prefer and for what reasons. Many languages work on similar principles, like object-orientation, so once you’ve learned one you could find yourself having an easier time learning another – don’t be afraid to experiment!
Putting it together
In order to make a fully-functioning and beautiful website with interactivity and complex functionality, you’ll need to learn both frontend and backend (or client-side and server-side) and put them together. That’s why one of the most popular routes that users take on Codecademy is learning what they need to build a website: HTML, CSS, JavaScript, jQuery, and a server-side language (typically in that order). Even if your eventual goal is not to build websites (if you want to build an iOS app, or to become a data scientist), having a basic understanding of how websites work is a great way to get exposure to how to make things with code. Once you’ve done this, you’ll find that you have the experience you need to make some intelligent decisions about how to move forward.
The bottom line
There are many people you can ask for further advice, like members on our community forum… but answering the question of what languages you should learn is something that is ultimately down to you. We hope that you find Codecademy to be a fun place to experiment with different coding languages and see which ones you like best!
Which language will you start with?
This is an updated version of the original post by Eric Weinstein, creator of many Codecademy courses and a current Senior Software Development Lead at Hulu.