Web development is a broad field, bringing with it an enticing array of different challenges. Indeed, I think my peers would agree that one of the role’s many appealing qualities is its inherent variety. On any day a developer might be tasked with: building the layout of a new web page, requesting and manipulating data from a server, coding interactions and animations, or one of any number of other interesting challenges. That mix of responsibilities requires a developer to understand and implement a range of different mark-up, scripting and programming languages.

For the uninitiated, a quick primer:

First of all, and essential to the web, is Hypertext Markup Language (HTML) which provides the semantic structure and content of each page. HTML is the heart of a web page, allowing us to inform the browser that we intend to display a paragraph, a list, an image, or one of a number of other content elements. Moreover, the HTML contains the specific content that each of these elements should show to the visitor.

Following on closely behind are Cascading Style Sheets (CSS), which allow us to style the aforementioned content. Using CSS we can make the paragraph a different colour, adjust the spacing of the list, or increase the size of the image, amongst myriad other possibilities. Background colours, rounded borders, shadows, spacing between elements; all these things and more are specified with CSS. HTML tells the browser *what* the content is, and CSS tells it *how* it should look.

Furthermore, as websites increase in size and complexity, we typically make use of a database to store content and other useful data. This is where “back-end” or “server-side” languages enter the picture, so named because they run on the server rather than in the visitor’s browser. For this there are a range of choices — including Perl, Ruby and ASP — though we do the majority of our work in PHP, which powers platforms such as WordPress, Laravel and Drupal.

With the aforementioned covered in brief, today I would like to focus on Javascript (JS), a very useful and increasingly flexible language. Like HTML and CSS, JS typically runs in the browser and, traditionally, has been used somewhat sparingly to enhance the functionality of a page. This might mean powering a carousel of images or displaying an interactive calendar. However, more recently the development landscape has exploded with front-end JS frameworks such as Angular, Vue and React whose purpose is to provide a more convenient and structured way of implementing JS in the browser. Practically speaking, this means a smoother, more interactive experience for the visitor and, in theory at least, a neater, more logical approach for the web developer.

As if that wasn’t enough, JS has been broadening its horizons and, like PHP or Ruby, it can also be used as a server-side language via applications such as Node.js. These developments have opened up the potential to have entire web applications written in JS. This rapid growth has seen a surge in demand for developers with deeper and broader JS knowledge. With many of the web’s biggest players (such as Facebook and Netflix) using frameworks like React, it has become clear that JS is here to stay.

Read more: The Role of JavaScript in Web Development