You’ve read the articles, searched the web, and done all the research you can on programming. Now, it’s time to finally make the big decision: “what programming language should I learn?”

Great question. Fortunately for you, we have a step-by-step guide that will help you decide what your motivation is for learning to code and which programming languages you should then learn.

Even if you’re still in the searching stage, this guide should give you some clarity regarding the purpose of the most common programming languages and your preferred niche.

We’ve also identified four distinct ways to rank the top programming languages: by popularity, ease-of-learning, earning potential, and usefulness.

Disclaimer: In this article, we’ve grouped markup languages, such as HTML and CSS, and scripting languages, such as Bash/Shell and SQL, into the category of programming languages.

Let’s start with a list of the top ten most popular programming languages according to StackOverflow:

  1. JavaScript
  2. HTML
  3. CSS
  4. SQL
  5. Java
  6. Bash/Shell
  7. Python
  8. C#
  9. PHP
  10. C++

Source: StackOverflow

In this list, we see JavaScript, HTML, and CSS taking the top 3 spots for the most popular programming languages. These three languages are the backbone of front-end web development and serve as a great starting point for beginners. SQL is used for database management and the rest, such as Java, Python, C#, PHP, and C++, are general purpose languages that you can use for a variety of tasks. Bash/Shell, on the other hand, is a command language used to communicate with Unix-based operating systems, like Linux and MacOS.

What about the easiest languages to learn?

  1. HTML
  2. Python
  3. JavaScript
  4. PHP
  5. Java
  6. R
  7. Shell
  8. Ruby
  9. Erlang
  10. Go

Source: WP Engine

Fortunately, many of the most popular programming languages are also the easiest to learn. However, we also find some more obscure programming languages, such as R and Erlang. R is a programming language designed for statistical computing and mathematics, and is a great tool for data analysis (which we’ll discuss later in the article). Erlang is primarily used for telecommunication and is present in many messaging applications, such as WhatsApp.

…and the top paying programming languages?

  1. F#
  2. Ocaml
  3. Clojure
  4. Groovy
  5. Perl
  6. Rust
  7. Erlang
  8. Scala
  9. Go
  10. Ruby

Source: StackOverflow

If you’re new to programming, you probably didn’t recognize many of the languages on this list. Since computer programming is a rapidly evolving industry, the highest paid skills tend to be related to the newest, most cutting edge technologies. However, knowledge of HTML, CSS, and JavaScript are enough to get you started in your career—other languages can wait.

Overview

Besides salary, popularity, and ease of learning, you probably have your own personal motivations to learn a specific programming language. In the area below, we’ll examine some of the determining factors that might help you decide on a programming language and what uses they have.

Choosing a Language by Usefulness

This is where things get a bit more complicated. How “useful” a language is to you will depend on what you’d like to accomplish with code. For example, HTML and CSS might be extremely useful to a front-end web developer, while Swift and Java are more useful to a mobile developer. Some programming languages, like Python are designed for general purpose use, but many others are specialized tools that will help you complete specific tasks.

First, let’s determine why you want to learn to code, decide what area you’d like to focus on, and then find the programming language that is right for you:

I Want to Be a Professional Developer

Game Developer

If you’re passionate about becoming a game developer, there are two main programming languages that you’ll have to master: C++ and C#.

If you’d like to develop fun, 2D mobile games that are based on community and online interaction, C# is definitely the choice for you. C# is easier to learn and less complicated than C++, making it the main programming language of indie and mobile games.

C++, on the other hand, delivers incredible power and can be used for 3D mobile games and “AAA” titles for PC and console. To create games with the best performance and the most beautiful graphics, C++ is the way to go.

Web Developer

In our article, “A Brief Introduction to Programming, we talked a lot about the big three programming languages for web development: HTML, CSS, and JavaScript. HTML handles the format, CSS determines the style, and JavaScript makes the page come alive.

For web developers who focus primarily on UX (user experience), HTML5 and JavaScript are their most commonly used tools. Web developers involved in e-commerce, however, shift their focus to more advanced languages, such as Java, Ruby, Python, PHP, and C#.

Web programmers for small businesses will probably use PHP, while programmers for recent startups use Java, Ruby, and JavaScript for most of their work. Enterprise web developers tend to use C# and Java more often for bigger, Windows-based applications.

