Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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'"?

share|improve this question

closed as not constructive by ChrisF Mar 16 '12 at 23:15

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
What do you like? It doesn't have to be practical. –  Robert Harvey Sep 24 '10 at 5:12
add comment

8 Answers

up vote 6 down vote accepted

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.

share|improve this answer
add comment

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).

share|improve this answer
1  
Yeah Project Euler is a great way of learning new languages –  Jaco Pretorius Sep 24 '10 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. –  Steve Evers Sep 24 '10 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 '10 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. –  World Engineer Jul 12 '11 at 5:54
add comment

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.

share|improve this answer
add comment

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!

share|improve this answer
    
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 '10 at 15:17
1  
... and you often have to do it with every last bit of performance you can squeeze out of it! –  GrandmasterB Sep 26 '10 at 5:05
    
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 '10 at 0:42
    
That makes me a Renaissance Man then... Yay! –  Nailer Oct 20 '10 at 8:21
    
@ixtmixilix: Then you probably haven't seen WarMUX. –  Joey Adams Jul 12 '11 at 7:39
show 1 more comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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