This is a question I keep seeing here, people seem to be very confused about it or want to find the easiest path.
Here’s the truth: there’s no guarantee this journey will be easy for you unless you have a very high IQ, in which case you probably don’t need to be here. It certainly hasn’t been easy for me. If you’re looking for something easy to do, look elsewhere because this is definitively not it. Also, don’t confuse this with the impossible. The point is not to discourage you but to give you an honest view.
You will hear a lot of people telling you what language to do first, but that is their opinion. Just because it worked for them doesn’t mean it’s going to work for you.
Everybody hates this, but I’m going to answer your question with another question. What is your end goal?
If your end goal is to get a job in programming and make a lot of money, your best bet is to look at the most common languages. The good news is, someone already did the homework for you.
Pick the most common language, it will maximize your chances of getting a job. However, the market is very competitive so you’ll have to stand out. If you’re still looking for the easy way out, then pick the least popular language and you’ll have less competition.
Have a different goal in mind? Here’s a little summary of what language is good for what, mind you this is not all there is to it but it’s basic enough.
- Front-end web development: JavaScript, TypeScript
- Back-end web development: JavaScript, Java, Python, PHP, Ruby
- Mobile development: Swift, Java, C#
- Game development: C++, C#
- Desktop applications: Java, C++, Python
- Systems programming: C, Rust
If your goal is to integrate with embedded devices, then you’re looking at C++ or Assembly. If you think the Codecademy courses are hard, Assembly is going to make you cry. Yes, it’s hard. No, it’s not impossible.
Can’t settle on a goal? Then the answer is easy. It doesn’t matter.
Why doesn’t it matter? Because what you need is first-hand experience. If you can’t make up your mind, pick one at random. You’ll gain some experience and eventually will come up with a goal.