Introduction
It’s not news that STEM talents are in great demand and are paid well. Online postings for software jobs across the U.S. grew 31%
from 2007 to 2012 – nearly 3x faster than overall job postings. The US
Bureau of Labor Statistics estimates software developer jobs to continue
to grow at 22% from 2012~2022, with a median pay of $95,510 for software app developers as of May 2014.
If you’re looking to learn how to code,
the sheer number of programming languages may be overwhelming – what
language should you indeed learn? This article hopes to give you some
pointers by comparing the salary, popularity, and prospective future
associated with different programming languages.
Here’s a Fun Quiz to help you decide the best programming language you should learn in 2016
An Overview of Programming Languages
Before we go into comparing programming languages, let’s first take a look at the languages we’re going to be covering.
Dynamic Languages
Dynamic languages are generally thought of as easier for total beginners to learn because they’re flexible and fun. You can quickly build an app from scratch with less lines of code, and there is no hard rule on how to write things to behave in the way you want them to.As dynamic languages are usually very high level languages, you’d spend less time trying to get the details right and more time learning programming concepts, which is another reason dynamically typed languages are popular with beginners who are motivated by being able to build things and see results quickly.
JavaScript

Not to be confused with Java, JavaScript
is a primarily client-side scripting language used for front-end
development. JavaScript is compatible across all browsers and is used to
create interactive web apps, often through libraries such as jQuery and
front-end frameworks such as AngularJS, Ember.js, React, and more.
JavaScript can now also be used as a
server-side language through the Node.js platform, and while Node.js is
relatively new, the community is gaining a lot of momentum. You can also
build hybrid mobile apps with JavaScript through using frameworks such
as phonegap, while Facebook’s React Native aims to allow you to build
native mobile apps with JavaScript.
However, JavaScript is also known to be a
difficult language as it is untyped and thus is difficult to debug.
There are statically typed versions such as Microsoft’s TypeScript or
the JSX that React uses.
Ruby

Developed to make developers have fun
and be productive at the same time, Ruby was made popular by the Ruby on
Rails framework, a full-stack web framework optimized for programming
happiness. As Ruby reads like English and Rails has tools that make
common development tasks easier “out-of-the-box”, many would recommend
learning Ruby as your first programming language.
Ruby is mostly used for backend
development, and popular sites such as Airbnb, Shopify, Bloomberg, Hulu,
Slideshare, and more have been built with Ruby on Rails.
Python

Python is another highly recommended language for beginners, and is the most popular introductory language at Top U.S. Universities.
Developers have used Python to build desktop apps and web apps alike,
and it has great tools for data mining. In addition, Python is
particularly popular with the academic community for scientific
computing, data analysis, and bioinformatics.
Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV, and more have been built with Python.
PHP

PHP is a server-side scripting language
and is usually considered beginner-friendly because it’s easier to
conceptualize what the PHP code will do, so it’s not difficult to pick
up. Most websites have been built with PHP because the language is
heavily specialized for the web.
Facebook, Wikipedia, Yahoo!, Tumblr, WordPress, and more have been built with PHP.
Statically Typed Languages
Apps built with statically typed
languages are known to be more scalable, stable, and maintainable.
Static languages are usually more strict with catching errors through
type checking, and it takes more code to build a prototype. Game
engines, mobile apps, and enterprise-level backends are usually built
with statically typed languages.
Java

As a general-purpose language, Java is
used to build Android apps, desktop apps, and games. Java is also
commonly used as a server-side language for enterprise-level backend
development – 90 percent of Fortune 500 companies use Java.
Furthermore, Hadoop
is a popular Java-based framework used for storing and processing big
data, and is implemented by enterprises such as Yahoo, Facebook, and
Amazon Web Services.
C
C is often used to program system software and is the lingua franca of Operating Systems.
C has influenced almost all programming
languages we’ll be examining in this article, especially Objective-C and
C++. So, if you know C well, you’d probably have less difficulty
picking up other popular languages. Since C takes more complex code to
perform simple tasks, beginners may find it tough to keep themselves
motivated if they choose it as their first language. However, knowledge
of C will definitely help you as a programmer.
Objective-C / Swift (for iOS development)

