How to Choose a Programming Language to Learn: 8 Criteria to Consider

How to choose a programming language

Choosing a programming language to learn can be a daunting task considering that there are over 700 languages to choose from.

This task can be much harder if you are learning to program on your own and you don’t have anyone to guide you on the appropriate path.

Does it matter which programming language you choose to learn first?

The programming language you choose as your first language is really important for several reasons.

  • It will determine your first impression of programming. For example, if you choose a language that is very difficult to learn, you may have the impression that programming is difficult.
  • It will determine your productivity. If you enjoy working with the language, it will be easier for you to create things.
  • It will save you time and money. When you choose the wrong language for you, you may end up hopping from one language to another.

What if you choose the ‘wrong’ programming language?

Although there is a cost to choosing a ‘wrong’ programming language, you should not worry too much about it.

Any programming language you choose will teach you the fundamentals, paradigms, and logic of programming. Programming languages also share similarities in patterns, structures, and syntax and this will make it easier to pick up a second or third language.

If you choose a language and find that it is not right for you, simply change to another language. You don’t have to stick to the first language you learned.

Which programming language should you learn first?

If you are not sure about which language to learn and you do not have a strong preference, you can go with any of the popular programming languages. For more, see my article on the top programming languages to learn.

A particularly good language to learn is Python because it fulfills many of the criteria mentioned in this post. (See why python is the best language to learn)

Here are some great courses for learning Python.

Python courses header

Introduction to Python

This professional certificate course from Georgia Tech will teach you the fundamentals of Python programming.

  • Platform: Edx
  • Time: 5 months (10 hours a week)
  • Includes: paradigms, control and data structures, algorithms

Python Bootcamp

This course promises to take you from Zero to Hero in Python. Build 3 projects including a Python game.

  • Platform: Udemy
  • Time: 22 hours (155 lectures)
  • Includes: objects, data structures, functions, OOP, GUI

Criteria for choosing a programming language

In this article, I will go over important criteria you can use to choose a programming language.

Let us have a closer look at these criteria.

1. What is your goal for learning programming?

Why are you interested in learning programming? Answering this question correctly can help to narrow down your options when choosing a programming language. The language you choose to learn first will vary depending on your overall goal.

>> Why People Learn Programming

There are many reasons why people get into programming (see benefits of programming). However, the three major reasons are career, hobby, or entrepreneurship.

#1. Programming for a hobby

If you just want to play around with programming and create cool and interesting projects, ask yourself:

  • What interesting projects can you build with the programming language?
  • How easy is it to get up and running with the language?
  • How easy is it to find learning materials without paying too much?
  • Can you use your programming skills in other hobbies?

#2. Programming for career

If your intention is to get employed as a programmer, ask yourself:

  • How much money can you make in employment?
  • Is there a demand for skills in the programming language you want to learn?
  • Will you be required to take a degree course or get certified before you can get employment?
  • Are there any other additional skills you may need to learn in addition to the programming language?

#3. Programming for entrepreneurship

If your goal is to create a start-up using your programming skills, then ask yourself:

  • Is the programming language appropriate for the kind of products you want to create in your start-up?
  • What languages are other startups using to create products in your niche?
  • Is it easy to hire affordable developers to create and maintain your app?
  • How good is the programming language in terms of speed, security, scalability, and efficiency of using resources?

2. How are the career prospects for the programming language?

Many people get into programming for the sake of having a career and making money. If you intend to have a good career in programming, you will not go wrong if you pick any of the top programming languages.

However, some languages are more lucrative than others.

>> How to assess the career prospects of a programming language

When assessing the career prospects of a particular programming language, you need to investigate.

  • How many jobs are available?
  • What is the average pay?
  • Can you make it as a freelancer?

#1. How many jobs are available?

To see how many jobs are available for the programming language you want to learn, you can check for job availability on a site like ZipRecruiter or Indeed.com.

Here are the job availability figures for some of the top programming languages (as of 2022).

  • Python Developer. 313,456 jobs.
  • JavaScript Developer. 170,028 jobs.
  • C# Developer. 73,858 jobs.
  • C++ Developer. 61,391 jobs.
  • Java Developer. 188,850 jobs.

#2. What are the average salaries for developers?

To see how much developers earn for a particular programming language, you can check on a site like ZipRecruiter or Payscale.com.

Here are the salaries for some of the top programming languages (as of 2022).

  • Python Developer. $112,630 per year (51k-161k).
  • JavaScript Developer. $119,064 per year (43k-181k).
  • C# Developer. $84,084 per year (22k -148k).
  • C, C++ Developer. $108,820 per year (68k- 145k).
  • Java Developer. $106,713 per year (41k- 156K).

#3. Can you make it as a freelancer?

As a programmer, you can make money by offering freelance services on sites like Fiverr, Freelancer, or Flexjobs.

