Defining the Modern Full-Stack Web Developer

0
159
Photo by Farzad Nazifi on Unsplash

By Eric Wise

The following post contains an excerpt from our enterprise ebook The Modern Full-Stack Web Developer. Download your free copy.

Over the past 30 years, the job of a full-stack web developer has simultaneously become much easier and much harder thanks to massive amounts of information available.

Developers used to have to read large programming tomes, but today’s coders have a wealth of books, videos, interactive tutorials, and communities ready and willing to help answer even the most complex questions. While access to information is much easier, at the same time, it’s gotten much harder because the internet never forgets. Developers often have to slog through irrelevant information that is out of date or sometimes just plain wrong.

The same has happened with technology stacks. When websites were just starting to hit their stride, a bit of HTML, CSS, and JavaScript was all you needed to be a successful web developer, but today’s full-stack web developer needs a lot more. With access to a wealth of tools and frameworks, what used to be impossible is relatively easy, but the overall complexity and number of extra skills needed have also increased, making assembling those applications more difficult.

So with all these changes, the obvious question is: What does a modern full-stack web developer look like? Here is a list of the most common skills that will get the most traction in 2019 and beyond.

HTML and CSS

New world meets the old world. The foundation of the modern web developer has not changed. HTML and CSS are still the entry point to web development skills. For non-technical readers, HTML defines the structure of a web interface. Input elements such as text boxes, select lists, checkboxes, and buttons are all defined using HTML.

CSS are concerned with how the HTML elements look. Over the years, CSS has evolved from very simple styles such as colors and borders to now being capable of animations and other advanced effects. Together, HTML and CSS are what make web interfaces look good.

JavaScript

JavaScript is a programming language that goes hand in hand with web interfaces. On their own, HTML and CSS interfaces can look very nice, but they don’t offer much in the way of behaviors. Writing JavaScript allows developers to access HTML elements and manipulate them with code. For example, if a user enters a ZIP code into a text box, a developer could use JavaScript to verify whether it is valid (formatted correctly, actually exists, etc.) and display an error message if it is not.

ZIP code validation is a very simple example of the power of JavaScript in web applications. JavaScript can also be used to handle authentication (logging in), complex interactions such as sorting table data, and is often used to communicate between the client (a web browser or phone) and the server (a computer handling all the data and requests for an application).

Twenty years ago most JavaScript was used only for very simple interactions, while 10 years ago developers who knew other languages could get what they needed with JavaScript by kludging in some scripts they found online. Today, the modern web developer needs to be skilled in JavaScript, as the tools and frameworks being used require more than passing familiarity with the language. This is a big change for a lot of experienced developers, many of whom have avoided learning JavaScript in detail. JavaScript has evolved, adding more powerful features that until recently were lacking in comparison with other, more traditional languages such as Java, Ruby, and Python.

TypeScript

While being fluent in JavaScript is good enough for many modern web developers, TypeScript is another language that is growing in popularity. JavaScript has some weaknesses when it comes to writing large, complex applications—in particular, when it comes to verifying code correctness—since the code is not checked until the application runs.

TypeScript adds verifications before run-time, which helps developers write larger, more complicated web applications quicker with less time spent debugging issues. TypeScript actually outputs JavaScript. Any web developer seeking to add a skill that will make them stand out from the crowd should take a good look at TypeScript.

Node.js/NPM

Node.js is a server-side (back-end) framework written in JavaScript that is very popular for creating modern web applications. Again, the browser or phone interface is what interacts with the user, but applications get all of their data, storage, etc. from a back-end framework that lives out on a server. Node is one of those frameworks (most languages have a back-end server framework including Java, C#, Python, Ruby, PHP, etc.). 

Node.js is often recommended as a starting point for modern web developers because they can keep their focus on the JavaScript language and avoid having to learn a different language for the back-end, server code.

NPM (Node Package Manager) serves as a repository for thousands of custom JavaScript packages that modern full-stack web developers can use to add common features and functionality that the developer community provides for free. Needless to say, this is often preferable to implementing these features from scratch. Most modern web applications rely heavily on a number of packages.

Front-end Frameworks

One of the challenges of being a web developer a decade ago was that there was little guidance on how to structure and implement an application. The lack of resources made it very difficult to get up to speed on new projects and also meant that many developers were reinventing the wheel with a lot of “boilerplate” code.

Boilerplate code is common functionality such as navigating between views, passing data between interfaces, security and authorization, and other such tasks that are common among all applications. Developer time is expensive, so most developers would rather grab the common boilerplate from the community so they can focus on writing the code that really matters to users and differentiate applications from others. In a nutshell, this is what a framework provides.

For the modern full-stack web developer, there are many choices, but the three most common, in order of popularity, are React (created by Facebook), Angular (created by Google), and Vue (community driven by former Angular developers who think Angular is too complicated). As a company, you will likely invest in one of these frameworks, as mixing them does not often make sense. Modern web developers should pick one to be really good at and be familiar with the others.

Git

Source control provides a repository for application files that can be shared with a team. It also provides features like versioning (for backup/recovery) and bug tracking. There once was a time when source control was not pervasive. Those days are long gone. Any full-stack web developer who plans on working with a team needs to understand source control if for no other reason than to use it as a backup and versioning mechanism.

Python

Last but not least, the modern full-stack web developer should invest in learning Python. The Python programming language is one of the fastest-growing in-demand skills for two reasons:

  1. Python is the most popular language for DevOps, which is a role concerned with automatic deployment applications from the development environment to the production environment.
  2. Python is the most popular language for data science, and the primary purpose of many applications is to visualize and interpret data. 

Increasingly, modern web applications are leveraging one or more cloud services. Deploying code is becoming more complicated due to the extra steps of interacting with these providers in a clean way that doesn’t miss steps, rolls back safely if there are errors, and is able to deploy to dozens (or hundreds) of servers in a batch process. Modern web developers who can manage the DevOps process are far more valuable than those who cannot.

Plus, developers who know Python well can always start to dabble in data science, which is one of the fastest-growing job skills in the tech industry. So it’s a great way to hedge technical bets!

 

Download your free copy of the The Modern Full-Stack Web Developer.

LEAVE A REPLY

Please enter your comment!
Please enter your name here