What Programming Language Should A Beginner Learn in 2016
What Programming Language Should A Beginner Learn in 2016
2016?
Introduction: Its 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 youre 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.
An Overview of Programming Languages
Before we go into comparing programming languages, lets first take a look at the
languages were going to be covering.
Dynamic Languages
Dynamic languages are generally thought of as easier for total beginners to learn because
theyre 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, youd 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 Facebooks React Native aims to allow you to build native mobile apps with
JavaScript.
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.
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 arent 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.coms 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 arent 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 its 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?
Heres a quick look at job trends from indeed.com:
We can see from here that Java, JavaScript, and SQL developers are in high demand.
JavaScript, in particular, has seen some pretty significant growth in the past few years, as it
overtook C# in 2010, and is now going head-to-head with Java.
The job postings for C# developers are still quite high compared to other languages, and
demand for other developers appear to cluster together. C++ developers have seen a decline
in terms of their relative demand.
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
well 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#.
Salary Range
Now that you have an idea of what the demand and supply for each language is, lets 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, 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 its at roughly $124k. Nonetheless, JavaScript remains a special case,
which will be explained below.
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,
lets 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.
Python
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 wont 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.
PHP
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 PHPit was a language designed for the
web, after all.
Nonetheless, if you google what programming language beginners should learn, youd find
that developers generally dont 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, its 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 wont 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.
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 its 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
youre an advanced developer.
Conclusion: What language should a coding beginner learn? Clearly, if you wish to get
into web development, youd 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 youre 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 youre actually not that interested in building things and
youre 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.