You may have recently embarked on your programming journey, or you’re learning your first programming language. You’re considering getting a job and wondering if Python is only used for interviews and may be less commonly used in day-to-day tasks during jobs or internships. Should you consider learning other languages like Java or JavaScript for better prospects in future job opportunities? What should you learn first? And, now that you’ve started learning, are you learning the right thing?

Whew, yeah, we’ve all been there. Luckily,

The first programming language you learn doesn’t matter

Why? Because programmers don’t use a single language. Programmers use all of them in the real world. Programmers in the real world pick the best language for their problems. So, you will program in many languages over your career if you stick with it. Don’t worry; each additional programming language you learn gets easier after your first one.

What’s most important is to pick a single language, learn it, and start building projects with it. Start using it for something. So, if you’re already learning a language, stick with that language until you’ve done a few projects. Then be prepared to keep learning and growing, because over the next few years, you’ll need to learn a bunch more.

I can tell you’re not satisfied with that answer, and it doesn’t answer the question of what programming languages programmers use in the real world so let’s look at the data:

What the data says about what programming languages programmers use:

Regarding data on the subject, we can look at some great, high-profile resources from the tech community. The best ones are the State of the Octoverse from Github and the StackOverflow Developer Survey Results. GitHub is the world’s largest host of code repositories. StackOverflow is the biggest Q&A site for programmers on the internet, so typically, they know what they’re talking about regarding programming language usage.

The State of the Octoverse from 2022 shows the history of programming language popularity on the platform going back to 2014, and while the top languages have moved around in terms of order, it has been the same ten languages since 2014. In an industry that moves as fast as technology, that’s pretty shocking. Here’s the list, ordered from most popular to least popular as of 2022:

  1. JavaScript
  2. Python
  3. Java
  4. TypeScript
  5. C#
  6. C++
  7. PHP
  8. Shell
  9. C
  10. Ruby

Looking at the StackOverflow Developer Survey’s programming language stats and filtering for professional developers, the list looks pretty similar for the top 10, with a few minor differences:

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

C comes in at number eleven, and Ruby is still in the top twenty.

If the language or languages you are learning are in either of these lists, you can be assured that programmers are certainly using them professionally. They’re using them daily, in large numbers, across many different projects. But that’s not the full story.

What the data tells us companies are hiring for:

Thankfully, this dude named Logan already scraped 14 million developer job postings between January to May to give us the top-mentioned programming languages (I pulled the top 10 from his full list):

  1. JavaScript/TypeScript
  2. Python
  3. Java
  4. C#
  5. PHP
  6. C/C++
  7. Ruby
  8. Go
  9. SQL
  10. Scala

Mostly similar to previous lists, with the addition of Scala. However, when we look at what languages companies pay the most for, we get a different list. This is pulled, again from the StackOverflow 2023 Developer Survey - the top 10 are:

  1. Zig
  2. Erlang
  3. F#
  4. Ruby
  5. Clojure
  6. Elixir
  7. Lisp
  8. Scala
  9. Pero
  10. Go

OK, what the heck? This list looks totally different! What’s going on here? Companies are having trouble hiring for these languages, so they’re willing to pay more. This is where there’s a market gap - strong ability in these languages is unusual, and when a company needs it, they really need it, so they’ll fork out more money to get it.

What the data doesn’t tell us

The data tells us what programmers use a lot, but it ignores the fact that what programmers use depends on what they try to do. Some really important languages aren’t on the list. Want to write an iPhone app? The primary languages for that need to be added to these lists. How about building a telephony server? Yup, it’s time to add some more. There are a ton of different things you can do in programming, so let’s look at the languages you might want to learn based on three things you may be trying to do:

Building a Website or SaaS App

You’ll want the main languages of the internet - JavaScript’s top spot in popularity is largely responsible for its central role in internet work. You’ll also need at least HTML, CSS, and SQL. You may want to add Python, Ruby, Java, Go, Elixir, or some other back-end-specific language because JavaScript on the server (node.js) has some downsides. That’s a minimum, but there’s a ton more you can learn here to automate deployments and get into the operations side - HCL for server configuration, Bash or other shell scripting, JSON, etc. The sky’s the limit.

Creating a mobile application

If you want to build for iPhone, the choices provided by Apple Objective-C or Swift. On Android, your choices are Java or Kotlin. Yup, there’s no overlap. So, suppose you want to build one application that you can deploy to both. In that case, you must use something like Flutter (a framework that leverages the Dart programming language) or React Native (a framework that leverages JavaScript, HTML, and CSS).

Processing Scientific Data

If you’re trying to interpret scientific data, then Python might work for you. Still, your lab uses Matlab for interpreting MRI or other imaging-related data, R for statistics, or C if it’s complicated stuff requiring GPU processing. You’ll also need to understand the data storage formats, which could be CDF, EAS3, HDF, or anything else in a Cambrian explosion of data formats created for science. Your language will likely be determined more by what your collaborators and people in your industry are already leveraging than by anything else.

OK, so your point?

Of course, there are many other things you can try to do with computers. I won’t list all of them now. The point is that it’s rarely a single language in isolation that allows a programmer to get something done, and if you want to do more than one thing, you’ll need to learn different languages for different tasks. This means, again, whatever language you have started learning is the right one for now.

Ugh, this is a significant learning curve!

Yup. It’s why programmers make the big bucks by any reasonable (and most unreasonable) standards. It takes work. However, your first language is the hardest. With your first language, you’re not learning just the language. You’re learning:

  • Programming fundamentals (loops, control statements, etc)
  • How to use a text editor
  • Basics of the command line
  • How to structure your code (classes, methods, imports, files, etc)
  • How to fix something and debug things
  • How not to flip a table after an hour of staring at the same error
  • A ton of jargon that’s industry-specific and usually ill-explained
  • Some very basic data structures
  • How to solve simple and increasingly complex problems with code
  • How to find answers to your problems
  • How to read technical documentation

And about 30 other skills, all of which will transfer to your next language and the one after that. You’re also preparing to learn about Computer Science, which requires a strong grasp of the fundamentals.

So, the first programming language you learn doesn’t matter. The one you’re working on is right. If you haven’t started, just pick one and get going. You’ll use it for something eventually.