Programming languages to pick up in 2021
Let me get this out of the way right off the bat — in the long run, which programming language you learn or how many programming languages you know does not matter nearly as much as how well you know the fundamentals like data structures and algorithms. If you know the core concepts, you can pick up programming languages fairly quickly. That being said, if you are just starting out, you have to pick a programming language and some may be better for you than others.
It’s tempting to make a top 5 or top 10 list. I won't be doing that because there is no such thing as the best programming language. Just because there are jobs or people could make a good salary learning a certain language, does not make it the best language for you to learn. Sometimes there is demand even for a declining language because there is so much out there already ... but do you really want to jump in the bandwagon of a dying language just because there are jobs available right now? Probably not. What you should instead focus on is programming languages that have a positive growth trajectory, backing and support from big multinational companies as well as the open source community, in addition to what sort of things interest you.
To that end, I will mention programming languages in three categories - the ones you can go ahead and learn in 2021, ones you can consider for special circumstances but not in general, and the ones you should avoid. In the end, I will also show you a tool that you can use to see which languages, frameworks, tools and practices in software engineering are hot, which may help you decide what to learn.
Programming languages you should consider learning in 2021
First up, is Javascript.
Javascript continues to be one of the most used programming languages because of how versatile it is. You can use javascript for both client-side and server-side code. For beginners, it is also relatively easy to get started — all you technically need to write and execute Javascript code is a browser and a text editor. So whether you aspire to become a front-end engineer, backend engineer, full-stack engineer or an infrastructure engineer, you will come across some popular runtime or framework like NodeJs and React, that are based on Javascript. Javascript also has one of the largest developer communities, so you can be confident that you will find help and support if you ever get stuck. So whether you are starting out in 2021 or are looking to pick up a new language, Javascript continues to be a great choice.
Next up is Python.
Python is generally considered as one of the easiest languages for beginners to pick up because of its syntax being very close to natural language. Python is also widely adopted as a programming language in many different areas of software engineering - from web development to data science to machine learning. Python has a large variety of supporting frameworks and libraries and is adopted in some form by most top tech companies and its adoption continues to grow among the developer community. Python is here to stay, which makes it a great candidate for pick up in 2021.
Third is Kotlin / Swift.
I am putting these two together because they are relatively new — both about 10 years old — and even though they are both versatile programming languages on their own, their popularity has come about from their simplification of Android and iOS app development. So if you are interested in building native mobile apps, both of these are great choices to pick up in 2021, esp. if you have already covered the basics of Java or Objective-C. Like I said before though, these are versatile programming languages and their use cases aren't limited to just apps.
Next is C#.
C# was first developed in 2000 and it initially had a pretty lukewarm adoption. However, in the last 5 years or so, the language has seen huge investments and great strides have been made to make it platform-agnostic... and as a result, the story of C# in 2021 is quite different. It is a simple, modern and a general purpose language that continues to see very good adoption increase year-over-year. It is very versatile and can be used to develop almost any type of application. It is also a great choice for game development on Unity. It is also one of the most popular choices right now to develop virtual reality and augmented reality applications. So if you are interested in working with a modern, strongly-typed, object-oriented programming language, C# is a great choice in 2021.
And the final one in this list if Go.
Go has seen a rapid rise in adoption in recent years. Go solves scalability issues that older programming languages like Java have. While these languages support multi-threading, they were developed in the days where everything was single-threaded, and hence the support is an improvement rather than being native. As a result, they are not as efficient. Contrary to that, Go was created in 2009 with concurrency in mind and as a top priority, and they achieve this via what we call "goroutines". Go has a great mix of efficiency in a concurrent environment and simple, elegant code. So in 2021, where most applications are distributed across many data centers and regions, and where scalability and availability are critical, Go is a great language to pick up!
Ok, let's talk about a couple of programming languages that have their merits in specific cases, but outside of which, you can possibly avoid learning them in 2021.
The first one is C++.
C++ continues to be a popular choice to be taught in school. And there is a good reason for that. It's almost a gateway language that acts like a bridge between low-level and high-level programming. It teaches you about extracting out every last bit of performance since it is so close to the hardware. It is also memory unsafe, which means you learn a lot about memory management. So even though you may not use C++ much in the general sense, learning it will provide you with some foundational knowledge that will help you in the long run. C++ is also a popular choice in game development, operating system level applications, embedded systems as well as fintech and trading. But outside of these, I'd recommend avoiding C++ in 2021.
The next one is R.
R was mainly designed for statistical computing and thus, it makes for a great candidate to learn if you are into machine learning, data visualization and analytics, and scientific computation. However, R has a steep learning curve, is slow and resource intensive. So unless you want to get into data science and some of the areas I just mentioned, I'd say avoid R.
Finally, let's talk about programming languages to avoid learning in 2021.
The first one, and this may be a controversial opinion, is Java.
I know that statistically, Java still is very widely used and there are lots of job opportunities. But it's seen a steady decline over the years, and the ecosystem itself hasn't evolved to fit modern needs. There are many better choices to learn in 2021, ones I mentioned above, instead of Java. Most Java projects these days are large enterprise applications that need to be maintained and adapted. Very rarely you will see brand new projects without language dependency requirements being started in Java. Companies prefer lightweight and scalable languages these days.
The next one is Php.
Php used to be the king of dynamic web pages once upon a time. Those days are gone, unless you want to spend your time developing Wordpress templates. I know someone somewhere will say "But facebook uses PHP!" Yes, Facebook started with PHP in 2005, and grew very rapidly. They use their own variation of PHP right now because they have a huge developer base who is already well-versed in PHP and there is no reason to take on the conversion debt if they don't have to. The question is: would they have chosen PHP if they were starting from scratch in 2021? The answer is NO. Avoid PHP in 2021, there are many great choices instead.
The last one to avoid is Ruby.
Ruby on Rails was created in 2005 and through the next decade, it picked up rapid adoption. Companies like Twitter and Groupon were early adopters. Then newer better solutions emerged and these companies, along with the developer community moved on. The adoption fell down as rapidly as it went up. So skip learning Ruby in 2021. Nothing more to say there.
That's all for my list. I did mention that I would show you something that would help you assess new technologies to pick up. That tool is called ThoughtWorks Technology Radar. ThoughtWorks is a leading global technology consultancy that integrates strategy, design and software engineering to enable enterprises and technology disruptors across the globe. They are an incredibly technologically-progressive company, with tech leaders like Martin Fowler, and because they have clients from every walk of life, they get to play around a plethora of languages, platforms, tools, frameworks and techniques. And as they use those in practical implementations for their client projects, they put each of them in one of four categories: Assess, Trial, Adopt or Hold. And they give a concise reasoning for their choices. For example, if we look at languages and frameworks, .Net5 is in the assessment phase. If you click on it, you will find a good explanation for it, along with a history of anything they have published previously. You can also use this to evaluate the latest trends or techniques used in engineering. For example, the API expand-contract design pattern. If you click on it, you will see the details on why they have adopted this pattern.
I hope you get the idea. Hopefully with this list I gave you, along with some help from the technology radar, you will be able to find some clarity into which direction you want to take your learning in 2021. Just remember to have fun with whatever you learn!