I've got an itch and it needs to be scratched. I've got nothing to program these days. Normally I'd just pick my flavour of the month technology and fiddle with it, but I want to make something and take a break from serious research/experimentation for a while and just write something for fun (ie. not necessarily purely educational/professional development).

Problem is,

  • I can't think of software that I need that I don't already have.
  • Sifting through the open-source projects on various sites to help out on is excruciating (5 hrs down the tubes so far - not worth the trouble)

I'm not looking for a specific suggestion for what to work on because that would be a terribly hard task. I don't think that here knows nearly enough about eachother to effectively give good suggestions.

So I ask, is there any mental exercise that you use to decide what to make when you're not "fiddlin'"?

  • What do you like? It doesn't have to be practical. Sep 24, 2010 at 5:12

8 Answers 8


Since you don't seem interested in helping open source projects, start your own project (open source or not) but try helping a community out there on the internet. Find one first, that you actually enjoy spending time with, and create something for them: a website or a tool or something.

I mean, your a programmer, use your skills in the real world (outside your job). It will even get you to learn new technologies because you'll want to do certain things that might be outside your programming knowledge. You'll be like your own analyst and the client is the community.


When I run out of applications or utilities I want to write, I usually go solve math problems on Project Euler (I also often use those problems when I'm learning a new language).

Solving math-based problems programatically may not be the most rounded use for programming skills, but I've had a lot of fun and learned some things as well (ymmv).

  • 1
    Yeah Project Euler is a great way of learning new languages Sep 24, 2010 at 6:13
  • +1: This is a really good idea. I do PE problems as well, but I never considered it as a tool to learn a new language. Sep 24, 2010 at 15:18
  • I'm using Project Euler to learn Python. Not only is it good for improving Maths ability but it is useful for learning the basics of a new language.
    – Richard
    Sep 28, 2010 at 15:08
  • Project Euler is nifty, particularly challenging if you try to figure out a scenario where you might use the code you just wrote. I find these cases to often be more brain bending than the mathematics involved.
    – user28988
    Jul 12, 2011 at 5:54

What are your hobbies, outside of programming? Make something for one of them. This way you'll have some actual interest in the project, and it may end up being something useful to others.


Make a game.

That way you can increase your skills in almost any area you want. You'll need to touch many of the things mentioned below, but you can have extra focus on those bits that interests you the most.

  • You want to program AI? Go ahead!
  • Graphics programming? Check!
  • Physics? Check!
  • Resource managment? Check
  • Network programming? If you want to.
  • Ui programming!
  • Gameplay programming
  • Mixing sounds
  • Creating graphics

The list goes on and on!

  • This is why I love game programming: it's such a diverse field and you get to wear as many hats as you want.
    – Jon Purdy
    Sep 24, 2010 at 15:17
  • 1
    ... and you often have to do it with every last bit of performance you can squeeze out of it! Sep 26, 2010 at 5:05
  • 1
    programmers don't do graphics unless they're real Renaissance Men... i've never seen a Linux game with good graphics. have you? that said, +1, good answer
    – ixtmixilix
    Oct 20, 2010 at 0:42
  • That makes me a Renaissance Man then... Yay!
    – Nailer
    Oct 20, 2010 at 8:21
  • @ixtmixilix: Then you probably haven't seen WarMUX.
    – Joey Adams
    Jul 12, 2011 at 7:39

Personally, I've got a genealogy project on hold, and I'm concentrating on a (simple) game for my daughter. It's not an entirely contrived project, my daughter wants the game, though it could be easily be played on paper, and it will allow me to learn a bit about WCF. Like many other people, I learn more by doing than by simply reading about generic examples.

If you don't have a specific need or inspiration, simply pick an existing app or tool that uses a technology or feature that you are interested in, and build your own from scratch. Specifically, try to build a better one from scratch.

On my might-get-around-to-it-one-day list, is a synching tool like SyncToy and a replacement for SwitchOff.

Better still, in the UK their is a programme call IT4communities that tries to match needy charities with technical help from volunteers - many of which are programming projects - why not earn yourself some good karma in the process. Some countries have similar schemes running, perhaps under a Circuit Riders label.


I look for tasks in my life which could automated, or more easily facilitated, and then try to find a programmatic solution. This usually results in a nice backlog of projects, and I pick the one which closely matches what skills I want to develop.

Some questions I continually ask are:

  • What kind of data am I working with/on? Will I ever want to analyze it (graphically, or otherwise) in the future? Does it have any relationship to other data I'm working with?
  • What repetitive tasks am I performing? Am I working with something which has a programmable interface?

Once I get an idea, I try to capture it in a mind map and store it somewhere so I can go back to it. If it's very compelling, I try to work through the basic requirements and decide if it has priority over what I'm currently working on.

I also try to keep tabs on my wife and what tasks she regularly performs. If there's something she does which could be made into an application, I see if she's interested. If she is, I work through a few basic requirements with her, and do my own development cycle and walk through some prototypes with her. This usually helps inspire a number of ideas for extensions or other projects.


I tend to try to recreate things I find interesting - for instance, I recently decided to make my own version of Ta-Da list, just to see how it could be done.


For me Project Euler and Facebook Puzzles lately.

See my answer as an accepted answer to another question.

Not the answer you're looking for? Browse other questions tagged or ask your own question.