Best Programming Language to Learn in 2016
By Adrian on January 07, 2016 inPlease share this post if you enjoy it!
It’s time to learn a programming language!
Making the decision to step forward and learn a programming language is a great decision that will serve you well, whatever you do. Let me show you your options and make your decisions easier.
What is the best programming language to learn in 2016? This isn’t an easy question to answer and in fact there is no right answer – it all depends on what you want and need out of learning a programming language. So let’s take a look at many of the possibilities so you can make an informed decision.
What is your motivation?
This plays a pretty huge role in the decision of what language you should start learning. If you want to be a professional developer of some kind you should learn languages that give you the best chance of finding a good job for example.
Or maybe you would just like to learn how to make simple websites for yourself and your friends and family. In that case, you should obviously learn languages that are commonly used for websites.
Your motivation could be one of these, or one of many others:
- Build simple websites for friends and family.
- Build complex intricate websites for big companies.
- Learn to better understand how computers work.
- Build mobile apps.
- Learn to create simple home projects.
- Make complex desktop software.
- Understand computer security.
- Make small games.
- Get a well paid job writing code.
- BECOME THE GREATEST CODER OF ALL TIME!! MWAHAHA!!
- Lots more…
The list could really go on for ever and every item on the list will lean you towards learning a different language first.
So your first decision is to figure out why you want to learn to write code.
What does everyone else think?
Before I go through what I think you should learn, based on your own motivations. Let’s take a look at the “most popular programming languages”.
Probably the most quoted list of “most popular programming languages” is the TIOBE index. This is a list that is created using data from search engines such as Google, Yahoo and Bing..
The current list can be found at TIOBE Index.
A quick rundown of the top 10 looks like this:
- Java
- C
- C++
- C#
- Python
- PHP
- Visual Basic .NET
- JavaScript
- Assembly language
- Ruby
The problem with a list with that is it doesn’t indicate the usefulness of each language, the ease of learning each language or the overall prevalence of the language in the search engines.
The main criticism of the TIOBE index is that because it collects data from search engines it will always favour older languages as they have more available pages about them indexed with search engines.
Low and behold, the top languages are the old languages such as Java, C and C++.
With this said, these are all important languages, just not necessarily the best ones to learn for a beginner.
Your best programming language to learn in 2016!
Let’s take a run down some of the motivations I listed above and see what the best language to learn for each of them is.
** These of course, are all my own personal opinions and many people may disagree, but that’s why development is so awesome! **
Build simple websites for friends and family.
Language to learn: jQuery along with HTML & CSS
So I have listed HTML and CSS as part of the language to learn but they are not “programming languages” in the traditional sense. But they are crucial to be able to build websites from scratch – they are the building blocks for websites.
Fortunately, learning the basics of HTML and CSS is extremely easy.
The actual programming language you should learn is JavaScript – although you don’t need to dive right into JavaScript, so I recommend learning jQuery, which is a set of tools built with JavaScript.
Technically jQuery is not a programming language – it is simply an extension of JavaScript.
JavaScript is what makes web pages do all the interactive stuff that is so common these days. The sliders, the parallax effects, the fly in pop ups and all that jazz.
However, a lot of the common effect can be quite cumbersome to build from scratch in JavaScript. Why put yourself through that if you are only a hobbyist web developer – let jQuery do the heavy lifting for you.
Things like pictures sliding fluidly onto the screen is a single command in jQuery but could be several hours of frustration and lots of code to do from scratch yourself.
Once you have got basic grasp of HTML and CSS you could learn to create sites using the specification that Google use, using their framework Material Design Lite.
Build complex websites for big companies.
Most web development within companies falls within two camps: front-end and back-end.
The front-end is everything you see and interact with while the back-end is what organises all of that data in the first place.
Think front-end is the actors of a TV show while back-end are the people writing the script. That is something like what these are.
Most developers will specialise on either front-end or back-end development, but you do also get developers who do both – they are called full stack developers because they deal with the entire stack of technologies in the world of web development.
Front-end web developer
Language to learn: JavaScript
This will be much like the person wanting to just build simple sites for friends and family, just a lot more in depth. Of course, HTML and CSS are also a must.
At this point just using jQuery is not going to be enough. You will need to understand how everything is working. You will need to know how to implement these features from scratch on your own rather than relying on jQuery to do it for you.
If you are wanting to become a good front end developer you will probably want to learn a JavaScript framework such as AngularJS or ReactJS.
These frameworks allow you to build complex sites relatively easily. Having said that, these frameworks are not the sort of thother JavaScript frameworksing you will learn in a weekend. But once you know them, making complex sites is easier than it would have been without them.
Here are some sites built with AngularJS and ReactJS. There are of course many, many other JavaScript frameworks out there.
Learning one of these frameworks will certainly stand you in good stead in your career as a front end developer.
Back-end web developer
Language to learn: PHP or Node.js
PHP is the most commonly used backend technology as it runs the wordpress platform which is extremely common these days. So learning this will never be a bad choice as there will be a ton of jobs available.
Admittedly, PHP has received a lot of criticism from many developers because it is a bit haphazard and potentially insecure. However, with the introduction of the newest version PHP 7, a lot of these issues have been fixed.
Facebook is built using PHP, so it can’t be all bad right? Seriously though, PHP is a good language to learn. There are also many PHP frameworks that make you life easier – Symfony and Laravel to name two.
Node.js is built with our old friend JavaScript and is leading the web revolution to unify the languages used to build websites. Allowing developers to build their fancy front-end widgets in JavaScript but then also built the complex back-end architecture in JavaScript too.
Node is still a new language and is no where near as established as PHP, but in my opinion it will be a big player in the industry in a few years time. If you want to learn a new, fun language and stay ahead of the curve then Node is a great choice.
There are so many other languages used to build the back-end of websites that I couldn’t possibly mention them all. However a few honourable mentions go to Python, Ruby on Rails and GoLang (commonly called just Go).
Python is a very versatile language and is often used to teach children how to code, while it is also a very powerful language used at the grandest of scales in technology.
Ruby is a language and Rails is a framework built for Ruby. Ruby on Rails is extremely popular amongst tech startups so if that is you thing then ruby is your best bet.
GoLang, or just Go, is a language that was created by Google and is very quickly gaining huge popularity – so it may be a good one to learn.
Full Stack web developer
Language to learn: It is hard to avoid learning multiple programming languages if you are going to become a full stack developer.
However, you could get away with following the JavaScript revolution and learn to use it for both front-end and back end. Realistically though, you will have to learn multiple languages to become a real full stack developer.
So with this in mind, it is better to start off by specialising and then moving to become a full stack dev later on.
Learn to better understand how computers work.
Language to learn: C
C is a very old programming language (first created between 1969 and 1973), but it has 100% stood the test of time. Many extremely powerful pieces of software are built in C, even today.
The reason it is the best language to learn if you want to understand how computer’s work is because it is a very “low” level language – one of the lowest in fact.
A low level language is a language that doesn’t do much for you behind the scenes. Whatever you tell it to do, is exactly what it does.
For example, when writing a program you will need to save little bits of data – called variables – which will be used by your program. In many modern languages, when you tell it to store a variable it will find some free space in memory and store the variable in it. When you are finished with that variable, the program will automatically clear that space in memory ready to be used again.
All you did was tell the program you wanted a variable and the language took care of managing the memory.
When you write code in C it will not do this for you. You have to manage the memory manually within your programs.
What this means for you as a developer is that for you to really learn how to write C code you really need to understand the inner workings of a computer. Making it the ideal choice for those of you wanting to learn more about how computers work.
On top of this, most programming languages have been built from the foundation laid out by C. Which also makes it a great language to start with. Many people can quote C as the first language they learnt, including myself.
Build Mobile Apps.
Language to Learn: Swift, Java or HTML5.
The problem with mobile development is that there is no one universal language that is just used for building mobile apps. The language you use is dependant on what platform you want the apps on.
iPhone and iPad
The iOS platform used to use a programming language called Objective-C but in the last few years Apple have released their own programming language called Swift which can also be used to make apps for Apple products.
If you want to start developing apps for iOS you should start by learning Swift.
Android
The other main mobile platform – Android – uses a language called Java (not to be confused with JavaScript – they are totally different. They are similar in the same way a car and a carpet are similar).
The development world has a very love hate relationship with Java. It is a widely used language by it can be very verbose and this annoys many developers.
Although, if you want to build apps for Android devices you are going to have to learn some Java.
What if I want to build apps for both iOS and Android?
This is a question that has been around ever since these platforms have been around. In a lot of cases if you wanted an app on both platforms you had to build the app twice – once in swift or objective-c for iOS and again in Java for Android.
Times are changing though and there are now ways in which you can build apps in much the same way you build a website – using HTML and JavaScript – then use free services to build those into apps for the respective platforms.
This hybrid approach using HTML5 (the newest standard for HTML) is becoming increasingly popular with things like PhoneGap and Ionic. These also allow you to target many other platforms such as Windows phone and others.
The issue with these hybrid approaches is they are not going to be as efficient as the native languages (Swift or Java). If your app is going to be very large or needs to do complex tasks then building it natively will usually provide better overall results.
What would I recommend?
I would say if you are just getting started and want a quick, low barrier to entry way to build some nice apps, I would go for the HTML route, using PhoneGap or Ionic.
If you want to get really serious about app development for mobile devices then you will also need to learn Swift or Java (or both) to ensure your skill set is as well rounded as possible and you can always take the best solution for all problems presented to you.
Creating simple home projects
Language to learn: Python
In my opinion there is no other language as powerful yet as easy to use as Python. It allows you to build pretty complex pieces of software quickly and easily once you have a small amount of experience.
Python can be used to create desktop applications and can also be used on the back end of web sites just as easily.
There is no surprise that many schools and colleges are now turning to Python as the language to use to teach children and beginners how to write code.
This shouldn’t take away from the immense power and versatility of Python – it is certainly not just a “kiddie” language.
Python is also a language that is not restricted to a single platform. It will run equally as well on a Windows computer as it will on Mac and Linux.
Make complex desktop software
Language to learn: C++, C# or Swift
This is another one that is totally dependant on the platform you want to built applications on.
If you want to get into developing for the Mac, much like developing for iOS, you should learn Apple’s programming language Swift.
As far as windows goes then you should learn C# which is Microsoft’s flagship language.
C# is an extremely powerful language that is used to build many of your favourite desktop software on windows. C# should not be confused with C and C++. C# is its own language that was created by Microsoft, and not linked with C and C++ in any way other than in name.
C and C++ are linked to each other however – C++ is the “big brother” of C.
C++ is a very complex language and is not something I would recommend you start with. Learning C++ can be extremely valuable as it is very efficient just like C and allows you to do a lot of “low level” programming.
Although, as a language to start with, it is way too complex and you will just get frustrated with programming. C++ should be a language you learn once you have already got a solid foundation for programming.
Understanding computer security
Language to learn: Assembly code and C/C++.
Computer security is an extremely large field and simply saying “learn assembly code and you will understand it” is a gross oversimplification. Although, having the ability to write assembly code will greatly help you on your journey to learning computer security.
So what is assembly code? It is the lowest level programming language you can get before you start writing 1s and 0s directly into the computer. It is telling the computer exactly what to do with every single byte.
I will not go into too much detail on what assembly code is here as this article is aimed at beginners and assembly is certainly not a language that a beginner should start with.
If you are interested in going down a security route then you can start off by learning C and then branch out from there and potentially learn assembly then.
Make small games
Language to learn: Take your pick
There are so many languages that are regularly used to create small indie games that you really can just take you pick. Python, C#, Java and JavaScript are commonly used by hobbyists to make small games.
Big console games and computer games will typically have a lot of C++ and assembly code in them to take advantage of the extreme efficiency that is available with those languages.
There are many game engines and frameworks available for these various languages such as PyGame for Python, MonoGame for C# and many others such as Unity and Unreal Engine.
What do I recommend to get started with game development
As I have mentioned earlier the barrier to entry for learning HTML5 is so low that you can just hop straight in and start making some cool things. So if you really just want to get started fast and hit the ground running then its hard to beat HTML5 game development.
Get a well paid developer job
Language to learn: Java, PHP, Ruby, JavaScript or others.
If you are looking to learn a language with the overall goal of securing yourself a well paid job that you can launch a career from then you really want to go for an established language.
Languages like Java and PHP have been around for so long that many major corporate enterprise software systems are built using them. This provides huge opportunity to get jobs with those languages.
A language like JavaScript is always going to have huge employability as all websites online run at least some JavaScript and with the introduction of full stack JavaScript architectures using Node.js the prevalence and popularity of JavaScript is only going to increase.
As I mentioned earlier, Ruby is an extremely commonly used language within tech startups. Because of that getting a job with Ruby skills will not be that difficult as there are constantly tons of new startups and already established startups that will need Ruby developers.
There are obviously a lot more languages that will also get you a great job. C, C++, C#, Python etc etc and the list goes on. Read more about the employablity of languages at sitepoint.
Become the greatest coder of all time
Language to learn: ALL OF THEM!
No. Really. Learn them all.
Learn the art of programming, not a given language
On a serious note. This is something that I have learnt over time. It is not about what language you choose to learn, or what languages you already know. These are only tools that a skilled craftsmen has at their disposal.
The real skill is in knowing how to think like a programmer – the languages are just different ways for those ideas to be expressed.
A truly great programmer is just that – a great programmer. Not a great Java developer or great PHP developer. They just think in a way that allows them to write good code regardless of language.
Obviously, experience with a given language is important. You need to learn the syntax and the best practices etc. but you will always become good if you strive to think like a developer.
So there you go! What do you think is the best programming language to learn in 2016?
I hope you learnt something!
Stay hungry and keep coding,
Adrian
Please share this article if you found it helpful 🙂
Please share this post if you enjoy it!