The sheer number of programming languages might be overwhelming. So, which programming language should you indeed learn?

For experienced professionals, languages and tools are mostly interchangeable.

If you are a beginner, or you want to expand your skills, there are many factors to consider. Moreover, these factors might make a particular language more favorable than another.

In this article we have listed some important questions your should answer before you make a decision.

You will see that the answer is rather simple: it depends on what you want to do.

However, you should also consider factors such as trends and popularity of programming languages or available resources and documentation as these factors will help you make a better decision.

 

What’s your learning method?

People learn differently, moreover, there are different learning methods.

The Human Memory Graph
The Human Memory Graph (Source: Wired)

While many agree that the best way to learn to code is by doing, oftentimes documentation or support for new tools is unreliable. Moreover, books on emerging technologies may be expensive, especially for highly specialized languages. Ask yourself which learning methods meet your needs. The university course?  Free online coding course?   

On the other hand, if you are planning to learn on your own, being a part of a supportive community (such as GitHub or Stack Overflow) will make your learning experience easier.  

Around 32 million people visit Stack Overflow monthly, and more than 25 million are return visitors, according to their survey.

The survey also showed some interesting data related to education: 48% of respondents never received a degree in computer science and 33% of respondents never took a computer science university course.

Do you think you need the university course, or you prefer learning on your own? 

Stack Overflow Developer Survey 2015 education
Stack Overflow Developer Survey 2015

Before you decide, consider which is the best learning method for you, and what resources are available.

 

Is employability the reason you want to learn to code?

Are you going to get a job based on the programming language you want to learn?

If employability is the reason why you want to learn to code, you should know that not all languages have the same demand or salary.

JobTrends from Indeed.com

Supply and demand are not universal trends.

An average salary depends on many factors, such as supply, demand, experience, and geography.

For instance, if you want to build a career in web development, you’d inevitably have to learn JavaScript, but job opportunities will differ from country to country. 

Thus, researching both current and projected supply and demand for talent will provide more insights into national and local data.

 

How popular or relevant will a programming language be in the future?

The popularity of a language changes over time.

RedMonk’s language ranking, for instance, determines the popularity of languages by analyzing activity on both GitHub and Stack Overflow.

The goal of comparing languages is to get insight into potential adoption future trends.

RedMonk

According to RedMonk, these are the top 10 languages:

  • JavaScript
  • Java
  • PHP
  • Python
  • C#
  • C++
  • Ruby
  • CSS
  • C
  • Objective-C

The TIOBE Index, on the other hand, rates languages based on the number of skilled engineers, courses and search engine rankings (Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu).

These are not the best programming languages, but rather the most popular one.

Tiobe Index on popular programming languageThis index can be helpful when making a decision on the programming language you should learn first, or the one to adopt on your new project.

However, the language that is popular today might not be popular in a year, thus researching current trends and historical data can be helpful if you want to learn a new language.

When researching surveys and statistics, always consider how data are assembled.

 

What are your professional goals?

Certain languages are more popular, thus some industries pay better than others.

Compensation by technology in the United States
Compensation by technology in the United States (Source: Stack Overflow Developer Survey 2015 )

But, if you are interested in the gaming industry, you should focus on skills and languages that match your professional goals.

Do you have a niche you want to specialize in? This is not only the question you should ask yourself, this is also the question your employers might ask, and they would want to know the answer.

What products do you wish to work on?

Will you measure job satisfaction by professional accomplishments?

Whether you’ll make it a principal engineer or just stay junior, depends on you. There is no right or wrong answer, only the answer that is right or wrong for you.

 

Is there a dedicated community that keeps the language vibrant and relevant?

Each language has different characteristics, communities, and support, but the community is often the biggest strength of a particular programming language or platform.

The community drives knowledge sharing and puts serious effort to popularize many of the ideas. Moreover, the community exists to meet the needs of users.  

A computer language is as viable as a community that is dedicated to using it and improving it.

When choosing a language created by a vendor, consider that a strong vendor often translates into a strong language. Moreover, a computer language needs good documentation to help it grow into a community-based one and to succeed.

If you want to learn how to code, you should think of learning as a time investment and if you are investing your time, it’s wise to consider these factors.

Once you answer these questions you will learn that there is no best language, only the best for a particular industry, or project.

What programming language you should learn will largely depend on what you want to do.

Start small, it takes years to become an expert in a technology. Moreover, you’ll always be able to learn to do things better.