Mobile Developer

Mobile development is a bit more straightforward and only requires you to know one programming language per operating system.

If you want to create mobile apps for iPhone or iPad, all you need to know is Swift, Apple’s own programming language for iOS. Introduced in 2014, Swift is a very powerful language that was designed to allow you to program nearly any Apple device. With a knowledge of Swift, you can also write applications for Mac, the Apple Watch, and Apple TV!

Mobile development for Android has taken off in recent years and has grown to surpass the popularity of development for iOS. Android is based on Java, making it super easy to begin if you already have experience using the language. You can also go from developing apps for Android to doing a ton of other cool things after you’ve gained the experience in Java.

Last, but not least, we come to the Windows phone. The Windows mobile OS runs on C#, one of Microsoft’s very own programming languages. Coding in C# is an extremely valuable skill that any Windows developer should know.

Today, we are seeing the lines begin to blur as both mobile and desktop become more unified. Rather than being separated by mobile and desktop, programming languages are instead segregated by ecosystem (Microsoft, Google, and Apple). Google even developed their own language called “Go”, which we might see in the future as a replacement for Java in Android.

Desktop Software

As we mentioned above, the same programming languages that you’ll need for mobile development can be used to develop desktop software as well. If you’re interested in developing software for Windows platforms, you’ll want to learn C#. To develop cross-platform software and programs for Mac, you should learn Java and Swift, respectively.

There are also several strong, web-based solutions for developing cross-platform desktop software with just HTML, CSS and JavaScript, such as Electron.

Data Science

In the field of data science, Python and R are the most useful languages you can learn. Python is like a swiss army knife of programming languages that was designed for general purpose use. However, the strength of Python comes from the vast wealth of free data analysis libraries that are packed full of capabilities. One of the most popular data analysis libraries, Pandas, comes with tools that allow you to import information from spreadsheets or processing sets for time-series analysis.

R is another programming language that is geared towards statistical analysis and graphing. With R, you can including linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering, and more.

I Want to Run a Startup

Web

Web-based startups have a lot of options when it comes to choosing a programming language.

For e-commerce startups, PHP is a great language to start with. WordPress runs on PHP and is a great starting platform for e-commerce websites.

If you want to start an SaaS (Software as a Service) startup, Java is a necessary language to learn. With Java, you’ll be able to develop software for a huge variety of platforms, from Android to Windows.

Thanks to the Ruby on Rails framework, Ruby is a powerful, easy-to-use language that makes prototyping a breeze. As a high-level language, you’ll be able to create prototypes quickly and bring your idea to life with minimal effort.

Finally, we have JavaScript which directly affects the overall performance of your website. Since your startup is web-based, the performance and user experience is extremely important. These days, search engines like Google will punish you and lower your search results rankings for a slow loading and laggy site. This can make a huge impact on the amount of visitors and conversions you receive.

I Want to Run a Startup (Version 2.0)

Web

Since the storefront of an online shop is a website, HTML, CSS, and JavaScript will be necessary for the front-end. However, you do have plenty of options for the back-end, which accounts for all of the “behind-the-scenes” operations of your online store.

For handling the back-end, you’ll most likely use Node.js (JavaScript), Ruby, or PHP.

Of the three, Node.js is the most popular and widely used, both because of its speed and its basis in JavaScript.

Since your startup is web-based, the performance and user experience is extremely important. These days, search engines like Google will punish you and lower your search results rankings for a slow loading and laggy site. This can make a huge impact on the amount of visitors and conversions you receive. Therefore, we would recommend the fastest option, Node.js, for the back end.

In extreme cases, you may need to use Python or R for the back end of your site, but only if you’re dealing with huge amounts of customer or product data.

If you’d like an easier solution that’s already set up for you, try building your e-commerce shop in WordPress, a PHP-based solution. With WordPress, you can use a drag-and-drop interface to construct the façade of your store, while the program takes care of the front end and back end.

Although WordPress is relatively easy to use, you’ll still want to learn the language or hire a PHP developer to add any additional features or troubleshoot problems as they arise.

Mobile

Mobile-based startups like Uber are quite popular and successful at the moment. To launch a startup in the mobile space, it’s important that you create apps that are available on both iPhone and Android. It’s actually possible to develop cross-platform applications in Java using React Native, Ionic, PhoneGap, or Cordova, but it’s recommended that you learn the native programming languages for each platform for the best performance.

