Don't Pick a Programming Language Because It's the 'Most Profitable'
Here's why that's a bullshit metric.
An ultra-common and generally bullshit theme that can be found across the internet from Business Insider to coder forums to anywhere else that aspiring programmers and coders may lurk is that of the "most profitable" programming language. Where should "you," as the stereotypical case of just-anyone wanting to get into code to make better and easier money, be best off spending your limited attention and financial resources? It is a bogus question that gets at sickly heart of programming hype—a phenomenon that rests mostly on the notion that a few weeks of online learning or a code bootcamp will make someone into a coveted resource.
I don't think I've ever seen an example of this "most profitable" theme more all-in than a post that landed in my alerts this morning, from the site "Insider Monkey." Here are the first two paragraphs:
Computer programmers are in luck, since according to our list of 11 most profitable programming languages to learn in 2016, they can easily become wealthy. And if you are struggling with job options, maybe taking a course in programming languages isn't a bad idea, since the best of all is that you don't have to have a degree, just the knowledge.
Since we live in the modern world, technology-related jobs are in high demand. Like that is not enough, they have also become very lucrative and are always at the top of best-paid jobs. If you manage to land a job in some tech-giant like Facebook, Google, Microsoft, Apple, only the sky is the limit.
What follows are Insider Monkey's 11 most profitable languages. The methodology involved taking the most popular programming languages, according to the monthly TIOBE index, and then ranking them according to the salaries associated with each one, according to data from GooRoo. The resulting list gives an average salary for each language and a sentence of information about the language that someone hurriedly extracted from a Google search.
The idea behind the list is that programming is a world segmented by programming languages and that this is how people are hired into six-figure jobs—by their knowledge of a particular programming language. Which is ridiculous.
Of course, employers want specific programming language skills, probably several of them. A bit more accurately, they want programmers who are skilled in programming and, thus, can learn new programming languages as they become useful for new problems. Which is the thing lists like this don't tell you: if you're skilled in programming/software engineering, learning most any programming language winds up being a reasonable, if not easy, task.
I'm not trying to nuke the general ideas of in-demand or popular programming languages—because those are things that exist. But they exist within a much larger ecosystem of talent, ability, and, ultimately, employability. Here are a few things that need to be kept in mind as you chew through another "most profitable" programming language list.
0) Popular languages and in-demand languages != the future
You'll see Java at the top of many "most profitable" lists and it is for sure an in-demand skill. Java is deeply sewn into the software world, particularly when it comes to business-focused or enterprise software.
Java will be around for a while, but not so much by choice. The language's corporate parent, Oracle, has been rumored to be considering a Java planned obsolescence. Its decline will be slow but assured as new software systems are implemented in more modern languages.
0.5) People make money, not languages
Also: if Java is topping salary lists, it might have something to do with it being a language much more likely to be employed by software engineers that learned it in college, where it is still often taught. In other words, Java can be expected to be a part of a much larger skill set than what we might normally think of "coding," e.g. software engineering, systems programming, etc. A professional engineer whose work involves Java is going to have a boatload more qualifications than "knowing Java," and this is likely to be to a greater extent than someone whose work primarily involves many if not most not-Java languages.
1) Programming languages are tools
Programming languages are not programming. They are tools used to program. Programming is a set of skills that are mostly language-independent. "Knowing Java" implies to precisely no one that you are a competent programmer.
Moreover, programming languages are rarely used in isolation. A project will likely require several of them working together. In a sense, saying a language is in-demand is a bit like saying that, among the tools used to build a house, a nail gun is in demand. I'm not sure a construction worker would go up to a foreman looking for work by saying that they are totally awesome with a hammer or screwdriver. These are things that are part of a toolkit employed by people that know how to build things and containing many tools for many different tasks.
2) Programming languages depend on problems
So, if not the "most profitable," what language should you actually learn? Probably the one best suited to helping you learn other languages, e.g. the one that will teach you to actually program. That might be Python, or it could even be something with a very limited domain (or problem space), like Processing.
- software engineering
- motherboard show
- programming languages