Austin Z. Henley

Associate Teaching Professor
Carnegie Mellon University

Home | Publications | Teaching | Blog

Why I prefer making useless stuff


"I think the #1 project every programmer should try is a project that has customers." - jfoster on HN

"Don't waste your time on homework problems." - anonytrary on HN

Update 5/24: See the discussion of this post on Hacker News and Reddit.

I get a lot of responses like this about spending time on useless projects. But you know what?

There is nothing I find more liberating than to spend a Saturday afternoon coding on some toy project.

There is no expectation or obligation to ever become more. It is just for fun, learning, and curiousity. I can add whatever features I want. I can use whatever technologies I want. I can throw it all away if I want. These are the projects I yearn for and look forward to when I'm busy with work.

Perhaps George Bernard Shaw was on to something: "We don't stop playing because we grow old; we grow old because we stop playing."

Funny enough, Titus Barik published a paper that contributes a qualitative analysis on the sentiment of programming and play on Hacker News. The themes he found include play as artistry, catalyst, fun, playgrounds, spontaneity, tinkering, and anti-work. There is a quote that I particularly like, "The joy of programming for programming's sake is something you do in your own time."

It all makes sense to me, because I have spent a lot of time building useless stuff. Mostly compilers and game engines. To name a few projects:

And if those aren't enough, I have several more useless projects planned! I can't wait to get started on them:

Do you need ideas for useless projects? Check out my two lists:

Whatever you do, don't forget Bob Dylan's wise words about the things you enjoy doing: "you're gonna have to serve somebody".