When you check on Fiverr, you can get the following information.

  • How many people are offering programming services for a particular language?
  • How much money are they charging?
  • How many clients do they have?

Below are the number of services offered on Fiverr for some of the top programming languages (as of 2022).

  • Python. 15,678 services available.
  • JavaScript. 14,516 services available.
  • C#. 5,080 services available.
  • C++. 5,080 services available.
  • Java. 2,956 services available.

This data shows that if you wish to be a freelancer on a site like Fiverr, you are better off learning Python or JavaScript as these have the most opportunities (mostly for creating websites and writing automation scripts).

3. What kind of applications and services do you want to create?

A major consideration when choosing a programming language is to understand what kind of applications or services are best suited for that language.

Different programming languages have different strengths and weaknesses and these make them more appropriate for some tasks than others.

>> How to assess the suitability of a programming language for applications and services

Here are some of the questions you can ask to assess the suitability of a programming language for creating applications and services.

#1. What is the programming language best suited for?

Here are examples of programming languages that are commonly used to create various applications and services.

  • Desktop Apps: Use C# for Windows, Swift for Mac, or Java for cross-platform software.
  • Websites and Web apps: Use HTML, CSS, and JavaScript for front-end development. Use PHP, Python, Java, Ruby, or C# for the back-end development.
  • Mobile Apps: Use Kotlin for Android Apps and Swift for IOS apps. You can use JavaScript (with React Native or Vue Native), Dart (using Flutter), or C# (using Xamarin) for cross-platform apps.

If you want to learn more about programming languages and their uses, check the following articles:

#2. What are the key language features and their pros and cons?

The language you choose will depend on the requirements of your application. Top considerations include:

  • How fast is the programming language? Compiled languages tend to be faster than interpreted ones.
  • How secure is the programming language?
  • Is the language open-source? If you create a commercial app with some languages, you may be required to pay a fee.

#3. What is the availability of tools, libraries, and frameworks for that language?

Tools, libraries, and frameworks can cut down considerably on development time and costs. When looking at a programming language, you should assess.

  • The number of available tools, libraries, and frameworks.
  • The quality of the tools, libraries, and frameworks available.
  • How easy it is to work with those tools, libraries, and frameworks.

4. How easy is it to learn the programming language?

If a programming language is difficult to learn, you may find yourself getting discouraged and giving up on programming altogether. You may falsely assume that you are not built for programming.

If you are new to programming, it may be beneficial to start with a language that is easier to learn.

So how do you know if a language is easy or difficult to learn?

  • Read what people are saying in forums or Facebook groups.
  • Read reports that frequently survey programmers (such as the Stack Overflow surveys).

It is worth noting that the ease of learning a programming language can be quite subjective. Something that may be difficult for others might be easy for you.

>> Criteria for assessing whether a programming language is difficult to learn

You can tell if a language is difficult to learn or not by investigating:

#1. How difficult is the syntax?

There are two main things to consider when it comes to syntax.

  • How easy is it to read and write code? Programming languages that have a syntax that is closer to English are easier to learn.
  • How strict is the language regarding syntax errors? Programming languages that are very strict regarding syntax errors are harder to learn and debug.

A programming language like Python has a syntax that is closer to English and is therefore easier to learn. Languages like C++ and Java have a reputation for being difficult to learn.

#2. Is quality learning material available?

The availability and quality of learning materials for a particular language can play a huge role in whether you end up loving or hating a programming language. A language becomes a pleasure to learn if you have good tutorials and documentation.

Any of the top programming languages that have been around for a while will have a good selection of learning materials. However, if you wish to learn a newer language, you may struggle to get good learning materials.

#3. What other skills do you need to learn?

These days, you frequently have to learn frameworks and libraries in addition to your programming language. For example, if you want to be a web developer, you will need to learn the MERN stack (Mongo, Express, React, and Node) in addition to learning JavaScript.

You need to take the difficulty of learning these tools, frameworks, and libraries into account when choosing a programming language.

5. Does the programming language have a wide range of uses?

Some programming languages are limited in their application while others have a wide variety of use-cases.

If you have no strong preference for learning a particular language, then it is better to choose a language that has a wide range of applications. This gives you the flexibility to change your interests without having to change your programming language.

For example, both R and Python are great languages to learn if you are into data science and machine learning. However, you can use Python in many other programming paths such as web development or desktop development.

>> Examples of programming languages and their uses

Some of the popular languages with a wide variety of applications include:

#1. Python.

Python can be used in machine learning, data science, game development, web development, app development, blockchain development, and server management.

#2. JavaScript

JavaScript is used in web development, cross-platform mobile and desktop application development, blockchain development, and machine learning.

#3. C++

C++ is used in desktop development, operating system development, blockchain development, game development, and embedded systems development among many other uses.

