Skip to main content Accessibility Feedback

What are fundamental skills for a web developer?

A few weeks ago, I wrote about how most front end work is solving common problems with fundamental skills.

In response, someone wrote to me asking what fundamental skills actually are for a web developer.

I don’t think there’s necessarily a finite, fixed list. There was a time when command line was an essential tool for using a computer. Then the mouse and GUIs were invented. Platform-level abstractions make certain skills less essential over time.

But today, I think here’s my list…

  1. HTML. Specifically, how to choose the right element for the job, and how and why HTML semantics matter.
  2. CSS basics. Specifically, styling with different selectors (IDs, classes, and elements), specificity (and how it affects what’s styled), and the cascade (and how it affects what’s styled).
  3. Accessibility & Inclusion. How folks with a wide range of abilities and backgrounds access and use the web. Not enough developers understand how disabled folks or people with slow internet and old devices use the things they build.

What about JavaScript? Nice to have, but not essential.

Once we start talking about JavaScript, though, I think there’s another list of essentials for JS devs…

  1. DOM Manipulation. How to get DOM elements, manipulate them, create and inject them, and listen for events in the browser.
  2. Working with Data. Arrays, objects, strings, numbers, and the various ways to store and manipulate them.
  3. Variables, Functions, and Scope. In CSS, global scope and the cascade are your friend. With JavaScript, they can result in dangerous collisions.
  4. APIs and Asynchronous JS. How to get data from APIs and run asynchronous tasks in the background.

There’s a whole bigger list of things you can do with JavaScript. Some of them might even be essential for certain roles. State-based UI comes to mind.

But I don’t think that makes them fundamental skills.