If You Can Program, You Can Invent Your Own Tools


I’m no life coach or guru, but the purpose of life for the modern, enlightened human has got to be something like the following:

“Do the most enriching or high-impact things that you possibly can as much as possible”.

Now, it may not be clear what those high impact activities are, but may I point out some obvious chaff? For those of us who work on the computer, a great deal of the time spent “working” is actually spent on something other than true work (not even talking about procrastination here). Instead of real stuff, focused work time is sucked away by mundane tasks like opening tabs in the browser, starting up the same few applications in a predictable way, checking specific sites to get well-defined information, filling in forms, etc etc. These mindless actions constitute the bulk of our work day, but because each is so small, the grinding monotony of any individual activity flies right under the radar.

Spend some time thinking about the little bits of work that come up again and again. Write a list of the actions you take and tally a mark next to each action whenever it comes up during the day. If you start seeing multiple marks, consider automating those suckers and getting on to something more important.

The Toolmakers Toolbox

Depending on your coding skills and the nature of the repetitive task you are eliminating, you have the following tools at your disposal. They are ordered by increasing time intensity and technical sophistication required:

  • Find an app that was written by someone else that solves your problem

  • Write a bash script

  • Build a web scraper (if you need to do repetitious things on websites)

  • Build a browser extension (if you need to change something about the way you use the entire web)

  • Build a web site or app (if you need a rich interface for solving this problem)

Strive to solve problems with as minimal effort and time as possible, but keep in mind that even small tasks that recur frequently are worth giving some serious consideration, because they will accumulate into an awful amount of useless time spent over the years.

An Example Scenario

My partner’s past job involved a significant time spent researching sales prospects’ user profiles on the same few websites. It is drudgery to do the work of simply opening up tabs for each site and entering the prospect’s name in that site’s search bar. Instead, what if you could enter a name into bash, press a button, and those sites result pages would pop up in Chrome.

This is juicy, succulent, low-hanging fruit for a script.

How long would it take to write something like this? Well, it’s likely that someone else has solved this problem so no need to come up with a solution from scratch. But, if you wanted to write a script that does something like this without using copy and paste, it’s likely going to take you less than 30 minutes. Probably even less than 10 minutes for an experienced productivity scripter (which you just may become if you start getting in the habit of writing these). Even if you are new to programming you can google existing scripts that do the exact same thing in most cases and tweak them for your particular situation.

What would you get back for this time and effort expended? Let’s say that each time you have to open the browser, locate the search / url bar and enter the name of the website for these sites, then use the local search of that site for the prospect’s name, you use 9 seconds, and you perform that action say 5 times a day.

45 seconds a day = 3.13 hours a year (only counting work days). That’s a lot of time opening browser tabs. If someone forced me to open browser tabs for 3+ hours straight I would definitely search for a way out. Much better to spend 15 minutes upfront writing a script that’ll open those tabs robo-magically. By writing that little bit of code you are getting a massive 1,252% return on your time! And that’s not even counting the coolness / career promoting factor of looking like a wizard or wizard-ress when you’re on your computer, bending it to your will with magical incantations.

A Great Way To Learn

Writing tool scripts brings coding down to earth. Programming software can be quite an abstract pursuit, and the tangible payoff for the first few months of scrabbling around in the dark is somewhat meager. Learning by doing, specifically by building things you can actually use from day one, is much more rewarding. If may not teach you computer science fundamentals, or even practical programming languages, but you will begin to intuit what code is, what it does, and where it can be used. More importantly, you’ll begin to love making things with code.

Moving Beyond Scripts

There are other ways to save time besides scripts. If you have a specialized use case that requires a more complicated tool, you may need to build yourself a custom application. The first step is of course to check what’s already out there. Your problem is probably not new, and if it isn’t someone has probably already solved it. It may be just an open source nub, but you can flesh it out into a full solution. If existing solutions work well enough, go with them. Otherwise try to see how you can solve your problem by spending as little time as possible on it. Focus on those tasks that keep that time ROI high.

Here’s one of my attempts at building tools that improve the way I work. It’s called Shoku. I built it with some spare time and the desire to track more information about the quality of my work and focus. I’ve really enjoyed working on it so far, and have plans to make it even more useful.

Building your own productivity apps is also an area where you can start making some serious money from your work, all while benefiting from the software’s use in your daily life.

It saves time, is educational, and can perhaps even make you some moolah. Go forth and make some tools!