Objective-C is a layer built on the C
language, making it static, but it can also be used for dynamic typing.
Apple’s Swift is a static language designed to be compatible with
Objective-C, but its static-typing makes it more resilient to errors.
Inspired by Python, Swift aims to be
easy for coding newbies to pick up, and has been designed to fix some of
the issues of Objective-C.
C++
C++ is a powerful language based on C.
It is designed for programming systems software, but has also been used
to build games/game engines, desktop apps, mobile apps, and web apps.
C++ is powerful and fast, so even Facebook has developed several high
performance and high reliability components with it.
Many pieces of software have been built
with C++, including Adobe Systems, Amazon, Paypal, Chrome, and more.
Much like C, C++ is generally considered harder
for beginners to learn on their own, so if you decide to learn C++ as
your first language, feel free to look for a mentor via Meetups or find a C++ Codementor.
C#
C# (“C Sharp”) is developed to be used for Microsoft’s .NET framework, which runs primarily on Microsoft Windows.
C# is used for web development, game
development, and general Microsoft development. Although Microsoft was
not known for being cross-platform compatible in the past, Xamarin has
been working on an open-source project called Mono, which aims to port
C# to other platforms and bring better development tools to Linux
developers. Recently you can also use C# to build native mobile apps for iOS and Android through Xamarin.
Other
SQL

SQL (“Sequel”), or Structured Query
Language, is a query language used to communicate with databases.
Although SQL cannot be used to build apps, it is used to manage the data
in apps that use relational database manage systems (RDMS).
You Might Also Want to Read: Become a Developer with these 20+ Resources
Job Opportunities
So, now you know a bit about programming
languages and perhaps a bit about their perceived difficulty. However,
not all languages have the same demand or salary. If your goal in
learning how to program is job opportunity and you aren’t going to be
dissuaded by how hard people say a language is going to be, here are
some pointers to help you figure out what language you should learn.
Based on the salaries estimations from indeed.com’s analysis of job ads, we can pretty much divide programming languages into 9 tiers:

Based on this result, it appears as
though Swift will rake you in the most money, while Java, Ruby, Python,
C++, and C are also decent choices. In addition, if salary is your
concern, then it seems as though JavaScript, C#, SQL, and PHP aren’t
ideal choices… or are they?
Average salary can be affected by many
things such as demand (how many job postings there are), supply (how
many developers know the language) and experience (a junior developer
would naturally earn less than a senior developer), so it’s a good idea
to take a deeper look at these elements before jumping to any
conclusions.
Job Trends
How likely are you going to get a job
based on the programming language you know? Here’s a quick look at job
trends from indeed.com:
We can see from here that C, SQL, Java, and JavaScript are often
mentioned in job postings, while C#, C++, and Python are also handy
languages to know.
However, if your goal is to work at a startup, then perhaps the job trends from indeed.com is not a good indicator. AngelList
is pretty much the go-to place for startup job postings, so we’ll take a
look at the demand for programming skills based on the software
developer ads in AngelList.

Again, JavaScript turns out to be the
most demanded skill, but startups seem to favor Python and Ruby (on
Rails) more than Java, C, C++, or C#.
The Developer Supply Market
Let’s take a look at what mentors on Codementor are skilled at:

Of course, this is by no means an
accurate depiction of the actual market, but it should give you a good
idea of the situation. As you can see, Objective-C experts are mighty
scarce, yet the mobile app business has been booming for some time now.
With scarce supply of good Objective-C developers, their compensation
would naturally be higher.
PHP, on the other hand, seems to have a
healthy amount of supply in the workforce, which means employers would
have more choice and thus more bargaining power in terms of salary, but
we’ve seen it isn’t as demanded as Java, SQL, or JavaScript. Therefore,
PHP developers earn less.
JavaScript is more of a special case.
Despite having the most supply, it is not at the bottom of the salary
tier, and we’ll take a look at JavaScript later in this article.
Salary Range
Now that you have an idea of what the
demand and supply for each language is, let’s take a look at the
potential salary you could earn based on salary information from job
ads. The data is based on data from gooroo.io, in which salary is usually derived as the average value of the salary range offered by individual job ads.

