Go Tinker
“Scratching the itch”
That concept is thrown around quite a lot. It’s used as a warning of a bad way to work rather often, to illustrate the reason for reinventing the wheel rather than going with an available library. Still, nothing is as important for the development of a coder as that simple curiosity of wanting to do something for yourself, to see what happens and to see if you can do it better. You usually can’t, but at least you learnt why in the process. Or maybe you strike gold and get fortune and fame.
It all comes down to what coding actually is. There’s a lot of preaching for reading books out there. Nearly every programming blog has a recommended reading list somewhere in its archives. Not that this is a bad thing inherently, I definitely think reading programming books is a good thing to do (and something I should definitely do more), but there’s a couple of problems with it:
- Just because it’s printed doesn’t mean it’s true. There’s lots of opinions when it comes to coding practices, and lots of people seem to take things as factual just because they’ve been printed on paper made from a nice chunk of rain forest.
- It all becomes very theoretical and very one-sided. I can learn a lot from reading, but there’s only so much I’ll actually remember unless there’s some way for me to sooner or later use what I’ve learnt.
This focus on books does make it clear that programming is very much based on science and technology. But it completely misses out on the fact that coding is also an art, or craft and that in order to write good code you need something akin to artistic inspiration. In fact, just as many other artists go about exploring, a programmer needs a healthy dose of curiosity.
There’s also quite a few posts out there on programming practice, or code kata. While related, it’s not entirely the same thing as just going after whatever programming itch you may have.
In the crunch periods where all my time has been sucked into work leaving no time for anything other than the very basics of life outside work, one of the things that goes away is my desire for tinkering around with technical stuff. It’s clear to me once it comes back how vital it is for a continued development of my abilities.
In fact, I’d go so far as claiming that setting yourself a new challenge of something interesting and then going about it longer in the evening than you really should is absolutely vital to any coder. Maybe it comes down to making that application that you want, in just your own way without care to the coding standards of your team, trying out a new language. Maybe it’s doing something that’s too dangerous for your work or just out of your field.
My current tinkering has taken me down a path towards experimenting with API call spying, inserting my own code between applications and the OS or their utility libraries to perform various tasks. I’m running into walls left and right, getting through some and having to give up other tracks. Most of it may not come out as anything very solid at all, and even if none of it does, I’ve certainly learnt a lot. Just by doing something much more difficult or far separated from than my day to day bug fixing at work I’m sure to sharpen the skills I have.
So take some time once in a while to ignore all the negative comments, abandon all thoughts of having to produce something and just scratch. What’s your itch?
1 Comment
Other Links to this Post
RSS feed for comments on this post. TrackBack URI
By Protector one, Sunday, May 31, 2009 @ 20:23
My most recent itch involved a Visual Search Provider for IE8 that pulls inline results from Youtube with an intermediate step of XML wrangling, courtesy of Google App Engine. Yeah, I scratched that itch good.