Associate Teaching Professor
Carnegie Mellon University
"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".