Here you can see that developers who
know Ruby, C++, or Java appear to have higher starting salaries. Python
and Ruby seem to have the highest potential salaries, as this means good
Ruby/Python developers are scarce and in high demand. JavaScript seems
to have experienced a large drop in potential salary, as it reached as
high as 188,168 USD as of April 2015, but now it’s at roughly $124k.
Nonetheless, JavaScript remains a special case, which will be explained
below.
Special Case: JavaScript Frameworks
Just merely comparing the JavaScript
language against other programming languages is an inaccurate outlook of
how much you can earn if you know JavaScript.
As mentioned in the overview of
programming languages, JavaScript is a huge category. Many frameworks
have been developed to facilitate front-end website development, so if
you just know JavaScript and jQuery, you’d probably earn less than other
JavaScript developers who know a JavaScript framework.
Let’s take look at the average salary
for different JavaScript framework developers in the US (arguably React
& Backbone are libraries, not frameworks, and Nodejs is more of an
environment):
Now the average salaries don’t look that
bad. React, in particular, has a very nice future outlook. Of course,
this is just for you to get an idea, and the indeed.com estimates differ
slightly, averaging above 105,000 USD. You’d have to know JavaScript to
learn these technologies, which makes JavaScript a rather profitable
skill.
Let’s also look at the demand for developers of these frameworks:
Node.js for backend development, so if
just speaking of front-end frameworks, you can see AngularJS appears to
be a clear winner with rocketing demand. Thus, if you want to get into
front-end JavaScript development, you might want to learn AngularJS.
React, on the other hand, is a fairly
new technology, and it has been gaining momentum at a speed that rivals
AngularJS’s early stages. It’s possibly still in the stage of gaining
momentum and may potentially become more widely demanded, as it is in
general more performant than AngularJS and thus will provide a better
user experience.
Programming Resources
If you know a little about the developer
world, then you probably know it’s really important and helpful to have
support from other developers, especially if you plan to learn on your
own.
Being a part of a supportive community will definitely make your future development life easier.
StackOverflow
StackOverflow is the largest developer
community used by developers around the world to help and get help from
other programmers, so we’ll naturally be examining how large/popular a
programming language is as well as how helpful the community for those
languages are.
Language Popularity
Based on the tag followers on StackOverflow, we can see the overall popularity of a language right now:

We already know from examining job
trends that Java and JavaScript developers are in highest demand, so
it’s no surprise they also have the most tag followers. JavaScript is
now the most used tag in StackOverflow, superseding Java.
SQL, Ruby, and Swift have the least
followers, though this is likely because Ruby is almost strictly used
for web development, while Swift is a relatively new language.
StackOverflow Answer Rate
StackOverflow has an unspoken rule where
you have to phrase your question “correctly”, or people won’t bother
answering you. With that in mind, let’s take a look at how likely your
question would be answered for each language:

