So, you want to learn how to program. Honestly, great choice – pursuing software or website development is a challenging but rewarding career path.

Now, for your next big decision: which programming language should you start with? This can feel like a daunting choice because your first language is your first exposure to the programming world and can set the tone for your learning experience.

If you choose one that is too challenging, you may get discouraged and lose interest early on. Pick one that’s too simplistic and you risk missing the fundamental concepts needed to lock in entry-level development work. Plus, with hundreds of programming languages ​​in use these days, where do you even start looking?

Fortunately, you don’t have to learn all the languages ​​under the sun to get into the field. Before you, many developers have reached a general consensus on which programming languages ​​are best for newbies.

To get you started coding as quickly as possible, we’ve put together 12 great beginner options you can choose from based 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 brief introduction to each programming language and others, along with a description of what they’re used for and why you might want to try each.

1. Python

Many new programmers will tend to use Python as their first language. It has many features that make it an all-around perfect choice for beginners.

Python is a high-level general-purpose scripting language with a very simple and easy-to-understand syntax compared to other programming languages. This makes it easy to learn relatively quickly and start building simple projects without worrying about the details.

Python is also known for its extensive libraries that allow you to extend the language to do anything, including software development, data analysis, machine learning, server-side web development, and more.

2. Java

Java is another widely used general-purpose programming language that is great for beginners. Not only is it a great introduction to the art and science of programming – it’s also one of the most popular languages ​​in companies of all sizes (including HubSpot!), making it a solid foundation for a career.

The Java Virtual Machine allows Java to run on virtually any hardware and operating system, making it one of the most widely used programming languages ​​in the world. It is most commonly found on the back end of software applications, from large enterprise applications to mobile applications. It is worth noting that the Android operating system is based on Java.

While Java does have a steeper learning curve than Python, it is definitely manageable and one of the best options for beginners.

3. JavaScript

JavaScript (unrelated to Java, despite their similar names) is the de facto Web programming language. It is mainly used on the front end of websites and applications to make them dynamic and interactive. It can also be used on the server side with frameworks like Node.js.

It is also the most popular programming language, used by 68% of professional developers, according to Stack Overflow. It is also used in over 98% of all websites. With these numbers, it’s safe to say that anyone looking to learn web development should make JavaScript one of the first languages ​​they learn.

JavaScript is notorious in the developer community for its complexity, but only if you delve into the advanced stuff. For beginners, JavaScript is intuitive, flexible, and easy to pick up. Plus, you don’t need to install another app or compile the code to see the code in action – just run it in your browser.

4. HTML and CSS

Well, HTML and CSS are not technically programming languages. However, if you’re interested in web development, these should be your first two languages ​​to learn outside of JavaScript. Anyway, you can’t really build anything web-based without some HTML knowledge.

HTML is the language that defines the content and structure of web pages. When you view a web page, you are viewing the browser’s interpretation of the HTML file. CSS is an accompanying language that defines the style of a page — basically, it’s what makes a website look good.

The good news is that because HTML and CSS eschew the programming part of web development, they’re both very simple and a great way to get a feel for what it’s like to code a website without having to use an entire programming language. Spend a few days familiarizing yourself with these two, and if you like them, consider an introductory JavaScript course.

5. C

Some programming languages, like Python, are great for new programmers because their syntax is simple and easy to read. Essentially, you can write programs that do a lot 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, fully digital language for computer processing). If you haven’t guessed, C is one of those languages.

So why would anyone start with a low-level language? Ultimately, starting with C might be more valuable in the long run as it helps you build a better knowledge base. Much of learning how to program involves problem solving, not 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 a more complex syntax than some other programming languages ​​- you need to write more code to get the job done. However, if you want to take on the challenge, learning C will help you eventually become a more well-rounded programmer.

As a very influential language, C is also the basis of most modern programming syntax, so learning it will give you key skills that you can then apply to other languages. On the application side, C is most commonly used in desktop applications, operating systems, and databases.

6. C++

