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.

At any given time, I usually have a bunch of ideas for weekend/side projects that I can work on. The ideas can be generally be categorized into these:
1. Self Learning: Learning a new language/ technology/ framework
2. Work related: Learning/Doing something that would help you at work
3. Money: Projects that (you think) can make some money
4. Fun/Utility projects

These are just the rough categories that I can think of and there can be more/other ways of classification.

My question is based on your experience what should drive the decision of what kind of project to work on. What parameters apart from the type of project should impact this decision (time, effort, money...)

share|improve this question
    
Long ago, "follow the yellow brick road", ie. hop from one thing to another as it came in to my sights. Now, no free time at all, so no side projects. With regard to your numbers, 1 & 4 exclusively. –  Orbling Dec 19 '10 at 0:10
add comment

5 Answers

up vote 6 down vote accepted

I actually wrote a blogpost about this a while back. To summarize, the major guidelines I try to stick to in coming up with side projects is:

  1. Have fun
  2. Learn something
  3. Make it timeless (in other words, make it something you can come back to later)
  4. Don't limit yourself to just code (I learn a lot from my blog)
  5. Write something I'll actually use (because I personally am more likely to stick with it that way).

To answer your question a bit more directly, I generally try to do #1 and #4 almost exclusively with my side projects. That said, I gave having fun the number 1 spot for a reason. If you aren't having fun, it isn't a side project. It's work.

share|improve this answer
add comment

Always have a project you can work on in meetings

For example, I had a thing I called "Meeting Lisp".

This was a lisp interpreter written in C that I hacked on intermittently over the period of a couple of years at my old job.

The Rules:

  • I could only work on it during meetings.
  • The source had to fit on one 66-line by 80-column page. (So I could work on it discreetly in meetings!)
  • The code had to compile cleanly.
  • No debugging at the computer. Bugs had to be diagnosed and fixed at the next meeting.
  • This include compilation errors.
  • It had an "include" command, so parts of the library were in lisp and didn't count against the page limit.

I learned a lot and it was a great way to pass the time in boring meetings, so I guess it combined #2 with #1 and #4.

share|improve this answer
4  
Bet you contributed a lot to those meetings! lol - I have colleagues that never say a word in meetings, week in week out, drives me up the wall. –  Orbling Dec 19 '10 at 0:44
1  
What a productive way to contribute to a meeting. -1 –  Terence Ponce Dec 19 '10 at 1:02
6  
If he was dragged into a meeting he has no chance of contributing to, it seems more efficient than wasting a day. –  Graphain Dec 19 '10 at 1:26
    
Intriguing, and yet passive/aggressive :) –  Marcie Dec 19 '10 at 13:49
add comment

I would say it depends greatly on how 'hobbyist' of a programmer you are. Personally, I am not. I rarely create things for 'fun' though I do love programming with or without a monetary incentive.

I would say #1 to learn something new would determine what I worked on. Along with that, I'd say #3: something which I believe could make lots of money. 3 doesn't come up all that often as it usually requires a ton of work I don't have time to do.

To me, heaven is developing something yourself and making a living off of it's distribution, thereby being in a position to completely dedicate your work to it. Isn't that what everyone wants?

I read an article the other week about a indie games programmer who developed a highly acclaimed title and he is now living off the sales comfortably while being able to apply constant updates.

Being paid to do something you love is bliss. It's not work. And if you also own the final product, that's a huge bonus.

EDIT:

Would also like to add, if took out #3, then the ONLY reason I would have any side projects would be #1. That is, to learn something new.

share|improve this answer
    
To be fair, if the game is his main source of revenue, then it isn't really a side project. :-) –  Jason Baker Dec 19 '10 at 3:09
2  
@Jason: very true! Ya know, the idea of a side project completely went out of my mind when I thought about starting my own project. This is the problem I have; my side projects become my obsession. –  Damien Roche Dec 19 '10 at 7:49
add comment

I've commited to the Shuffle app on Android, this is for my own usage, but it was also a learning experiences as I got to use the Android SDK for something larger than myself.

I started an online booking system because the idea had nagged me for quite some time that hairdressers used paper books to book their customers. This was quite a learning experience as well, since it was the first I started with money making focus. It was my first experience with marketing and sales on my own. This in turn created a lot of knowledge that I find very usefull as I work.

Lastly I made a project to collect errors that occur in JavaScript functions on websites to help developers see errors that occur when their users use the site. This was born out of the need of having such a system, as I was creating JavaScript heavy sites myself for the booking system.

In general Learning and Utility are the ones that follow in nearly all the projects I have on the side. However the one that gives the most value back to me is the Shuffle project, as it is being used quite a lot.

If you want a side project that helps you continue commiting to it, I'd recommend getting a project that you write for others. Something someone else wants to use, as well as you.

share|improve this answer
add comment

Scratch an itch.

The side projects that I do are usually things I need myself. If they fit into your four categories then thats even better.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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