Peter Lyons

Level 1 Web Development

January 26, 2017

Recently I've been thinking about the scope of web development and the lack of clear boundaries. So much of being a "web developer" is a giant unbounded field of deep topics. JavaScript has become a very large language in terms of syntax, semantics, and features in addition to the 20 years of legacy quirks and inconsistencies we never remove. HTML again gets complex fast once you start building realistic applications and trying to balance semantics, accessibility, SEO, etc. CSS3 also has a tremendous scope including transforms, animations, etc.

What I've been thinking about is would it be empowering to beginners to clearly define and name small subsets of these that can be realistically taught and learned in a fixed time frame (say 6 or 12 months just to throw out some numbers)?

So just to flesh this out, let's say we took a subset of HTML elements and attributes that are the key building blocks and focused on those and clearly put all the more obscure tags, complex attributes and interactions off in a different set. We label this something like HTML5 Level 1. Forget about object, map, audio, dd, cite, etc - for now.

Same thing for CSS. Focus on the basics of simple layouts, colors, sizing. Enough to get some basic text and a few images on the page looking OK in all viewports. Basic class and nested selectors but no fancy attribute matching. No transforms or animations. No tweaking word wrapping or overflow, etc.

For JavaScript it's trickier and I'd actually like to see an entirely new language (could compile to JS perhaps) but the main idea is that the scope is bounded. You can do basic programming but maybe not top-tier million-user webapp optimizations or complexity. You don't have to get explainations about how IE8 did something weird and then the spec adopted it. Forget metaprogramming, prototypes, generators, multiple syntaxes for similar concepts, regular expressions etc.

I'd like to see self-taught folks and bootcamp grads be able to say "I'm proficient in Front End Web Development 2017.1" with confidence. I'd like them to know they can go on a job interview and have worked with everything in that defined scope. No surprises. No anxiety. No "I'll probably do OK as long as they don't ask me to build a complex table". I'd like to see companies be able to put these people to productive work and say "On day 1 we hope to see you submit a pull request using Front End Web Development 2017.1 tools. On day 180, we'll have trained you up to 2017.2".