Stack Overflow"Pet Projects" - Should We Each Have One?
[+26] [14] Rob Cooper
[2008-09-19 14:33:21]
[ polls projects study ]

Basically, I have recently started a "pet project" (side project/whatever) working with RESTful APIs that are on the Internet. I have never done this before, and I have found that it has really rekindled my love for programming.. I want to stay up late with it, take it out to dinner and spend more time with it than my friends..

Which is all fine and dandy, but there are downsides, it has impacted my study for exams. I am of course spending less time studying (as I should be) but I am still getting heaps out of it.

While I know I am responsible for my exam results, do you think we should all have "pet projects"?

OK, here is how this is going to work.. It's kind of my trying some PoC stuff..

Why am I doing it like this?

So please people of StackOverflow, vote! Share your experiences!

(2) if you're telling everyone to make their answers wiki why don't you make the question itself a community wiki? Not very fair that you can gain rep while others cannot. - VeePee
Please read the Q in full. I state that if discussion points are raised, then mark them as wiki, not if they are hard answers to the question. - Rob Cooper
[+84] [2008-09-19 14:33:42] Rob Cooper

Yes or No? (Vote on Me!)

  • If I am Postive - StackOverflow says: AYE!
  • If I am Negative - StackOverflow says: NAY!

NOTE: You will not take a rep hit downvoting this as it is community editable.

AND a plus one for making it wiki editable :D - Mostlyharmless
(7) I think it was made wiki so he wasn't accused of rep whoring - Kyle Cronin
Good edit. I think that makes it more clear. - Mark Biek
Kyle is correctamundo, I wouldn't want to be seen as a rep whore, just wanted to try and actually get some good meaniful results from something that is disputed to "not work" on StackOverflow. It's also a new, relevant Q in my mind :) - Rob Cooper
Thanks Mark, hope this clears it up - deleted your comment on the Q so as not to confuse. Hope you don't mind. - Rob Cooper
A single '540' is less valuable than a separate yes/no count - Vinko Vrsalovic
Then you can do it differently when you post a poll :). The thing to keep in mind is that he only cares about two possible states: < 0 is NO, > 0 is YES. He's not interested in comparing how many people think one or the other. - Mark Biek
Mark is bang on, I dont care I simply want to see how far the vote answer goes in any meridian.. - Rob Cooper
Having 2x Answers also could lead to double-voting. - Rob Cooper
This may not work as well as you hope. I know I wouldn't want to take a rep hit just to vote in a poll, so I imagine others feel the same way. - Kyle Cronin
Good point there Kyle.. i have just tested this, I didnt take a rep hit downvoting a community answer? - Rob Cooper
You're right - this discovery should go in the FAQ - Kyle Cronin
I think it would be better with a yes and a no answer, else, the answer will drop to the bottom when it's a no. Making it harder to find. - daveb
Hmm, but then you get two votes... - daveb
You just divide by two, it's still more information than a single number. Anyhow I think Rob knew the answer previously, this would be a more valuable exercise with a less biased poll (this one's like asking "is studying good for your knowledge?" :-) ) - Vinko Vrsalovic
I do agree with you there Vinko, but I was curious to see if I would indeed get a big, fat YES from the community, i think 25+ is a good yes, 50+ HELL YEAH! :) But, TBH I never found the value of a side proj until I start it, this may help others to do the same :) - Rob Cooper
[+13] [2008-09-21 11:48:49] Mendelt [ACCEPTED]

I'm a bit on the fence on this one for two reasons.

It's certainly a good idea to do some coding away from work. Especially if your boss doesn't give you the time to try out all the exciting new technologies that are coming out now. But I don't think this has to be in the form of a project. It's just as good just to try stuff out and never finish it. Finishing usually takes way more time than just playing with a new tool or technology. And while finishing projects is an important skill to learn I usually do enough of that in the boss's time.

I think there should also be a place for 9-to-5 programmers in this industry. The majority of people just want to make a living and watch battlestar galactica when they're at home. I've worked with a lot of people like that and although I'd rather work with passionate people who do interesting stuff when not working. I don't think it's reasonalbe to expect this passion from everyone.

(2) Great point on not finishing projects. And one thing that was worrying me.. Software can always be taken to the nth level and side projects should really be about fun and learning, not trying to destroy your spirit by never finishing :) +1ed! - Rob Cooper
[+7] [2008-09-19 15:12:01] Giovanni Galbo

You should absolutely have a pet project:

  1. You'll learn a lot of things from your pet project because it is (probably) different from what you normally do at work/school. One day some of what you learn will be useful in those areas.

  2. It keeps things interesting. Programming is supposed to be fun; but what you do things day in and day out it can become a drag. Pet projects help you to "keep dreaming" of new possibilities.

[+5] [2008-09-19 15:12:48] Anthony

Only one?

Pet projects are good. I would be less enthusiastic about pet projects if I had exams to pass. But like most IT office workers, I don't. Or If I had small children to care for. But I don't. Perhaps you should put the pet project on hold when the exams come close?

In fact, I've decided against more MS certifications, since they can only take you from beginner to intermediate on a given subject. A good pet project can be a "deep dive".

