by Constantin

Which Programming Language Should You Learn Next?

8rFTSfxwKGb9mhQsS91P1gYYGDSnNvzFgO4G

Whether you’re an expert developer or a complete beginner, it’s always a good idea to learn a new programming language.

Of course, there’s not really one single language that every professional or aspiring developer must absolutely learn. The next language you choose to learn will depend on your current skill level and your overall career aspirations.

Don’t worry: I’ll break down your options in this article to help you figure out which programming language to tackle next. I’ll recommend three languages (one for beginners, one for intermediate developers, and one for experts), along with several alternatives you might prefer, depending on your preferences.

But first, let’s look at current trends to see which languages are gaining/falling in popularity.

0v8PE38IGmhn-l2WCBdDm0SjS6XkqHE22ONi

The chart below shows the most in-demand programming languages in 2018 compared to 2017.

ud4566wXED3qlHU7m1VISV7cFeboXxVezFdB
Source: Data from Indeed.com analyzed by Coding Dojo.

Despite the fact that Java is more than 20 years old, it’s still the most popular programming language — though it has decreased in popularity since 2017. Java has been in high demand for a long time, likely because it can run on any hardware or OS. For example, all Android apps are based on Java and most Fortune 500 companies use it for back-end development.

Python, widely used for web development, is quickly catching up to Java in overall popularity. The language is widely used in scientific computing, data mining, and machine learning — which is where the growth in demand is coming from.

JavaScript remains very popular, which is no surprise since it’s used by most developers and almost all websites with dynamic logic. Also, front-end frameworks like React and AngularJS are being employed for IoT and mobile device integrations, so we’re unlikely to see JavaScript drop off the charts any time soon.

C++ and C#, used in video game development and system/application software (C# is used for Microsoft’s .NET platform), are down a bit in 2018 but still going strong. PHP is growing in popularity as a way to add web functions that HTML or CSS can’t handle, and also for its use with MySQL databases. And, finally, Perl remains a top language for its popularity among system and network admins as a “glue language” to connect different software components.

Once thing to notice about the chart above is that the top languages are all foundational. These languages (as discussed further below) are important for beginners to learn. But experts might be more interested in learning an advanced language.

IsYdyz6AYXkTpQMoVzzH4q9tm07ICM7ES6E0

Foundational vs. advanced programming languages

The most in-demand languages are sometimes referred to as foundational programming languages. They’ve been used since the early days to build the foundation of modern computing and networking.

However, there are also many, many niche languages with growing developer communities, such as Haskell (used for AI and machine learning), Scala (a replacement for Java), ML (a functional language), Scheme (used for AI and web-based programming), and hundreds more.

These advanced languages are not beginner-friendly. However, if you plan to become an expert in a particular field, like AI and machine learning, knowing a language like Haskell could be an invaluable skill.

Once you learn one or more foundational languages, you should be able to learn just about any new or more advanced programming language. Remember that it’s almost never a bad idea to learn a new language, as it will help you learn to think about problems in different ways.

With this in mind, below are three languages that are must-learns for developers at various skill levels (beginner, intermediate, and advanced), along with a few alternatives.

omaJYvc1w7-NYD0SINVfr5NnEam6R3DsO6JN
Dhl1nAh399vBQjldXFue1OeorbYzX0vYxE2w

A coding language for beginners

JavaScript is a good choice for your first programming language. As mentioned above, JavaScript is nearly ubiquitous. And you can use to develop all sorts of applications. Many websites you probably use every day rely on JavaScript, including Gmail, Facebook, Twitter, Instagram, and Spotify.

JavaScript is used for the front-end development of web apps (using frameworks like AngularJS, Ember.js, and React) and back-end development (using the Node.js framework). Learning these frameworks takes more time than learning JavaScript alone, but will help boost your employability (and salary).

Perhaps best of all, JavaScript is actually built into your browser, so you don’t have to install anything to start programming in it. That makes it incredibly accessible. There’s a good chance you’ll find the basics easy to learn, but don’t worry because there are plenty of advanced concepts to keep you busy learning for a very long time.

If you’re a beginner and you want to become a professional developer, it’s a good idea to learn JavaScript. With that said, any of the foundational languages would also be a good choice. Ideally, you should learn more than one foundational language throughout your career.

Alternatives for beginners

Python is relatively easy and fun to learn, with very few strict syntax rules. In fact, it reads like English, so even a pure beginner can understand the code. Python was used to build Instagram, YouTube, and Spotify, so it could be your ticket to a job with a top company.

