Build inconsequential things
I just wrote a tool to find duplicate JPEGs, and I’m happy.
I’m fully aware that there are a thousand projects like this one, and I realize that mine is the worst of them all. It doesn’t have a GUI, its output is specific to my needs, and it crashes on broken JPEGs. In terms of usefulness to the world, it was a waste of my time.
Yet, it was the best thing I did in the last few months. These 200 lines of code helped me cross out a handful of items off my to-try list. I learned about perceptual hashes and BK-trees. I finally got my hands dirty with some famous Rust crates: walkdir, anyhow, and rayon. And I had fun the entire time.
That’s how I learned to program, actually. I built a lot of junk: a password generator, an IRC bot, some scripts for my chat client, a little database to manage my DVDs… These days, it’s different: I work on a handful of big-ish projects, and usually go for depth, not breadth. And so my to-try list keeps growing, making me feel like I’m missing out.
Building inconsequential stuff is the fastest way to shrink that list.
Your thoughts are welcome by email
(here’s why my blog doesn’t have a comments form)