Coding Horror, a blog that I’ve started reading regularly, has some fantastic advice on how to improve your skills (regardless of the domain): Quantity Always Trumps Quality.
When it comes to software, the same rule applies. If you aren’t building, you aren’t learning. Rather than agonizing over whether you’re building the right thing, just build it. And if that one doesn’t work, keep building until you get one that does.
This is advice that I sincerely need to start following. I tend to have the debilitating problem of starting to work on an idea but never completing it because of constant tweaks and muddles and experiments and refinements ad nauseam. With an approach like that, your results are always incomplete. And when you feel like you can never complete something, you tend to move on to something else (i.e. quit).
When I used to create and record music, it was the same thing. The difference, however, was that there was always something to show for the effort, even if I wasn’t totally satisfied. No matter my perceived flaws, there was still a piece of recorded music I could share with others. But when the code isn’t finished, or the design still “in-flux”, it’s pretty difficult to call it a day and let the beast loose on the world.
I hereby resolve to…oh who am I kidding.