Like Python, Ruby is also easy for beginners to learn. You don’t have to memorize many commands or syntax rules to use it. Startups are increasingly using Ruby’s full-stack framework called Ruby on Rails — it’s been used to build websites like Airbnb, Groupon, and many more.

gAQq8b65rFzHKNHsJhWP9cb3wGQvPmTemQXf

The next step for intermediate programmers

Once you have some programming experience under your belt, it’s a good idea to take the time to learn C (along with C# and perhaps C++).

C is more difficult to learn than JavaScript, but it’s a valuable skill to have because most programming languages are actually implemented in C. This is because C is a “machine-level” language. So learning it will teach you how a computer works and will actually make learning new languages in the future easier.

Learning to program in C is like understanding basic anatomy before becoming a doctor. If you want to become an expert developer, you need to understand how computers and software work together. Learning C is an enlightening experience that will have the beneficial side-effect of teaching you how to code more efficiently.

C# is widely used for enterprise development on the .NET platform, but it’s also the primary language for Unity 3D, a popular gaming engine for indie and VR games. C++ is usually used for performance-intensive desktop applications (including gaming). It’s also been used to create many large systems by companies like Microsoft, Oracle, and Adobe.

Alternative for intermediate coders

Java is another good choice because it can be written on any device and used across platforms, making it an incredibly versatile language (remember, it’s still the most in-demand language today).

It’s commonly used for creating apps, so if your goal is to develop mobile apps, definitely learn Java.

oCB5U5tLHin68cghZ3KYKhPQzn8oUB4onVKc
vKrwhsjUHBE49ooO9rrUcSJQ3aXBfgvhc8vX

A new challenge for expert developers

If you’ve mastered the foundational programming languages like Javascript, C#, C++, Java, and Python, you’re ready for a new challenge. In my opinion, that challenge should be Rust.

According to a Stack Overflow survey, Rust was rated the most-liked programming language by developers in 2018 for the third year in a row. It’s a relatively new language, created in 2010 by Mozilla, and constantly improving.

Rust is a compiled language comparable to C in terms of both performance and what it’s used for. However, unlike C, Rust is memory-safe: dangling pointers, buffer overflows, or other kinds of memory errors won’t be found in code written in Rust. It’s impossible to make this kind of error in Rust because any errors are caught during compilation — before the code is ever allowed to run.

This feature makes Rust tough to learn for beginners, but experienced programmers will appreciate the inherent performance improvements. It’s been growing steadily in popularity since it was created and there’s a good chance Rust will be in very high demand in the next few years. According to Stack Overflow, it was the second-highest paying coding skill in 2017 and is in the top 6 for 2018.

Alternative for experts

If you’re already an experienced Java programmer, the next language for you to learn might be Scala (short for Scalable Language).

Scala is one of many attempts to improve upon Java and can be used as a direct replacement for it — in fact, it’s compiled to run on the Java Virtual Machine. It’s a complex language to learn, but well worth it in the end: Scala was ranked in the top-paying tech in Stack Overflow’s 2017 and 2018 survey.

Like Rust, Scala has been growing steadily in popularity over the past 5 years. Major companies like LinkedIn and Twitter already use Scala in their codebases.

9AaZrFw2yZV6OscjtoVX5xhuscqLf3kjcYPF

Conclusion

Ultimately, the programming language you decide to learn next should come down to your current skill level and your career interests/aspirations.

Beginners should start with easy-to-learn languages like JavaScript, Python, or Ruby to get their feet wet and start building applications.

Programmers with more experience would be smart to master a foundational and versatile language like C or Java to gain a better understanding of how computers and software interact. This will also teach you how to code more efficiently.

And finally, expert coders might want to learn languages like Rust or Scala that improve upon foundational languages (like C and Java). These two advanced languages are already very popular among experienced developers and likely to become even more important as time goes on and companies decide to build newer, more efficient applications.

7M3LMLS-bIuNbe-HDxgFVZTHJgS-jHZFl6Zt

Looking for a new way to test your programming skills?

Having an objective idea of where you stand is key to improve. For a free and fair evaluation of your programming skills, simply submit your code. Indorse’s peer-reviewed evaluations can help you improve your technical skills and take you to the next level!

Python | C# | Java | PHP | JavaScript |Ruby

38V8eRWnC8dNLL6xJKn7deuHfJJ6ziQSsZcr