Thoughts on programming, carpentry, and imperfection

I’ve been programming since I was 11 years old. This year, I worked for a while under a master carpenter and I had a revelation. When you’re working in a digital medium, you can create, edit, and delete with tools that work within a close to ideal universe. You can calculate and create an exact appearance and behavior that are precisely reproduced every time your code runs.

And it’s easy to expect to apply the same methods when it comes to self-improvement.

In carpentry, every piece of wood is different. You have to adjust the way you use your tools each time, following the grain, working with what is already there. And while you may occasionally create two wooden parts that look very similar, the methods used to create them can often be very different.

I struggled with the fact that the alterations you make to your materials are permanent – there’s no undo button if you drill a hole in the wrong place. But I watched as the carpenter I worked for gradually corrected his mistakes as he went, chiseling, sanding, and occasionally scouring the floor for offcuts to pad gaps that were too wide or at a bad angle. He created some beautiful, totally imperfect pieces of work.

We spend more time in the digital world than any other generation of mankind. But we can’t apply the methods of the digital world while we try to change ourselves. There are no blank canvases in real life; no create, edit, delete, undo; no appearance or behavior that will be reproduced precisely each time.

We have to work with what we’ve got, gradually correcting our mistakes, and hope we end up with something beautiful – knowing it will always and inevitably be imperfect.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s