The Utility of Tinkering

Last week I spent several hours building a chatbot mechanism from scratch, being inspired by some article or another to try to better grasp the concepts of text comprehension.

After much struggle, and several frustrating reformulations which required retraining the thing from scratch, I finally got it working…and it output nonsense.

Several versions and hours later, it reached its peak, achieving the laudable ability to spit out semi-coherent sentences which, if you really thought about them, tied in to the subject matter at hand.

So then I made a new bot and used a tried-and-true, if basic, rendition of a Markov chain generator. In the span of about an hour, I had results that at least equalled and possibly surpassed my original model.

It was frustrating, but also pretty awesome.

Then I asked myself the question: was building that first model even worth it?

And, as that was obviously a leading question, the answer is a resounding “yes.”

But of course, that reaction is just a gut instinct. If you pressed me for details, I’d give you a few of my stock answers for why I think such ventures are worthwhile, even if I never touch that code again:

  • Building the first model helped me understand the concepts better
  • Having two models to compare gave me insight into what works and what doesn’t
  • I have greater respect for what it takes to build an advanced interactive system
  • I can now add this kind of code to my repertoire in a way that I could not had I just built the second model

But truth be told, while those all may be legitimate reasons, they are also, frankly, excuses. Because the final and perhaps most relevant item on that list should should be as follows:

  • I like playing around with things

The tinkerer’s mentality is a large part of what got me into software development and technology as a whole in the first place, and it remains where the majority of fun remains.

And though I cannot give you concrete proof of this, I firmly believe that “tinkering” is important, not just as an individual in terms of learning, exploring, building your skills, but also for society. Tinkering is an investigatory process without a goal and therefore without restrictions; it is creating something elevated out of the mundane: pure human curiosity being used to expand the bounds of our collective knowledge and abilities.

Call me a dreamer; I won’t be too insulted.