Let’s talk about what we should know and learn, shall we?
My friends Chris Heilmann and Marco van Hylckama Vlieg recently wrote Web Development is Moving On – Are you? respectively The death of web development and design, and what to do next.
Having only skimmed through them before, I was sure I would react strongly to something and completely disagree with them, but I just read them properly, and my “problem” is that both are well-written and very balanced. However, I do have some thoughts to complement their posts, so please allow me to chime in.
What to know
Chris has an interesting quote, which Marco used, and I will as well:
With all due respect, I disagree. Of course time to market, reach and price is important, but let’s think a little longer. Think about the cost of maintaining a web site which was quickly developed, or just how easy, or hard, it is for a new developer to grasp the code and the concepts.
And, when you realize that the site weighs a little bit too much to load, there are a number of HTTP requests too many to make it pleasant for the end user, or it just suddenly fails in some web browsers, who would you turn to to solve that?
Your employed developers that used all the APIs and provided documentation will have no clue how to solve specific problems, since they don’t know about the inner workings of what they used, only the exposed methods.
Overbelief in APIs, libraries and services
They deliver stunning results, but as soon as they have to tweak it, optimize it or just plainly find out why it doesn’t work as expected, they’re stumped. And I see this with a lot of developers and projects, where people want, or are pushed, to deliver what might at a first look seem as magic, but essentially they don’t know how it works. And that, my friends, is a very dangerous situation to be in as a developer.
Maybe I’m exaggerating here, but at times, the trust in APIs and services remind me of the time when knowing how to code HTML would be completely superfluous, since all WYSIWYG tools (Dreamweaver et al) were to replace that. Guess what? So far, no tool has gotten smart enough to figure out how people try and build things, since the human mind sure works in mysterious ways.
With the same line of thinking, APIs and such only go a certain way in figuring out what you want. Sure, you can contribute to it, but that doesn’t necessarily mean you get exactly what you want – and, more importantly, what you want might be the opposite of what someone else wants, so the bigger the API/service, the bigger the compromises.
A lot of companies still do it themselves
Chris and Marco work at Yahoo, where they get the opportunity to work with a lot of very talented developers. And when they’re not, they’re mingling with a lot of other great people at conferences. That is fantastic, truly, but I think that it just might cloud their judgement a little.
From what I see, most companies still want to do it themselves, host it themselves and generally adapt it themselves. They use libraries, public APIs etc to a certain extent, but the vast majority of what they have is produced by their own developers and/or consultants they hire.
And I don’t really think this comes out of fear for the cloud (although what happened to Ma.gnolia is truly fucked, and should not be possible to happen), but rather that they like control, overview and doing things from scratch if possible.
Is that a bad thing? Yeah, perhaps, but at other times they produce fantastic results which they can customize and maintain however they seem fit.
So, what should you really focus on?
I think Chris’ and Marco’s advice are great, to look into options and other ways to do things, while definitely being there for new people to teach them about how things actually work. But at the same time, if you’re new to web development, I strongly encourage you to learn the basics and more about the major technologies you will be working with. It will pay off in the long run.