If you want to know more about real-world applications of programming languages, see top programming languages for beginners and hobbyist

6. Can you use the programming language for your other interests and hobbies?

You have to consider the possibility that you may not get to work in tech, either because you are already established in your present career or you are unable to get a suitable job.

In this case, you want to choose a programming language that can add value to your present career or help you pursue your other passions and interests.

Some programming languages like Python, JavaScript, C#, and C++ can be useful in a variety of tasks that would be suitable for hobbies such as web development, embedded systems, app development, and game development.

>> How you can use programming skills for your passions

Here are some ideas on how you can use your programming skills in other areas of your life.

#1. To facilitate other hobbies

You can use your programming skills to support your other interests and hobbies like Astronomy, Robotics, Investing, Cryptocurrencies, Cybersecurity, Gaming, Arduino, or Digital Marketing.

You can, for example:

  • Create robots using Lego blocks and Raspberry Pi and program them with Python.
  • Create a simple A.I app to identify the plants or bugs in your area using Python.
  • Create websites or blogs for your other hobbies using HTML, CSS, and JavaScript.
  • Create simple educational games for your kids using C# or Python.

#2. To make your life easier

You can use your programming skills to make your life at home much easier and safer. Here are some ideas on projects you can try.

  • Create Python automation scripts to make your life easier (e.g. web scraping, batch file renaming)
  • Create your own VPN to boost your online security.
  • Build a home security system using Python, OpenCV and Raspberry Pi.

#3. To support your career or business

You can use your programming skills to support your career or your business. For example:

  • You can create a blog to showcase your expertise and raise your profile within your industry.
  • You can create a blog or website to market your business.
  • You can create an online store for your business.

7. How big is the community around the programming language?

It is an advantage to choose a programming language with a large active community because they have larger ecosystems. This means that:

  • There are more tools, libraries, and frameworks created.
  • There are more tutorials and learning resources created.
  • Your questions are more likely to be answered by the community.

Older and popular programming languages (such as Python, JavaScript, and Java) tend to have larger and more vibrant communities.

>> How to assess the size of a community for a programming language

You can estimate how big a community is by looking at sites like GitHub, Reddit, and Stack Overflow.

#1.  GitHub Language Statistics

Here are the number of repositories and users for top programming languages in GitHub.

  • Python. 1.6+ million repositories (and 45k users).
  • JavaScript. 710k + repositories (and 26k users).
  • C#. 200k+ repositories.
  • C++. 270k + repositories.
  • Java. 1.4+ million repositories (and 42k users).

#2. Reddit Language Statistics

Here are the languages with large communities (subreddits) on Reddit.

  • Python. 978k + members.
  • JavaScript. 2.1+ million members.
  • C#. 200k+ members.
  • C++. 29k+ members.
  • Java. 266k+ members.

#3. Stack Overflow Language Statistics

Here are the statistics for the number of questions asked on Stack Overflow for the top programming languages.

  • Python. 2+ million questions.
  • JavaScript. 2.4+ million questions.
  • C#. 1.5+ million questions.
  • C++. 780,000+ questions.
  • Java. 1.8+ million questions.

8. Does the programming language have good prospects for the future?

When choosing a programming language to learn, you need to investigate whether it will be viable over the long term. You don’t want to put in time, effort, and money to learn a language that is dying or obsolete.

>> How to assess the future prospects of a programming language

You can assess the future prospects of a programming language by:

#1. Looking at popularity indices

The popularity of a programming language determines a lot of things such as the size of the community, availability of learning resources, and availability of qualified developers.

You can check the popularity of a programming language over time using a tool like Google Trends. For example, below is a comparison of the top programming languages.

Top programming languages Google Trends

In the figure above, you can see that Python (in blue) has experienced considerable growth in the last 5 years while Java (in yellow) has been on the decline.

Other tools you can use to gauge popularity include the TIOBE Index and the PYPL Index.

#2.  Investigating which industries are likely to grow in the future

To future-proof your learning, you can learn programming languages used in emerging disciplines like machine learning, data science, blockchain, and the Internet of Things (IoT).

For example, a big reason why Python has seen considerable growth in the past 5 years is because of its growing use in machine learning and data science.

#3. Checking to see if a language is in danger of being obsolete

Languages become obsolete when they lose support from the big industry players.

For example, Objective-C used to be the de-facto language for the development of IOS apps. However, in 2014, Apple released Swift in a bid to overcome some of the limitations of Objective-C and since then the use of Objective-C has been on the decline.

Why would you shoot yourself in the foot by learning Objective-C instead of Swift?

Wrapping Up

Programming is a great skill to have regardless of which language you eventually choose. If you choose a language that is not appropriate for your needs and objectives, simply change it.

However, it is important to put some thought into which language you learn first as this can save you time and money. Hopefully, this article has given you some ideas on how you can do that.

What to read next