The IT industry is changing incredibly fast. Technologies and programming languages that are all the rage today become out-of-date tomorrow. Trends are coming and going and the job market is continuously fluctuating as well. So, how to choose which programming language to learn next? To find the right answer, you need to take many things into consideration, such as:
- industry trends,
- the job market,
- your current skill set,
- the requirements of your project,
- the availability of learning resources,
- and many others.
In this article, I’ll give you a couple of tips about how to choose which programming language to learn. These are not strict rules but rather flexible guidelines you can apply according to your needs.
Determine Your Goals
Before doing anything else, the most important thing you need to do is determining your goals. Think about why you want to learn a new programming language and what end result you want to achieve. The number one question you need to ask from yourself is whether you want to expand your skills vertically or horizontally.
If you want to set your foot into a new area, you need to expand your knowledge horizontally. A typical example is when you are a front-end developer and want to become a full-stack developer. Or, when you are familiar with a back-end language like Java and want to learn another one such as Python. In this case, you will have to set up a learning path that starts at a beginner level.
However, if you want to get specific knowledge in an area you are already familiar with, you need to think vertically. This happens, for instance, when you are a Python developer and want to learn, say, machine learning. In this case, you don’t need to start at a beginner level. At many times, you don’t even need to learn a new programming language but new methodologies, frameworks, libraries, or other tools that are based on the knowledge you already have.
ASSESS YOUR CURRENT SKILL SET
When you have your goals, the next step is to decide how you can best achieve them. As there are many programming languages and technologies, it frequently happens that you can reach the same learning goal through different paths.
For example, if you want to become a full-stack developer you can choose from different back-end languages such as PHP, Java, Python, or NodeJS. However, if you already know a C-based language it’s easier to learn another one. Or, if you are an expert of front-end JavaScript you can pick up NodeJS much faster than a completely new language such as Python or Java.
The best way of getting a realistic picture of your current knowledge is making a list of all the languages, frameworks, tools, and technologies you are familiar with. If you want to learn a new programming language to find a job, your skills list can also serve as a basis for your resume.
If you know what your goals are and what knowledge you already have, you can get to the next step: conducting a thorough market research.
RESEARCH THE MARKET
Knowing your goals and being aware of your current skills is one thing, but what about the market? It can easily happen that you have set up the right goals and picked a language that is in line with your skill set but there is no real demand for it.
To avoid wasting your valuable time on learning a new programming language no one is interested in, you need to conduct market research. Here are the most important resources that are worth checking out.
1. TIOBE INDEX
The TIOBE Programming Community Index is frequently used as industry standard to determine the popularity of programming languages. It’s published every month and shows how different programming languages have gained or lost traction since the previous month. They also publish a short industry analysis each month that recaps the most important changes you need to know about.
2. GITHUB OCTOVERSE
GitHub Octoverse is an annual report that summarizes the most important trends on GitHub. It provides you with a plethora of information such as:
- the popularity of programming languages,
- the fastest growing languages,
- top open-source projects,
- the most active organizations,
- the most popular tags,
- the fastest growing topics,
- and many others.
It’s an excellent resource and definitely worth a look before you decide how to move on with learning. Besides the annually published Octoverse report, GitHub also has an Explore page. Here, GitHub publishes the most trending repositories, topics, apps, and frameworks on a daily basis.
3. STACK OVERFLOW INSIGHTS
You can find many useful information about which programming language to choose on Stack Overflow’s Insights subdomain as well. Without a doubt, the most important material here is Stack Overflow’s Annual Developer Survey that contains everything you might want to know about the industry.
For instance, in 2019, nearly 90,000 developers took the 20-minute survey that covers multiple topics from their favorite technologies to job preferences. Besides the annual survey, you can find in-depth analyses, featured reports, and archived data sets on Stack Overflow Insights, too.
4. GOOGLE TRENDS
Google Trends can help you choose which programming language to learn in three different ways:
- You can check out historical data back to 2004, specified by location.
- You can compare the popularity of two or more programming languages. For instance, you can run a C# vs. Java query.
- Besides programming languages, you can look up the popularity of related technologies such as JavaScript libraries or WordPress theme frameworks, too.
In fact, Google Trends is a powerful research tool that allows you to run completely unique queries and comparisons—as many as you want, and all for free.
5. PROGRAMMING JOB SITES
Programming job sites are not only useful if you are directly looking for a job but you can also use them to research industry trends specific to the field you are targeting. For instance, if you want to learn cloud app development you can check out related jobs to see what programming languages, skills, and tools employers are looking for.
Besides traditional job sites such as Monster or Indeed, you can also research programmer jobs in the following places:
- remote job sites such as We Work Remotely,
- job sites for startups such as AngelList,
- professional networks such as LinkedIn,
- freelancer sites such as Toptal,
- job sections in online magazines for developers such as Smashing Jobs,
- professional newsletters with a job section such as JavaScript Weekly.
After researching a couple of jobs related to the field you want to explore, you will have an up-to-date knowledge about what companies are looking for.
LOOK UP LEARNING MATERIALS
Now, that you know your goals and skills, and have also researched the market, there’s only one thing left to do. You need to check the availability and quality of learning materials related to the programming languages or technologies you are interested in. Popular languages such as Java or JavaScript have ample online learning resources, while newer technologies or frameworks are not always covered that well.
Our Developer Drive team has recently published an article about the 15 best places to learn how to code that can help you a lot. It’s based on in-depth research, so you will most likely find a suitable place where you can get started with learning. However, if you can’t find any quality learning materials related to the programming language or technology you have chosen, it can be a reasonable decision to look for an alternative that is more extensively covered.
SO, WHICH PROGRAMMING LANGUAGE TO LEARN?
Which programming language to learn, first and foremost, depends on your professional goals and current skill set. Besides, you also need to take market trends and the availability of learning resources into consideration.
However, if it turns out you don’t like a certain programming language after a while, it’s a good idea to consider switching to a different one. What works for one person might be a nightmare for another one, and vice versa—it all depends on your needs.
If you want to have a look at more learning resources for developers, you can check out our collection of the best learning materials for front-end developers, too.