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…
- HTML. Specifically, how to choose the right element for the job, and how and why HTML semantics matter.
- 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).
- 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.
- DOM Manipulation. How to get DOM elements, manipulate them, create and inject them, and listen for events in the browser.
- Working with Data. Arrays, objects, strings, numbers, and the various ways to store and manipulate them.
- APIs and Asynchronous JS. How to get data from APIs and run asynchronous tasks in the background.
But I don’t think that makes them fundamental skills.