As the successor of C, C++ is also popular among programmers. The name comes from the “++” operator in C, which adds a value to an integer. (Yes, even developers like to have fun sometimes.)

C++ builds on C by including classes and objects, allowing you to represent real-life objects in your code. This increased complexity opens up more possibilities for the language, making it more suitable for developing complex applications such as system or application software, drivers, client-server applications, embedded firmware, and video games.

And, interestingly, C++ was also my first programming language. 🎉 🎉

7. C#

Another popular branch of C, C# (pronounced “C sharp”), was developed by Microsoft to run Windows applications on its .NET platform. C# is still common in desktop applications, and it’s also best known as the language of Unity’s game engine. This means that those interested in video game development may need to learn C# at some point.

Once you’ve learned the basics of C, consider learning C# next, as it’s easier to pick up once you’re familiar with the syntax of the C family of programming languages.

8. Ruby

For aspiring web developers, this is another popular choice for beginners. Ruby is a server-side scripting language, and it’s a first language that’s easier to read and learn.

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 career skill.

A major philosophy of Ruby on Rails is convention over configuration. In other words, it trades flexibility for convenience, and many programming decisions are already made for you. While learning Ruby on Rails will be heavier than Ruby basics, you’ll eventually be able to help build impressive web applications.

Nonetheless, we recommend learning the basics of the Ruby programming language before diving into the Rails framework on top of it.

9. PHP

This is one of the more popular server-side scripting languages, and it’s valuable if you’re interested in Web development. PHP is an open-source language for dynamically building dynamic web pages to provide a more personalized browsing experience. PHP is highly flexible, beginner-friendly, and has a large number of frameworks, topping the list of most used languages ​​for beginners and professionals alike.

PHP is also the core language of the WordPress content management system and is the main language in the WordPress developer toolkit. Since WordPress is free and open source, looking at its core files is a great way to learn how PHP powers your website.

10. SQL

Are you interested in working with databases or anything that involves storing, retrieving and analyzing data? In this case, it’s definitely worth your time to learn SQL.

SQL, which stands for Structured Query Language (often pronounced “sequel”) is a standard programming language for managing relational databases. A relational database is a database in which data points are related to each other, organized in tables of columns and rows.

SQL allows you to add, extract, and alter data in relational databases, making it most useful to data analysts and scientists, as well as product specialists, business analysts, and marketers who want to incorporate business data into decision-making.

You can’t “build” things with SQL like the other languages ​​here – it has a more specific purpose. However, if you’re eager to manipulate data in any way, SQL is a must-know.

11. Swift

Swift is a newer programming language created by Apple for developing iOS and macOS applications. If you think building apps is what you want to do, learn Swift – you eventually need to know it to get a foothold in iOS and macOS development.

Like the other languages ​​we’ve discussed here, Swift has a relatively simple, easy-to-read syntax, and is a very forgiving language when it comes to mistakes. It’s also a very extensible language, making it easy to transform your projects from small experiments to full-blown application pursuits.

12. go

To end our list, we have a generic Go (also known as Golang). Go was created by Google to support software development projects. It is similar to C, but has a simpler syntax and some additional features to support more efficient builds and more scalable projects. Some people believe that Go combines the user-friendly aspects of several programming languages ​​into one.

Go is gaining traction among developers of cloud-based applications, artificial intelligence and machine learning, web servers, data tools, and command-line tools.

For more general advice on how to choose which language to learn first, check out this great video from Codecademy.

Learn to code.

As I said, choosing your first programming language is daunting. However, 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 start with C, you can learn C++, JavaScript, or PHP without having to relearn a lot of new concepts.

No matter which language you choose, the most important thing is not the exact syntax of the language you’re writing in (although, yes, it matters). Rather, it’s the fundamental concepts of computer science, the problem-solving skills you learn along the way, and ultimately the ability to see computational thinking as second nature.

It all seems out of reach for you now. But with diligent practice and dedication to the language you are learning, a new career may be closer than you think.

Editor’s Note: This article was originally published in January 2019 and has been updated for comprehensiveness.

new call to action