That’s probably one of the most popular questions from first-time learners, and it’s something that educators debate as well.
Two common misconceptions cause people to ask this question. The first misconception is that there is a “best” programming language for learning, and the second is that the first language you start learning will decide what the rest of your programming career will look like.
Actually, the best language to start with does not exist, and the first language has virtually no lasting effect on your future career as a programmer. What really matters are core programming concepts which can be later be applied across various types of programming languages and make you “think like a coder”. Programming languages can vary in syntax and style, but these differences should be of little concern to a novice programmer.
Programmers should ideally have experience in many types of languages. Once a programmer is comfortable with one language, he should move on to another language which is different in some fundamental way. As he learns more languages, he will become more equipped to choose the right tool for a certain task, which is a hallmark of a good programmer. Programming concepts are what matters most, so beginners could start with a language like Ruby or Python. These languages allow beginners to write simple applications without having to use any of the more complex language features.