What Programming Language Should Someone Learn?

Learn Python.

What's the most important thing in learning a programming language for the first time? It's getting used to the whole notion of programming, so that a firm base exists from which the learner can go on to learn other languages, compare each language's strengths and weaknesses, and be able to make value judgements on the best technology to solve a particular task.

What are the alternatives to Python? You can learn C, because all modern computing languages come from C, in the same way all Romance languages - French, Spanish, Italian - derive from Latin. But C is a bit heavy when you've never programmed before, and Python provides a gentler slope.

You can learn JavaScript, because JavaScript can't be escaped. You'll eventually have to learn some JavaScript, because it's very hard avoid JavaScript even if you want to, but while JavaScript itself is comparatively simple, its environment is like something from the planet in Avatar - just when you think you've something figured out, there's always something else just around the corner. It's a challenge to keep up with it all.

There's a case for Java, but Java is a little verbose for those just starting out. There is no case to be made for C++, which even developers of long standing are just that little bit afraid of.

SQL, HTML and CSS aren't quite coding languages. SQL exists to talk to databases, and HTML and CSS exist to lay out websites. Anything outside of those functions is beyond them. You will learn them as you need them, but you can't learn HTML, say, and then turn around and say you can code, because this is not the case.

Rubyists will always insist that the Ruby syntax is the most human-understandable of syntaxes. Well, maybe it is and maybe it's not. There's a case that COBOL is the easiest language to read, as it was created to be easy to read. COBOL is old technology now. Ruby is as user-friendly as Python - the two are very similar, really - but Ruby is popular really because of the incredible popularity of the web framework that was created for Ruby, Ruby on Rails. No Rails, no Ruby. That's not to knock Ruby, of course, but it does mean that if you want to do something else in Ruby, like data analysis, say, the packages aren't really there.

There is a language called R that was created for data analysis alone, and its advocates will accept no substitute. But while Python may not be as fast at data analysis as R, or have as good a web framework as Ruby, or provide the sheer computing horsepower of C++, or the ubiquity of JavaScript, there is no language that provides all of those at once as well or as comprehensively as Python.

Learn Python first. That's the answer.