If you’re not able to code it all yourself, hiring a mobile developer that specializes in a specific operating system can be helpful. You’ll need to hire a Java developer for Android, a Swift developer for iOS, a rare talent that may know both, or opt for a cross-platform solution.

Game

As a startup, you likely won’t have the money and resources to develop ‘AAA’ titles like the big studios. Instead, indie developers tend to focus on storyline and creativity when developing games. C++ is complicated, takes time, and is often difficult to use, meaning that it’s not your best choice as a startup. C# is easier to use and will allow you to release games more quickly and on time.

Web-based games are another great place to start for new game developers. Through HTML5 and JavaScript, you can create incredible games. To find out what kind of games you can develop with HTML5 and JavaScript, check out this article: https://tutorialzine.com/2015/02/30-amazing-games-made-only-with-html5

However, if you have the patience, skills, and dedication to create an amazing 3D game, you should learn C++. This powerful programming language from Microsoft is just about all you need to create stunning games for console and PC.

I Want to Build Something Fun

The most appealing aspect of programming is not only that it’s useful and highly paid, but also that it can be a lot of fun. If you want to create something cool with coding, you should first consider what kinds of projects interest you. Would you like to create a new mobile app, a web-based game, or even your own AI? Perhaps, you’d like to automate your daily tasks at work or create something for Google Apps (G-Suite)? With a good understanding of the following languages, your imagination will be the only limit to what you can create.

Small Games

Don’t think you need to be a professional programmer to begin following your dream as a game developer; all you need to know is HTML5, JavaScript, and some WebGL. Both Doodle Jump and the incredibly famous (or infamous) mobile game, Flappy Bird, are powered by HTML5 and JavaScript. Sure, you won’t be making ‘AAA’ games for consoles any time soon, but you’ll be surprised by what you can create with a limited knowledge of coding. For slightly more advanced games on desktop, you’ll want to utilize languages like C# and Python.

Google Apps (G-Suite)

JavaScript is the backbone for creating apps within the Google ecosystem, or the G-Suite, as it is commonly referred to. Google claims that any application in the G-Suite can be created with JavaScript and nothing more. This is a bit of an odd claim, considering that Gmail is actually written in Java, not JavaScript.

Regardless, you don’t really need to know JavaScript to create apps in G-Suite anymore. Instead, the new Google App Maker gives you a drag-and-drop interface that allows you to create custom applications and provides you with APIs for all of Google’s applications, such as Google Maps and Google Translate. The API, or Application Program Interface, is the key that enables communication between other Google apps and your own custom app.

Task Automation

Have you ever spent countless hours updating a spreadsheet, renaming files, or reorganizing items with your keyboard and mouse? During that mind-numbing experience, did you ever stop to think that there might be a better way? Task Automation is an entire field of programming that is dedicated to automating the boring, mindless tasks that a human would rather not do.

Using basic general-purpose languages like Python and Ruby, you can tell your computer to do all of the grunt work for you. Beyond saving time and stress, automating daily tasks will result in more accurate work, since we tend to make mistakes as we get tired, distracted, and bored. Computers, on the other hand, put their heads down and get the work done without fail.

Simple AI (Artificial Intelligence)

In recent years, Python has become increasingly popular in the field of Artificial Intelligence. One of the greatest challenges for developers of AI is the problem of “deep learning”, which is the ability to learn as a human does. Today, “neural mapping” is a widely-used technique in AI that involves creating large decision-making branches. Each connection is treated as if it were a neuron and a synapse in the brain. Using this technique, researchers in AI hope to create a replica of the brain which reasons and even has the creative capacities like that of a human.  

TensorFlow is a great library of resources for Python and other programming languages. While it was primarily developed for use with Python, TensorFlow.js has been released for JavaScript with the intention of using machine learning on the web. In other words, you can even use JavaScript to experiment with AI through the use of TensorFlow.

Conclusion

We hope that you enjoyed our article and now have a clearer idea of which programming language is right for you. Languages like HTML, CSS, and JavaScript are the best languages to start with, but you definitely can’t go wrong with a great, multi-purpose language like Python and C#.

Please let us know in the comments which programming languages you are currently learning and what motivated you to learn them. See you on the next article!