Choosing your first programming language is a daunting task. There are a lot of languages out there, and they all have different strengths and weaknesses.
When starting out, beginners often want to start with the “best” language. While that’s a reasonable desire to have, there simply is no single best language.
Pick something easy to learn
According to this post on TechRepublic, HTML is the easiest programming language to learn, followed by Python and JavaScript.
I personally started with JavaScript on Khan Academy, and Quincy Larson from freeCodeCamp has made a compelling case for learning JS first.
JavaScript is a great language to learn the fundamentals of programming with. It’s widely used and relatively easy to pick up, with large communities on various sites (like StackOverflow) where you can find help.
HTML is another story. It’s a markup language, meaning it’s considerably different from other programming languages. If you’re interested in the differences between language types, see this answer on StackExchange for more info.
Generally, if you learn one programming language well, you’ll be able to pick up another quite quickly. However, this rule doesn’t necessarily apply to HTML. It differs too greatly from other languages, which is why I don’t recommend starting with it.
NOTE: if your desire to learn programming is mainly fueled by an interest in web development, you may want to consider starting with HTML anyways, as that is its primary use.
As for Python, I have heard a lot of good things about it. It’s a language that’s growing in popularity, and while I personally have not used it, I intend to learn Python in the near future.
Actually get started
I strongly recommend you take a good look at why you haven’t picked a language yet. If you’ve done your research and you’re still undecided, I recommend going with JavaScript.
I also recommend reflecting on why you haven’t made a decision. It could be that you’re subconsciously reluctant to start.
That often happens to me when I want to start a new project. Without really meaning to, I’ll start doing research about things which I don’t need to figure out yet. I subconsciously start procrastinating, tricking myself into thinking I’m making progress when I’m really not.
Obviously it’s good to do some research, especially considering that you do need to pick a language in order to start—it’s not something you can worry about later.
However, my point is simply that you actually need to start. Which language you pick as your first is relatively inconsequential—every good programmer inevitably ends up learning multiple languages.
Just make sure you don’t pick the hardest one.
Your second language will be exponentially easier to learn, but only if you stop putting off the first one.