Ask HN: How do you come up with hobby projects?

14 points by DalekSall ↗ HN
I have a hard time getting ideas for new hobby projects that will keep me interested and teach me new stuff.

To get started i have tried several things like Project Euler(and a-like), re-do work related systems in new languages and following tutorials.

Non of those keeps me interested for long, and i think it is because they don't serve any purpose, other than keep me coding.

23 comments

[ 2.7 ms ] story [ 110 ms ] thread
I don't think there is a method to it : as a developer you should see a lot of opportunities to automate things in your daily life. If not you probably need some hobbies outside the dev world.

I started coding about 10 years ago because I wanted to make a better bot for World Of Warcraft than what was available. Literally if it wasn't for WOW and an obnoxious coder that wouldn't share his bot code I wouldn't be a developer today !

Among more recent projects, I made a "green" script to encode videos at night while electricity is cheaper, a tool to extract, rename and classify rared / ziped nested ebooks (obtained from dubious sources ;-), another tool to analyze and optimize my chances at winning on football (soccer) bets (let me say it didn't work very well).

Sorry that sounds a bit nonsense to me. All the things I enjoy doing outside of work involve getting away from the computer as much as possible. Mountain biking, kayaking, drinking. Cooking is about the only hobby that could involve something, but there are a ton of cooking related websites.
Make a mountainn biking application. Or one for kayaking! Or how about script that will crawl various websites and map the locations of various pubs that have various craft beers on tap? See, I just came up with a viable application you could develope in literally 20 seconds.
The fact that there's a ton of related websites shouldn't ever stop you from doing a simple side project, since it's for learning purposes anyway. And a "copy" of something can always shift into something original.
I am doing a work related side project, as I think there might be more business opportunity in it. Plus its what I know well.
Mountain biking: route planning; journey mapping; distance logging; GPS direction showing; etc etc.

For someone who wants ideas you use your non-computer hobbies as somewhere to get ideas.

I don't need any of that. I don't see the point in tech for the sake of it.
Shameless plug: I started the http://hashbang.sh network with this in mind. Show up, get a free shell, and work on the network itself. Plenty of people from all over the industry noob/pro alike hacking stuff out together and exchanging open project ideas. ;)
I talk to people. Pretty much every side project I've ever done has come from a conversation about something that someone finds annoying, or an idea that they think is brilliant, or that I think is brilliant. For me, the key to coming up with a project I won't abandon easily is to have other people involved pushing me to work on it.
I think it's ok. I've started, stopped, finished, paused, abandoned a plenty of side projects over the years. But I see them as more of a learning exercise and I suppose I learned much of my current skill set from these projects.

Having said that, getting the project done to a level where you can show other people is a good objective.

[shameless plug] - I run a site called sideprojectors (http://sideprojectors.com). Take a look at all those side projects people started and maybe it might inspire you to find something that you'll like!

Hang out with people who run businesses and listen to their complaints about the apps/systems they use, should give you plenty of ideas!
I'm much the same, a lot of the time I find it hard to do things like Project Euler or redoing work in a new language because it's not interesting to me.

I have found that watching videos from things like GDC/TED talks about particular software techniques has given me motivation to try and copy them. Yeah, I'm not pushing the boundaries of human knowledge or making a killer app but it's a new piece of technology or technique that I've never done before.

Perhaps look to implement something that you haven't done before in a way you haven't done before. Personally, my current project is a Fiber based raytracer. Having never done either before, it's an interesting problem to solve when you don't look at anything but documentation on MSDN for functions.

I just think of stuff I would like to build, found interesting or useful. If you are the intended user, it's a lot easier.
totally agree with this. if you are using linux, install a few window managers and start playing around with them...fvwm, xmonad, fluxbox, etc...then start thinking about what you would like to do better...look at the code for some of the utilities...bbpager, dmenu, etc...well, that's if you're interested in this kind of stuff ;-)
Would say general brain storming and inquisitiveness, i.e. how does this actually work and can I improve on it.

As an example of this thinking, I looked at ghostery a while back and thought it could be cool to work out what I would have leaked and to which websites. "Would have been tracked" was born, though still got to get around to coding, feel free to take it you want.

As a few other high level project suggestions; cloning programs for different languages, play around with electronics (there's years there) or pick a few open source projects to contribute to.

I was once watching a movie on a projector and my roommate walked in front of the projection and I noticed a distortion. I then thought to describe this mathematically. And bingo presto I was on my way to developing a 3d computer vision algorithm!
Hobby projects, usually solve a problem that I'm experiencing, the proverbial itch that needs scratching.

If I happen to be looking to try out a new library or programming language I give it ago, even if its not the best choice, because its just a hobby project.

I've done this with recently with: http://optionsworth.com/ and http://dailyriver.herokuapp.com/

Mine are usually derived from my non-technical (non-computer) interests and scratching my own itch. For example, my need for a source for quick at-a-glance recap of NBA games (when I found myself with less time to follow sports) is what spawned Recapp'd (which was also my "learn Rails" project).

Shameless plug: http://recappd.com

(comment deleted)
I find my interest is most piqued by non-programming fields. So, for me the answer to this question has been: listen for opportunities in the communities around fun, non-programming fields. In my case, listening to a NASA Twitter account led to a weekend hackathon that showed the possibility of programming around live telemetry from space vehicles, which I've been noodling with ever since: https://github.com/sensedata/space-telemetry

Another idea I've been messing around with for ages is a mobile app to support bicycle wheel building; something else seemingly non-programming that I love doing and so looked at specifically to see if I could invent a way to a hobby project.

And, games are another arena that have worked well for me, i.e., programming around them is fun enough to keep me well enough engaged to learn and understand new things. Mods, play-support tools, and of course actual (mini) games. If this sounds interesting, I recommend finding a moddable indie game to start with; micro-studios can be very friendly and supportive of modders in ways that keep you coming back for more.

PS From the OP's context, I'm assuming the real question is "How do you come up with hobby, programming projects that keep your professional abilities fresh and varied?"

I'm on the opposite side. I've got dozens of hobby-code projects. I can't go a month w/o some idea. The idea comes first then I pick technology I'm not familiar with to build it as a method to learn.

I spend a bunch of non-work time mentoring/advising early tech-founders so there is constant ideation around me which keeps my imagination going.

I started seriously writing as a hobbyist, student and then hold in custody about 5 years ago .And now I became a best resume writer .I've always write small articles and stories on the side as a learning exercise.
Everyday interactions present opportunities for further exploration. I get my projects from problems I encounter during my normal interactions with people. Then I try hack something together for fun. My most recent project is hacking a thermostat with a Raspberry Pi 2 and mobile app to notify small shop owners when their freezer temperature has risen above a certain temperature. This project came about from a interaction with my local grocer. I grabbed some Ben&Jerrys out of the fridge a few weeks ago and the shop attendant apologised. He couldn't sell the ice-cream because the freezer power was cut the night before when a cleaner accidentally tripped the power cord. The ice-cream had melted and was a write off. The shop owner had to leave the stock in the freezer until the insurance delegate arrived to confirm the write off. The shop owner gave me the idea of an app that would notify him if it ever happened again. He wanted to do it himself but didn't have the technical ability. I didn't either but that was an opportunity to learn on a real life problem. It doesn't matter that there are commercial alternatives available. It's something fun to program and I have a willing participant to trail it on. Keep your eye's and ears open. Real life problems are often more rewarding to solve than projects on hobby sites.