The novice must first do it wrong to start thinking about what it means to do it right.

But while generating code is faster than writing it, it's still slower than not needing code.