You have to be honest - the chances of your project attracting long-term users are small. And the chances of it changing the world are smaller still. Most likely, the main benefit is that you will learn about coding, and the project will be completed or abandoned within the year.

[+4] [2008-09-19 14:46:51] user13276

Absolutely - we should have as many as our schedule allows - Programming is a craft that you should be doing because you love it - not just because someone happens to be paying you for it. That being said, in my life, I tend to try to arrange to be paid for my pet maybe that totally obliterates my credibility... but I definitely think if you're coding just because you happen to get paid for it - you're wrong.

Please make this Wiki Editable. - Rob Cooper
can you post a link to instructions how to do this: i've scanned the FAQ's that I could find and can't figure it out...sorry :( - user13276
Hey no problem, dont apologise! It looks like you can only do it on creation, there is a little tick box in the bottom right of the edit box. I will update the FAQ later. Its your choice, you can leave this here, but do so at your own risk :) - Rob Cooper
[+3] [2008-09-26 13:21:06] tab

Pet projects can be your carrot or Code Kata.

Sometimes during long maintenance cycles I like to have carrot type projects to reward myself. It might be playing with some ideas in a new development environment or tinkering with something to do with some upcoming development project.

If you know you get distracted, maybe find something shorter to do, like solving puzzles Itzik Ben-Gan's SQL puzzels [1]


[+3] [2008-09-19 14:46:47] smo

Yes, I think pet projects are a great way to get experience and extra skills in areas you might not otherwise encounter in school or work. If it's something you enjoy, I think it will help prevent you from "burning out" on programming in general, which you might do if you only associate development tasks with work that you must do.

[+2] [2008-10-30 02:42:28] Steven A. Lowe

yes, absolutely have pet projects, they keep you interested in the field, as opposed to just slogging at a job.

i have several pet projects, so many it's getting hard to feed them all:

  • combining Agile/XP [1] principles and Getting Things Done [2] principles into a method that works for one developer, or scales peer-to-peer for large-scale distributed development. I call it "Extreme Programming for One - or 1000". And yes I already bought ;-)
  • next-generation grid computing (can't talk about this one yet)
  • consumer-friendly watermarking of digital media to solve the DRM problem [patent pending!]
  • creating music and forming a record label (labor of love in progress...)
  • a book on practical object-oriented programming, titled Object Mechanics I
  • working out the theory and practice of advanced formal object-oriented modeling/programming principles (can't talk about this one yet either)
  • i think about how to push the envelope of modern gaming in terms of character depth and behavior and object/player interaction (no code yet)
  • i write sci-fi short stories for fun (not all pet projects have to be coding) and to explore far-flung future possibilities of the other things i dream about. (nothing published yet)

my last pet project, simple application monitoring for .NET applications, has become my first product [3]. Always have a "fun" project to keep you enthusiastic. If your 'fun' project turns into a sellable product, even better!


[0] [2011-07-07 06:44:08] Awesomania

I'm still not at what would be called an advanced level, but coming from a non-computer science background I find "pet-projects" extremely useful. I find I learn from both pet-projects and work-related projects equally, and doing both seems to round me out somewhat.

When I'm doing a work project I am more mindful of the fact others will see and evaluate what I do, so I find it keeps me sticking to proper principles, good design, and other things I might otherwise get lazy with working only at home.

Pet-projects let me explore tools (APIs, languages) I would otherwise not have the chance to, and I meet certain problems I don't meet at work. I do learn a lot at home, and it fleshes out my passion (?) towards programming a little more being able to create with freedom. I also agree with what others have said: it keeps you interested.

I'd personally say yes, but then it would depend where you are in your career and so forth.

[0] [2008-09-19 15:04:51] Roland

You might be interested to read Chris Wanstrath's Keynote from Ruby Hoedown about this. He talks a lot of about side projects and their benefits, starting about a third of the way into the talk.

[0] [2008-09-19 15:22:13] Adam Neal

I'm fairly new to programming as a profession, but I think it's helpful to have a pet project or two if you have the time for it. As others have said, it's great to work on something completely different than your day job, and there's no deadline or pressure, you just have fun experimenting.

For example, I'm writing a very simple plugin for Rockbox [1] which is written in C. I work with .NET all day, so sometimes it's fun to use a new language that's "closer to the machine". And, if I push bad code out to my MP3 player, I get the chance to reformat it! ;)


I used to work on iPodLinux, and it was great fun too. It's a wake up call when you don't have a FPU. - Alex Fort
[0] [2008-09-19 14:36:14] travis

Yes, but only 20% of the time, like Google

20 percent time:


[0] [2008-09-19 14:37:37] Jon Limjap

I don't have one right now, but I try to be very active in speaking in my local UG and local MSDN Sessions to make up for it. :)

[0] [2008-09-19 14:42:51] JeeBee

I don't have much time for personal projects at the moment, but I am creating a lot of example code from my day to day work, and creating a library of common code blocks (vertically - database, DAO, model, functions, website/command line/GUI) that I can use in future projects.

Please make this Wiki Editable JeeBee - Rob Cooper