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:
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:
- Bash/Shell (all shells)
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:
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:
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
Creating a mobile application
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.