Even though I’ve been programming for almost 15 years, I recently realized that I hardly write any programs for personal goals.
In university I programmed to get my degree, feeling somewhat indifferent about it. Then, after making it my profession, I felt responsible but didn't enjoy it. Projects I worked on were large, hulking beasts of the enterprise world. Programming, to me, was something to advance someone else’s goal.
This led me to be detached, overvaluing the art, while undervaluing the craft in code—code had to be well written, but I was easily distracted from the end goals. I had never used programming to solve a tedious problem of my own and never approached coding as a practical means to an end.
A few months ago, however, I coded a small program to help manage home logistics regarding when we needed and arranged a babysitter. My needs were simple: a list of dates where we usually required a babysitter sent out on a two-month schedule. It took me a few hours—mostly due to my lack of Python knowledge—but I got it working. For months this script delivered tremendous value to me.
Recently, I tweaked the script some more. I noticed that every time I got replies stating who could babysit on what date I had to create calendar appointments by hand capturing the information—very tedious! This time I responded by sitting down and thinking how code could help me. I ended up writing a small Python script that converted a CSV file with dates and the name of the babysitter into an .ics file which I used to enter the appointments to my calendar in bulk. It worked beautifully!
Stepping away from the keyboard, I realized that I had taken my ability to program and applied it for my own good. And even though the program itself was nothing ground-breaking (sometimes this can even be a good thing), it sure was to me. Coding it, I felt such a clear sense of purpose—to solve this tiny problem improving my own life even if only by a tiny bit. The experience made me see programming in a whole new way. I more deeply appreciated its limitless potential to improve the lives of people, looking at it in a broader context as a means to deliver someone tremendous value.
All too often, feedback on your code can be so far removed, your contributions such a small cog in a monstrously large machine, that it's easy to lose touch with this feeling of purpose. Perhaps I should do this more often. The experience rekindled my passion for coding and all that from a few lines of Python code. Not bad.
What about you? What have you recently built that made you appreciate the arcane skill of building software more?