Language Skills

Which programming language should I learn?

I see this question all the time. 

In 2011, I think the answer is becoming easier than it used to.  And that doesn’t mean there’s any one language that’s “winning”, or that’s the language to bet on for the future.

No, in fact, the industry seems to be going the other way:  There is no such thing as a “best” language, and there isn’t even any such thing as a single language that’s the best one to learn for any particular career.

In 2011, the skill you need is the ability to learn languages, because in almost any software development job you’ll be working with more than one.

If you’re a server side developer then the obvious choices for years have been Java and C#.  But Java has been stagnating while lightweight alternatives have been becoming more and more popular.  Like the venn diagram on that previous link shows, a lot of projects are done using ad hoc technologies (where the developers want to try building the site in Rails or ColdFusion or PHP).

So in 2011 my answer to “which programming language should I learn” is “any two”. 

One to learn all the basic programming concepts you need to learn – loops, recursion, memory management, and so on – and then another to learn how languages typically differ. 

Because once you’ve learned two, the rest are easy.