Web Development is an Uphill BattlePublished 2013-2-12
The great and terrible thing about web development is, well, it's web development - no other development is easier, or more difficult!
How can you be effective without being an expert?
Finding the answer to this question is one of the most pressing of my current goals.
I'm trying to put together succint materials that teach people the least of what they need to know to get stuff down.
Web Development is AWESOME!!!
The web is a winner, that's for sure. It's both hot and cool.
More and more of the difficult technology is being standardized and written directly into the browser APIs so that they get abstracted away into simple business logic rather than complex algorithms.
There are so many libraries are already-solved problems for just about everything.
Although they're not always the first hit on Google, there are a number of great tutorials - you just have to know where to find them (and a number have found place on html5rocks).
And with tools like jshint, jade, and less you can get more work done with less frustration than any time in web history!
Web Development is FREAKING AMAZING!
Except that Web Development SUCKS!!!
Web Development is like an exclusive club that you have to be in the know to get in the know - otherwise you end up using this crap.
And everything about web development sucks SO BAD from the ground up.
(the worst language of all is often confused as being a programming language, but it's actually just a template language that couldn't do what it was nearly good at and fell into doing solving other problems that were already being solved better by programming languages)
And there are so many technologies in the mix created by standards bodies who never sat down in the same room or even spoke to each other about anything before they finalized the standard and shipped it out the door.
In css classe are defined by
.foo. In html they're defined by
which is supposed to be a list... WHAT!?
Even in the lastest standards they still do ridiculous things with conventions
ranging from conflicting uses of syntax such as
_, and camelCase to
mixing in incompatible Object types such as
NodeList which isn't an
And worst of all: In an attempt to make the process less painful and require less discipline, you get no error messages most of the time you do something wrong - even if the syntax is unparsable (CSS / HTML), which ultimately means more manual error checking, more steps in the build process, more discipline required!
It's impossible to get started as a web developer!
Back to Day 0
I think web development is really like learning to play Piano. It can be incredibly satisfying and incredibly frustrating. You can find the rare teacher who can get you playing in weeks, or one who wants you to have years of practice fingering and never tells you the simple, motivating secrets with which you could be enjoying your experience after just a few weeks or even days!
So how do we take a guy (or gal) who's getting into web development and expose them to enough of the good to feel successful and motivated without leading them right into the bad that's going to cause frustration, failure, and demotivation?
make the invisible visible
I remember another principle is to ask
Is it worth it?
Can I do it?