Original question from Quora:

Which is the most in demand programming language?

My Answer:

Seemingly everybody answered this question by giving you a list of languages by general popularity. Go ahead and read those first if that answers your question. I think it’s not a very useful answer to perhaps not a very useful question. So, I propose a different answer to a slightly more specific question…

Which is the most in demand programming language in my field?

Or even better…

Which is the most in demand programming language in my city?

Or even better still…

Which is the most in demand programming language for companies hiring RIGHT NOW?!

See, if you are asking this question, you probably want someone to really answer this question…

What programming language should I learn so that I can get a job?

The real desire it seems is getting a job in programming… aka which skills will pay the bills?

Here is what I’ve observed in my career so far…

Language doesn’t matter that much.

Gosh, maybe I should have set that up better and made you think hard about the problem before offering you the solution, but there it is.

Programming languages are sort of interchangeable. I don’t mean in the tiny details. Of course every programming language is different just like every car is different. Yet, every car is basically the same and if you can drive one car you can drive nearly any car.

Code has common patters, constructs, and so on that map across many different languages. Once you learn how to use variables, loops, invoke functions/methods, and your editor, you have a huge portion of the basics of code in every language.

Syntax changes, structure and ideas largely don’t.

So you can learn Javascript, PHP, C, C++, Assembly, Ruby, Python, Julia, Java, C#, Scala, Haskell, Lua, Objective-C, Swift, or any number of other languages and writing code in any of them will be a pretty similar experience all things considered.

Pick a language and start building things if you aren’t sure. I started with C back in 1995. You might start with JavaScript or Python today. It doesn’t matter what you start with because what you get paid to program in will probably be different.

Now, the other question is one of demand…

Programmer demand changes constantly. 20 years ago there was much more demand for COBOL and FORTRAN programmers and no demand for web programming languages like PHP, Ruby, Python, or Javascript at all. And global demand doesn’t matter much either because it’s not just the jobs that are available “in general” that matters so much as the jobs that are available TO YOU right now.

So, I tend to specialize in Ruby and Rails web development. There are plenty of jobs in embedded C systems or C++ game development, but those jobs don’t do me much good as a Ruby developer. And I don’t mind that because if I wanted to be an embedded or game developer, I would have those skills.

Also, technology is as much fashion as it is engineering. Us nerds are always chasing the new and shiny things. So what you learn today is probably not what will pay you in five or ten years. That’s okay, that’s part of the game too.

If you are really wanting to get ahead in programming or even just get started, pick a language and build with it until you get good enough to get a job. Keep learning something new every day and every few years learn a radically different technology.

If you want to know a specific language to learn, pick a few companies you’d like to work for and find out what they are using, then learn that. It’s not a perfect way to choose, but it’s better than not getting started.

-Brian

P.S. I unpack more ideas in Creative Genius.