Based on the information above, although
fewer StackOverflow users follow C, SQL, and C++, over 60% of related
questions get answered. Those in the know would probably argue that C
and C++ are advanced languages, which means the users asking the
questions are likely more experienced with programming and know how to
phrase their questions better. SQL, on the other hand, is not used to
build things.
What’s worth taking note of is how
supportive Python and Ruby developers are on StackOverflow. Beginners
are known to have trouble asking their questions correctly, and as
mentioned earlier, Python and Ruby are the most recommended language for
beginners. Yet, despite this and despite being relatively popular
languages, They both have almost 60% answer rate within 30 days.
(Python’s #1 answerer, Martijn Pieters, is also a Codementor.)
On the other hand, PHP, while being
quite a widely-followed language, has one of the worst answer rates.
This means a lot of people are asking about PHP, but not many are
getting their questions answered.
GitHub
Once you get into development, you’ll
eventually learn that it’s best to use an existing solution for your own
projects if possible. You’d typically get this from open-sourced
projects, and GitHub is the way to go for these things. Users can star
projects they like, and the more stars a project has, the more useful it
is likely going to be.
Thus, from examining data from GitHub,
we can also determine the relative ease in developing projects using
different types of languages. We can also have an idea of how fast a
language is innovating new technologies. Without further ado, here is a
simple chart to see the distribution of popular GitHub projects:

Clearly, JavaScript has the most shiny
new tools, even if you don’t consider all the style-guides, learning
resources, and tutorials. JavaScript is known for being an extremely
fast-moving language with a high churn rate for frameworks and new
technologies to the point where developers may find it difficult to keep up with JavaScript’s constant innovations.
In addition, other than the Node.js platform, JavaScript is mostly used
for front-end development, so it’s not directly “competing” with other
backend languages such as Ruby, Python, Java, and PHP. With that in
mind, it is not surprising that JavaScript would have such a large gap
between other programming languages.
Ruby and Objective-C, on the other hand,
also have a lot of tools and resources for development. Interestingly,
we’ve seen in the StackOverflow comparison that both languages aren’t as
widely popular as languages such as Java, but developers have generally
found the open source projects more useful. This is especially true for
Objective-C if you examine the total projects written in each language:

In addition, most open source projects
written in C/C++ aren’t for C/C++ development itself—they’re just tools
written to help development in general (for example, the most commonly
used Python interpreter is CPython, which is written in C). As mentioned
earlier in the introduction to programming languages, C/C++ are mostly
used for developing systems applications, so it makes sense that the
open source projects on GitHub are system tools. Nonetheless, you can
learn a lot from open source projects.
Finally, PHP is lagging behind in terms
of resources available despite being a widely-used language. As for C#,
Microsoft has been on a quest to open-source a lot of their services, so
it will likely increase its presence on GitHub in the future.
The Future of Each Programming Language
How relevant will a programming language
be in the future? First of all, the future of a language will largely
depend on the growth of its community, as fresh blood/adoption rate is
what keeps a language popular and ensures that it will continue to have
resources. Thus, let’s take a look at what languages people are most
interested in learning:

Looks like Python, JavaScript, C#, and
Swift have received the most growth in interest. Based on current known
trends, we can draw the following conclusions:
JavaScript
JavaScript is, without a doubt, just
going to become increasingly popular, especially now that it can be used
for backend development and can even potentially build native mobile
apps (through React Native). JavaScript continues to get more tools and
updates at a fairly fast pace, so you can expect it to remain extremely
important in the future to come.
Want to become a frontend developer? Get Web Development TrainingRuby
Startups love Ruby on Rails. Many famous
websites such as Airbnb, Twitch, Hulu, etc. are built with Rails, which
means they’re going to need Ruby developers. In addition, since
developers have fun using Rails and it is fairly easy to pick up, Rails
will continue to be popular with coding newbies.
That said, the rise of Node.js will definitely have an impact on the popularity of Ruby on Rails—Node.js has already overtaken Rails
on Github. While this isn’t any absolute sign that Node.js will
overtake Rails, we should note that a few years back Rails also overtook
Python’s biggest web framework Django for backend development, and Rails had more stars than Django.
Moreover, a new trend for “isomorphic”
apps will likely affect Rails adoption, as the practice is said to
improve web app performance. Isomorphic apps pretty much need to run on
the Node.js platform – which is in JavaScript, the same language used
front-end. The appeal of only having to be well-versed in only one
language (JavaScript) may also shift some potential new blood away from
learning Ruby. Google’s Go is also another backend alternative that is getting some attention.
However, since Rails continues to get
frequent updates, it will still remain relevant for a while, especially
since it has a loyal community with tons of useful tools to help make
development easier. Thus, despite a decline in popularity, Ruby will
still be sticking around.
Want to Learn Ruby on Rails? Get Ruby on Rails TrainingPython
Python is popular with academic
researchers and data scientists, and as mentioned before, many schools
choose to introduce beginners to coding through Python. This means
Python will continue to grow steadily and remain relevant. While Python
won’t be evolving as fast or seeing the same explosive growth in
popularity and demand as JavaScript, it will continue strong, especially
with data scientists in such high demand.
Want to Learn Python? Get Python TrainingPHP
The trends for backend development has been shifting away from PHP for some years now, but 80% of websites on the web are still built with PHP—it was a language designed for the web, after all.
Nonetheless, if you google what
programming language beginners should learn, you’d find that developers
generally don’t recommend learning PHP. In fact, many developers apparently hate it.

The PHP community is trying to shake off its bad reputation with new guidelines on how to code PHP the Right Way
and with developing new tools, but in general the future of PHP seems
rather stagnant as of 2015 (at least in the US). Hopefully PHP7 will
revitalize the community, though it is known to be quite fragmented.
Java
Android has been a big boost in keeping
Java the most popular programming language, and most enterprises also
love Java for its relative stability and scalability.
With the rise of Spark (which uses the
Scala language) and Cassandra (which supports other languages) as
frameworks to manage big data, it’s hard to say how long Hadoop will
continue to reign as the most popular for big data management, but given
how large enterprises behave when it comes to change, Hadoop won’t be
going away. The same can be said of the Java programming language in
general, as Java has excellent tools for backend development and is much
more established for enterprise development.
Thus, Java will continue strong as one of the most relevant programming languages in the next few years.
Objective-C/Swift
Since Apple released Swift and
Objective-C only works for Apple products, one cannot expect Objective-C
to stick around in the future. Swift, on the other hand, will of course
be relevant for the years to come as long as you keep using Apple
products.
However, this doesn’t mean you shouldn’t learn Objective-C in 2016,
since most open-source projects for iOS development are still written in
Objective-C. Generally, using something you don’t understand is not a
good idea, and it’s not that difficult for you to learn Objective-C if
you know Swift or vice versa.Want to build iOS apps? Get Swift training now!
C
C is quite low-level compared to other programming languages, but since it’s the OS lingua franca it will be sticking around, since many development tools are written in C and Linux is also written in C.
SQL
SQL is almost universally understood by
database administrators. For a while, SQL seemed to be losing relevance
with the rise of NoSQL services such as MongoDB and Redis, with non-SQL
using Big Data computing platforms such as Hadoop, Spark, and Cassandra.
Many people were howling about how SQL was dying.
Apparently not any more. As a result, even NoSQL had to reposition itself as “Not Only SQL).
With the rise of big data and the
difficulty of managing it, SQL is hotter than ever (as you already know
from the job trends). Google has also recently updated its BigQuery service so it can now ingest up to 100,000 rows per second per table, and BigQuery uses SQL. Spark also has the Spark SQL Module since version 1.3.
All in all, SQL is relevant again
because it’s needed to manage (not store) big data. Thus, not only is
SQL everywhere, but it’s safe to say SQL will continue to be relevant
for a while now.
C++
Still considered the most powerful in terms of performance and capabilities (even against Rust),
C++ will likely continue to be relevant in certain areas such as things
that need high performance (e.g. game engines). A major revision of the
current standard (C++14) is expected to be released in 2017, so it’s
still an evolving language.
In the future, Rust may potentially
replace C++ in some areas of systems programming, as Rust aims to be
able to produce less-vulnerable software than C++ does. Read more about
how Rust compares to other languages here. It is also a good time to learn Rust now if you’re an advanced developer.
C#
Being limited to Microsoft platforms and
being closed-sourced did not work in C#’s favor in the past, but Mono
mostly fixed those issues (though Mono has performance issues, recent updates have improved them).
Developers who’ve worked with C# seem to
love the C# programming language, so it has a strong community. Not to
mention, C# is the primary language for Unity 3D, a rather popular game
engine that could also work on iOS, Linux, etc. The rise of Unity3D as
the de facto indie game engine has solidified C#’s future, and Unity3D
can also be used to develop Virtual Reality apps. Since VR is a big
thing, C# is sure to have a pretty bright future.
On a side note, C# is also more popular for enterprise development in countries other than the US, such as the UK.
Obviously Microsoft will keep C# alive for a while and keep it relevant
for the .NET platform, and it has been aggressively open-sourcing its
products and making it more accessible so developers can adopt it.
Conclusion
What language should a coding beginner
learn? Clearly, if you wish to get into web development, you’d
inevitably have to learn JavaScript, whether you like it or not. If you
want to do backend web development, you must learn some form of SQL.
Furthermore, if you want to mine
websites for data or if you’re interested in being a data scientist,
then Python is a good language to learn. If you want to work for an
enterprise, then Java is the way to go. If you’re actually not that
interested in building things and you’re more interested in job
opportunities, then perhaps SQL is a nice place to start out with
(especially if you like math).
Altogether, what programming language you should learn in 2016 will ultimately depend on what you want to do.
Want
to learn how to code and have someone make sure you’ve understood the
material? Learn Udemy’s #1 programming courses 1:1 with a dedicated
mentor. Check out our 1-on-1 Mentorship Plans to find out more!



