Why You Should Learn Javascript in 2016

When I first told my friends that I set my mind on becoming a web developer, despite studies in a different field and holding a promising job, I certainly raised some eyebrows. By the term web developer somehow all of them were thinking of a guy who sits at home in boxershorts, phones a few local businesses and hopes to build a two-page brochure site. Or maybe even make changes to a Wordpress Theme. “Move this box a bit more to the left, and make that color a brighter shade of green.”

This might have been an entirely legitimate description of some web developers in the last decade.

Today, easy to use content management systems, one-click hosting platforms and a plethora of great looking themes for all use-cases have significantly decreased the value of individual web developers with a focus on these basic tasks. No surprise my friends were reluctant to pad me on my shoulder for wanting to jump into a seemingly dying job market. Needless to say, my idea of web development was quite different from those of my friends.

A bit more hopeful, I then turned to some former colleagues with whom I worked with during my time at IBM. At that time they were learning JAVA in order to focus on enterprise scale development. Expecting more encouraging feedback, I once again made a case for my planned ventures into web development. Arguing how Javascript frameworks by companies such as Facebook and Google are holding together large applications that are simultaneously used by millions of users around the world. Saying how I wanted to become a part of this, solving complex problems with my code and, at the same time create interfaces that users can interact with on several devices.

Once again, I did not get the reaction I expected. “If this is what you want, why don’t you become a REAL software developer?”

Fair enough. Apparently, despite all the attention Javascript has received as the programming language of the web, some software engineers still seem to value it less than other languages. Which might be due to the nature of Javascript being a scripting language, meaning it’s embedded and interepreted by the internet browser, unlike programming languages, which are being compiled directly into machine-code.

Maybe before finding this article and googling "Is learning Javascript really worth it", you’ve had similar experiences. So before deciding to learn Javascript as your first (or next) language, let’s see what programming in Javascript really means in 2016:

Javascript is Powering the web

Every device that is somehow accessing the internet through a browser is using Javascript to make websites interactive. It doesn’t matter if it’s Safari on a brand new Macbook, an old Internet Explorer version in a hospital or a mobile version of Chrome on your smartphone.

Every interactive function on a website, such as commenting on a blog, finding a restaurant near you or browsing through shared documents on in a dropbox folder is programmed in Javascript. With newer iterations of browsers, the possibilities as well as the execution speed of javascript have increased considerably. Just now, the newest features of Javascript ES6 are making its way into mainstream browser, adding many new useful tools and syntax improvements for developers. A perfect time to get started.

Javascript is a Versatile Language

Web development relies on an entire stack of technology to work. Historically the most popular stack used to be LAMP – Linux with Apache on the server with a MySQL (pronounced My Ess Q El) database and PHP as the server-side language of choice. This meant web developers need to learn a variety of languages to build an entire web application. It often lead to a strict separation of developers with a focus on frontend development (HTML, Javascript and CSS) and backend developers (MySQL, PHP, Linux).

However, there have been two new emerging technologies over the last years that highly benefit the Javascript expert: Node.JS and MongoDB. The former being a server-side framework entirely written in Javascript. The latter a database storing values in Javascript Object notation, making those confident with the language feeling right at home. In consequences, even intermediate level Javascript developers are now able to bring applications in the web to life, working with the entire stack from server to the layout and animation of the website.

While this versatility alone is already a compelling reason to start getting into Javascript, it doesn’t end here. Frameworks such as Cordova, Phonegap and React native allow Javascript delopvers to build native apps for iOs, Android and Windows Phones. While the performance is still slightly behind applications written in languages such as Swift or Objective C, Javascript has become a great choice for quickly deploying ports of web applications and rapid prototyping on mobile devices.

Rise of the Browser (and Javascript)

If you are planning to pursue a career as a web developer, you might be curious how the software landscape is developing. With browsers and computers becoming more powerful every year, we are now able to run even complex application in the web. Just look at Google Docs and Sheets, which are able to mimic the entire functionality of Microsoft’s Office products in the browser. No installation needed. Running applications in the browser has a large advantage for companies: They are much easier to patch and maintain. Fixing a bug in a native application would require a company to roll out patches and require users to install them. A bug or added feature in a web application can be changed on the server side installation and will instantly become available for users across the world. Additionally, browser-based applications can rely on the server for CPU heavy tasks and won't take up any of your precious hard drive space.

This ability to iterate through versions much quicker and at the same time save substantial costs for support and maintenance, makes web applications very interesting for businesses of all sizes. At the same time, cloud hosting services and content delivery systems allow even smaller businesses to run easily scalable, web-based software. Exciting times to be a Javascript developer.

Javascript has strong Community Support

While Javascript is only ranked in the lower half of the top ten most popular programming languages in the pypl1 and Tiobe2 index, it has an incredibly active community. Just how active this community is, can be seen in the data published by GitHub (an online tool for version control and source code management). They found the majority of repositories to be written in Javascript.3 What does this mean for someone looking into learning Javascript? There is a vast amount of javascript code out there: Libraries for frontend and backend, ranging from server security to particle animations. All ready for you to use and implement in your own projects.

A data aggregation of Blackduck software found that most open source projects were in fact written in Javascript.4 And open source projects are a perfect way to gain experience, contribute to a good cause and learn at the same time. If you’re looking to contribute you can get started today on a site like codetriage.com. If you are looking to get your hands dirty and practise before working on open source projects, it’s super easy to get started. There are many sites out there such as freecodecamp.com, codecademy.com, codeschool.com, teamtreehouse.com or pluralsight.com which will help you to write your first lines of code right within your browser.

Next Steps

Having said all this, I hope it's clear that Javascript is a powerful and important language to learn, especially in 2016. As this blog entry is my first of hopefully many, I want this website to be an helpful ally for you while mastering Javascript. The topics I will be discussing here will cover all parts of the language ranging from foundational topics such as datatypes and writing your first “hello world” to designing and animating aesthetically pleasing frontend sites and building secure APIs on your server. I'll be trying to keep my explanations as simple as possible. Often this will be achieved by reducing abstraction through a direct link to real-world examples.

I will start with a series of Javascript 101 posts. In these posts, I might often choose descriptive terms over those which are technically correct, or even go back to explain seemingly simple terms such as a repository, SSH or bash. By doing so, I don't want to question the readers intelligence or ability to understand programming related topics but rather ensure that even those entirely new to programming or unix-like systems are able to follow along.

Finally, this blog greatly depends on your input and thoughts. What do you want me to write about in the future?

Further down the rabbit hole