So, you want to learn how to program. Honestly, great choice — pursuing software or website development is a challenging but highly rewarding career path.
Now, for your next big decision: Which programming language should you start with? It can feel like a daunting choice, since your first language is your first exposure to the world of programming can set the tone for your learning experience.
If you pick one that’s too challenging, you might get discouraged and lose interest early on. Pick one that’s too simple and you may miss out on fundamental concepts you’ll need to lock down an entry-level development job. Plus, with hundreds of programming languages being used today, where do you even begin to look?
Fortunately, you don’t have to learn every language under the sun to break into the field. Many developers before you have come to a general consensus about which programming languages are best for newcomers.
To get you started coding as soon as possible, we’ve compiled 12 excellent beginner options you can pick from depending on your interests and desired career path.
If you’re a beginner, most software engineers recommend learning Python, Java, or C first. Below, we’ll give you a rundown of each of these programming languages and others, while describing what they’re used for and why you might want to try each one.
1. Python
Many new programmers will gravitate to Python as their first language. It has many qualities that make it perfect all-around for beginners.
Python is a high-level, general-purpose scripting language with syntax that is very simple and digestible compared to other programming languages. This makes it easy to learn relatively quickly and start building simple projects without sweating the details.
Python is also known for its broad range of libraries that allow you to extend the language to do just about anything, including software development, data analysis, machine learning, server-side web development, and a ton more.
2. Java
Java is another widely used general-purpose programming language that’s excellent for beginners. Not only is it a great introduction to the art and science of programming — it’s also one of the most sought-after languages at companies of all sizes (including HubSpot!), making it a solid foundation for a career.
The Java Virtual Machine lets Java run on virtually any hardware and operating system, making it among the most widely used programming languages in the world. It’s most commonly on the back ends of software applications, from large-scale enterprise applications to mobile apps. Notably, the Android OS is based on Java.
While Java does have a bit steeper of a learning curve than Python, it’s definitely manageable and one of the best options for first-time programmers.
3. JavaScript
JavaScript (no relation to Java, despite their similar names) is the de facto programming language of the web. It’s primarily used on the front end of websites and applications to make them dynamic and interactive. It can also be used server-side with frameworks like Node.js.
It’s also the most popular programming language according to Stack Overflow, used by 68% of professional developers. It’s also used on over 98% of all websites. With those numbers, it’s safe to say that anyone who wants to learn web development should make JavaScript one of the first languages they learn.
JavaScript is somewhat notorious in the developer community for its complexity, but that’s only if you dig into the advanced stuff. For beginners, JavaScript is intuitive, flexible, and easy to pick up. Plus, you don’t need to install another application or compile your code to see your code work — just run it in your browser.
4. HTML and CSS
Okay, HTML and CSS aren’t technically programming languages. However, if you’re interested in web development, these should be the first two languages you learn besides JavaScript. You can’t really build anything web-based without at least some HTML knowledge, anyway.
HTML is the language that defines the content and structure of web pages. When you view a web page, you’re looking at your browser’s interpretation of an HTML file. CSS is an accompanying language that defines the style of the page — it’s what makes websites look nice, basically.
The good news is that, since HTML and CSS steer clear of the programming part of web development, they’re both pretty straightforward and a great way to get a sense of what coding a website feels like without committing to a whole programming language. Take a few days to get comfortable with these two and, if you like them, consider an introductory JavaScript course.
5. C
Some programming languages, like Python, are ideal for new programmers because their syntax is simple and human-readable. Essentially, you can write programs that do a lot of things with less code. On the other hand, some other languages are more challenging because their syntax is closer to machine code (a very low-level, entirely numerical language that computers process). If you hadn’t already guessed, C is one of these languages.
So, why would anyone start with a lower-level language? Ultimately, starting with C can be more rewarding in the long run because it helps you build a better foundation of knowledge. So much of learning how to program involves problem-solving, rather than just learning syntax. For anyone who wants to dive into the technical side of things and really understand how their programs work, C is your best bet.
For this reason, C is widely taught in introductory college computer science courses. However, it also involves more complex syntax than some other programming languages — you need to write more code to get things done. But, if you want to be challenged, learning C will help you ultimately become a more well-rounded programmer.
A very influential language, C also forms the foundation for most modern programming syntax, so learning will give you key skills you can then apply to other languages. In terms of applications, C is most commonly used for desktop applications, operating systems, and databases.
6. C++
A successor of C, C++ is also popular among programmers. The name comes from the “++” operator in C, which adds a value of one to an integer. (Yes, even developers like to have fun sometimes.)
C++ builds on C by including classes and objects, which allow you to represent real-life objects in the code. This added sophistication opens many more possibilities to the language and makes it much better equipped for developing sophisticated applications, like system or application software, drivers, client-server applications, embedded firmware, and video games.
And, fun side note, C++ was also my first programming language. 🎉 🎉
7. C#
Another popular offshoot of C, C# (pronounced “C sharp”) was developed by Microsoft to run on its .NET platform for Windows applications. C# is still very common in desktop applications, it’s also known it for being the language of the Unity game engine. This means that those interested in video game development will likely need to learn C# at some point.
Once you’ve learned the basics of C, consider taking on C# next, as it will be easier to pick up once you’re familiar with the syntax of the C family of programming languages.
8. Ruby
For you aspiring web developers, this is another popular choice for beginners. Ruby is a server-side scripting language that’s one of the easier ones to read and pick up as a first language.
A big reason for Ruby’s popularity is the open-source web application framework Ruby on Rails, which has been widely adopted by startups and large tech companies like Square, Shopify, Airbnb, and Hulu, making it a valuable skill career-wise.
A main philosophy of Ruby on Rails is convention over configuration. In other words, it trades flexibility for convenience, and a lot of programming decisions are already made for you. While learning Ruby on Rails will be a heavier lift than the basics of Ruby, you’ll eventually be able to help build impressive web applications as a result.
Still, we recommend learning the basics of the Ruby programming language first, before diving into the Rails framework that goes on top of it.
9. PHP
Here’s one more popular server-side scripting language that’s valuable to know if you’re interested in web development. PHP is an open-source language that’s used to build dynamic web pages on-the-fly, making for a more personalized browsing experience. Highly flexible, beginner-friendly, and with tons of frameworks, PHP tops the list for most-used languages by beginners and professionals alike.
PHP is also the core language for the WordPress content management system and is a staple in the WordPress developer’s toolkit. Since WordPress is free and open-source, peeking at its core files is a good way to get some exposure to how PHP powers websites.
10. SQL
Are you interested in working with databases, or any kind of job that involves storing, fetching, and analyzing data? In that case, it’s definitely worth your time to pick up SQL at some point.
SQL, which stands for Structured Query Language (and is often pronounced “sequel”) is the standard programming language for managing relational databases. A relational database is one in which data points are related to each other, organized in tables of columns and rows.
SQL allows you to add data to, extract data from, and change data inside relational databases, making it most useful for data analysts and scientists, as well as product experts, business analysts, and marketers who wish to factor business data into their decision-making.
You can’t exactly “build” things with SQL in the same sense as other languages here — it has a much more specific purpose. But, if you aspire to work with data in any capacity, SQL is a must-know.
11. Swift
Swift is a newer programming language created by Apple to develop iOS and macOS applications. If you think building apps is something you’d want to do, learn Swift — you’ll need to know it eventually to make a career in iOS and macOS development.
Like other languages we’ve discussed here, Swift has relatively straightforward, human-readable syntax and is a pretty forgiving language when it comes to mistakes. It’s also a very scalable language that makes it easy to translate your projects from small experiments to full-blown app pursuits.
12. Go
To close out our list, we have Go (also known as Golang), a general-purpose. Go was created by Google to support software development projects. It’s similar to C, but with easier syntax and some added functionality to support more efficient building and more scalable projects. Some people see Go as combining the more user-friendly aspects of several programming languages into one.
Go has gained traction among developers of cloud-based applications, AI and machine learning, web servers, data tools, and command-line tools.
For more general advice on how to pick which language to learn first, check out this great video from Codecademy.
Learn to code.
As I said, picking a first programming language is intimidating. But, the good news is that once you get a feel for one language, it’s easier to transfer your knowledge to other similar programming languages. For example, if you started with C, you can take on C++, JavaScript, or PHP without having to relearn a ton of new concepts.
Whichever language you choose, the most important thing isn’t the exact syntax of the language you’re writing (though, yes, that is important). Rather, it’s the fundamental concepts of computer science, the problem-solving skills you pick up along the way, and, eventually, the ability to think computationally as second-nature.
That might all seem far off to you right now. But, with diligent practice and dedication to the languages you’re learning, a new career can be closer than you think.
Editor’s note: This post was originally published in January 2019 and has been updated for comprehensiveness.