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.
Trends in programming languages
The chart below shows the most in-demand programming languages in 2018 compared to 2017.
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.
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.
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.
A coding language for beginners
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.
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++).
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.
A new challenge for expert developers
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.
Ultimately, the programming language you decide to learn next should come down to your current skill level and your career interests/aspirations.
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.
Looking for a new way to test your programming skills?
Having an objective idea of where you stand is key to improve. For fair evaluation of your code & 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!