Do you remember the good old times where all you needed to do was to write some good CSS and HTML? Maybe a little bit of PHP, JSP or (if you were a skilled frontend dev) some Jade/Pug variables, imports, and some jQuery code...

...well, it’s all dead. And that’s the greatest thing that could ever happen to frontend development.

Legacy is a developer problem

Frontend Legacy

Being a developer means “never stop learning”.

On the backend, some technologies will last for decades. Just think about Java, PHP, Ruby (etc...); once you setup your server, it will serve your application forever.

Frontend is totally different: some APIs will be deprecated in a few years, some browsers will evolve and some will loose support. Some new frontend frameworks will replace some old/ugly/outdated libraries, and will help you to be more productive. You can’t ignore that.

To ride the innovation wave is a developer responsibility. While jQuery was an awesome library in 2010, today is pretty useless, ugly, and outdated.
Some frontend devs will face difficulties while trying to bootstrap a modern user interface with React, Vue or Angular, and that’s totally fine.
They just need to learn something new, because that’s what developers do.

Fear of JavaScript

Fear JavaScript meme

In the recent years, JavaScript has become one of the most popular programming languages. Some frontend devs still refuse to adopt it as an essential language for the frontend, and that’s extremely wrong.

The days where you could code an entire user interface with just HTML (or Jade/Pug) and CSS (SASS/Less) are dead. Get over it.

As a developer, sometimes you need to forget everything you learned in the past. Being good at coding with jQuery/Zepto/MooTools, doesn’t mean that you will be a good React/Vue/Angular developer.

After some years writing this:

<div id="content"> hi! </div>

<script type="text/javascript">
  var content = $("#content");
  content.addClass("foo");
</script>

this will be pretty hard to understand:

<template>
  <div :class="contentClass"> Hi! </div>
</template>

<script>
  export default {
    name: "someComponent",
    data() {
      return {
        contentClass: "foo"
      }
    }
  }
</script>

But that’s fine, you just need to learn something new.

The advantages of writing Vue/React/Angular components instead of some messy jQuery code will be clear really soon, as you move on studying reactive programming, component-based development, and other new technology/ideology.

Being good at JavaScript coding, today is an essential skill for every frontend developer.

I’ll say it again: SASS, Pug, and jQuery are not enough anymore.

Frontend Engineering

Frontend Engineering

With Backbone and Angular, we definitely said goodbye to Frontend Development. These two libraries started a revolution that lead to the Frontend Engineering, where web knowledge was important, but not enough.

Today, you need to know how to setup WebPack or Rollup in order to bundle your application. You may need to know how to use Lerna to manage multiple packages. And what about ESLint? Prettier? TypeScript or Flow? Yarn or NPM? Babel?

JavaScript is not just “a shitty frontend language”, like many developers say. It’s a complex, fast growing programming language that will help you more than you think. Its community is full of smart engineers which comes from different experiences and will help you to find your way through the language.

The purpose of Frontend Engineering is easy. User interfaces are getting complex and user experience will be compromised until you’ll find a way to optimize your code. Think about how you wrote code in 2005: did you really care about scalability? Performances? Clean code? Tests?

Today we often work on the frontend writing complex algorithms, unit tests, and care about performances and page/bundle size.

In 2005, writing good frontend code was easier, but even ugly code was accepted (in most cases).

In 2019, writing good frontend code is extremely hard, and ugly code cannot be accepted anymore. Why? Because today users have high standards, and performances, scalability, smooth animations, fast execution… everything matters.

Just be honest and say it: how many times did you care about the size of a library, before importing it into your project?

How many times did you refactored an entire script just to improve its maintainability?

How many times did you care about unit tests? And what about performances?

I’ll be honest: I often wrote down a quick and dirty solution, because every developer I ever met, did the same. In the last 5 years I realized that I couldn’t go on like this, so I left jQuery, Zepto, and embraced React and Vue. I learned about ESLint, unit tests, clean code, and studied algorithms and data structures.

This changed my life and my enthusiasm about programming.

The 2020 Frontend Engineer Mantra

  • Old technologies expose exponential problems. As soon as you leave them, you’ll leave your problems behind.
  • SEO is important, but it’s not an excuse to avoid React/Vue/Angular. We have SSR and it solves the problem.
  • JSP, ERB, PHP are not enough. We are in 2019, we have Nuxt, Next, and other great server side technologies. Adopt them.
  • Clean code is a must.
  • Algorithms and Data Structures can save your job. Literally. Study them!
  • Tests are essential.
  • JavaScript is your friend.

Did you like this article? Consider becoming a Patron!

This article is CC0 1.0 (Public Domain) licensed.