So you finally decided to learn programming but need the answer to the timeless question, “Which programming language should I learn first?”. The answer that you are going to get from most places is an answer that programmers love to give, “It depends”. While that is true to an extent I am here to say it DOES NOT MATTER what language you start learning programming with.
It doesn’t matter? That can’t be right. How am I going to build my iPhone app with SQL or my desktop application with HTML? Well, that isn’t the question that was asked. Yes, specific projects are going to require specific languages but learning to code does not!
When you are first learning to code you are going to be learning the very very basics that can be accomplished in almost any language. Variables, input, output, if statements, loops, etc. Languages vary in syntax but, for the most part, have these core features that you need to learn and understand before you go off and start working on your first big project.
To be completely honest, picking a language completely at random and starting from there isn’t a horrible idea. As long as there are resources to learn this language you really cannot go wrong if you are just trying to understand the basics.
Depending on how ambitious you are about learning, you will probably spend a few hours, days, or even weeks understanding the basics. Once you feel comfortable with that you should have accomplished two things. First you should understand basic program flow and logic, so you are ready to move on to other languages, or get more advanced with the language you chose. Second, you will be in a better position to accomplish the task you originally wanted to.
Once you have some understanding of programming, you will be able to better research and understand what you are trying to accomplish. You can ask questions like “What language is best of XYZ task” rather than a generic, “What language should I learn”.
While it is true, some languages are going to be easier to learn than others, the most important step to take is just start learning and do not get discouraged if you hit issues. There are almost infinite resources out there to help on your new endeavor.