Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've got about a dozen programming projects bouncing about my head, and I'd love to contribute to some open source projects, the problem I have is that having spent the entire day staring at Visual Studio and or Eclipse (Sometimes both at the same time...) the last thing I feel like doing when I go home is program.

How do you build up the motivation/time to work on your own projects after work?

I'm not saying that I don't enjoy programming, it's just that I enjoy other things too and it can be hard to even do something you enjoy if you've spent all day already doing it.

I think that if I worked at a chocolate factory the last thing I'd want to see when I got home was a Wonka bar.


migration rejected from Jul 21 '13 at 10:38

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as not constructive by Mark Trapp Sep 26 '11 at 8:18

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.

Consider making it a community wiki. But loved the ending xD – tunnuz Jan 28 '09 at 10:36
Forgot to add important factor: my wife, who doesn't like me sitting in front of PC on spare time.. :) Thank you all for your answers ! Also for a link to a similar post. – Stewie Griffin Feb 24 '10 at 5:33
choose between the pc or your wife. Or make some agreement that you sit a designated hours, but it will propably not work because everything takes more time than you think. So if you are serious, drop your wife! – marko Feb 24 '10 at 6:13
Sell your TV and you're halfway there. – Roger Pate Apr 7 '10 at 9:43

61 Answers 61

You do work programming mainly for money.
You do own programming for your own satisfaction.
So you need to prioritize your free time.


I work on projects that are completely unrelated to my commercial work. I'm paid to work on web-based C# projects. There's no way I could stomach doing that at home. Instead, I put a lot of effort into an embedded C++ project.

The two are so different that it doesn't feel like I'm continuing my day job at home. On top of that, I learnt a lot about low-level coding that otherwise I'd never have known.


Depends upon how important your project is to you

For me, I end up

  1. Listening to music.
  2. Watching Youtube
  3. Reading a book

But if it's work, I stay up the night and complete it.


Agreed.. so you take a break to recharge. You can't do side projects every day after a day job unless you're extremely motivated.

Personally I make a list of things (like when I feel that I'm just slacking off or on a weekend) I'd like to do and prioritize. You don't find the time.. you have a limited amount and you make time for things that matter the most to you.


Usually at home I watch some short movie. But I always have pen and notebook near to note ideas that come in mind while I'm watching movie. Then, as ideas are almost always interesting, I go and try to implement it in the code. It's easy.


I find most of my problem is infact getting the motivation to start. Sometimes I'll leave work with a great idea to work on when I get home, then I get in, sit down, and I loose all motivation to do it. I find if I can convince myself to get up and start, then I start enjoying it, and at that point I don't want to stop, but its so easy to get home, cook dinner and then not move again, and then it feels like another wasted night, where I could have created something amazing!

:) to each his own.. I find myself the bigger monster is getting back to something I've started. – Gishu Jan 28 '09 at 10:44

Where I work there is a rationale of being cautious followers with new technologies. So when I get home I get to do all the "fun" stuff that we can't do at work until the technology has "stabilized".

And then simply like Jeff and Phil Haack says: "I LOVE TO CODE"


I think joining a group helps loads, i mean a group of people you meet monthly or somethin

it also helps if you say I ll do this really short thing I should take me 30 min so i ll put an hour aside and go and do it, it works for me sometimes



I've found that I seldom feel like coding when I've been coding all day at work (no, I am not a developer by profession) and am unlikely to sit down and code in the evenings, but getting an hour, hour-and-a-half in the mornings is something that is quite doable. So, these days, most of the code I write for fun is written between "necessary stuff in the morning" and "leaving for work".


I've found that I'm more likely to work on side projects on the weekend than during the week. As you said, after coding all day, you don't always feel like coding some more at night (even if it is a personal project that you're more likely to be motivated about). However, on the weekends, since you've had some time to distance yourself from programming at work, you'll probably be more refreshed and more likely to work on a side project.

While I would like to devote more time to side projects as well, I try not to push myself too hard during the week. If I get some coding in, that's great, but if I don't it's no big deal.


OK I'm going to be a bit controversial here.

I think that, having decided that you're passionate about a project that you need to force yourself to start. How many personal projects hit the buffers and never get anywhere? Most of them. Of those that do get started, how many never finish? Almost all of them.

Ultimately it's human nature to be lazy, to not want to do even more work in your spare time, etc. but what it comes down to is getting the momentum going. Once you have the ball rolling you'll find you have far more time and energy for it than you ever realised.

I'm not saying you should be unhealthy with it, or force yourself to do something you don't wanna do, rather you have to force yourself to get started and let momentum take care of the rest. Once you're doing it, you should be enjoying it. It's like the spark plugs in an engine. Occasionally you'll need to force yourself for short bursts, there are always boring and vexing aspects of any software project, but once you're done you won't regret it.

I think treating these projects like they're equivalent to watching TV or other leisure activities is the problem. You should consider them equivalent to training for a marathon - loads of work, sometimes a death march but the end achievement is so worthwhile you would happily do it all again 100 fold.

When it comes to the end of the project, shipping is also tough as hell. I wrote a blog post about shipping a personal project here, quoting Michael Abrash, a legendary coder who worked on Doom and Quake, who achieved quite stupendous results especially in the field of optimisation. Allow me to quite Michael:-

My friend David Stafford, co-founder of the game company Cinematronics, says that shipping software is an unnatural act, and he’s right. Most of the fun stuff in a software project happens early on, when anything’s possible and there’s a ton of new code to write. By the end of a project, the design is carved in stone, and most of the work involves fixing bugs, or trying to figure out how to shoehorn in yet another feature that was never planned for in the original design. All that is a lot less fun than starting a project, and often very hard work–but it has to be done before the project can ship. As a former manager of mine liked to say, “After you finish the first 90% of a project, you have to finish the other 90%.” It’s that second 90% that’s the key to success.


I love to code in my spare time. Motivation has never been a problem for me; finding big chunks of time is more difficult. For each project I try to keep a big vaguely prioritised TODO list with a one line summary of some "microtask" which needs doing and will advance the project a bit further. Then when you have some spare coding time, scan the TODO list, pick something which will fit the time available and go for it. Don't get distracted! Working on something always spawns a heap of new ideas; put them in the TODO list for another time. All those little bits of effort add up eventually. If you start running out of small enough tasks, figure out how to break the big ones down into smaller items; there's always a way.

If it's a FOSS project, aim to "get something out there" early. It somehow gives the work more purpose than a heap of code languishing in a private repository; having people actually using it/contributing is even better.


I tend to migrate my focus from one hobby to another in a random cyclic fashion. Regardless of which hobby I am presently into, I try to invent new programming projects to go along with it. If I'm into scuba diving at the moment I work on logging projects ( databases, web publishing, etc), if its ham radio, more logging, audio, parsers, scrapers, etc. Geocaching has produced a number of interesting projects concerning cartography, converters, logging, and online publishing. Whatever else you are into can provide new projects as well as the motivation to work on them.


Personally? If you're looking for ways to "force" yourself to work on a personal project, you probably haven't found a good idea for one yet. The idea behind a personal project is that it's supposed to be fun and/or useful (preferably and rather than or). If you find that you don't have the motivation to do a project, chances are that it just doesn't meet those criteria.

You should also consider the possibility that you don't have to start something. I find it much easier to code in my spare time if there's an open source project that I can write code for without having to worry about the administrative stuff that goes into such a project.


It's really hard to make time for personal programming projects when you work full time in a salaried job, commute to work and also try to have some kind of social life that extends beyond the computer.

The biggest single killer for me is housework - doing enough of that so the place doesn't look like a slum is what keeps me from programming in my spare time along with having a social life, sleep and good health. If you can find a room mate (or live-in partner) who actually helps out with that, and don't have kids you might be able to fit in a few hours.

Of course, if you want to force yourself to program remember that you'll be sacrificing time that could have been spent doing other things. Sometimes it's worth it (ie, not spending a night drinking with your mates is certainly better for the liver and pocket) and sometimes not (ie, ignoring the kids so you can sit at the computer). At the end of the day it's up to you to choose what you give up so you can program more. If you choose to give up sleep remember that the only things that suffer will be your job performance and your health in the long term.


When you are passionate about what you are doing, you find time.

Simply that.


You have to want to do it in the first place to make time for it. If you find yourself saying "I just don't have time for that," it's possible that you don't really value it in the first place (i.e. other things have a higher priority).

And that hasn't be a bad thing. If your pet projects suffer because you spending time with your family this should be considered perfectly fine :) – Janusz Jul 7 '09 at 18:30
Oh, absolutely. Just recognize that you've made your choice, whatever it may be. There's no such thing as "I don't have time for that." There're only choices to make. – Michael Todd Jul 7 '09 at 18:46

Time is never found. It must be carved out, stolen, borrowed, created and wrested away from its captors. -me

To go beyond the soundbite answer, every time I ask myself this question, I find that a stark chronicling of my days for a week or so makes it REALLY clear where that time can be taken from. The same has been true of every person who has even been willing to go through the exercise with me.

TV, sports, movies, sleeping in on weekends, sleeping in on weekdays, or even less "obvious" things like cleaning your own house and mowing your own lawn instead of paying someone $12/hr to do it for you may currently be using time that you've deemed more important than the personal project.

I've asked those dynamos who prompt such a question for a breakdown of their day rather than the simpler question of "how they find time". Inevitably, I'm humbled by the sacrifices they've been willing to make to carve out an hour or 1/2 hour per day.

In some cases, I'll even go so far as to say that the sacrifices have been detrimental: no exercise (guilty), fewer friends and social interactions, etc.

Personally, my greatest productivity, either in learning new stuff or working on my own projects has come from the fact that I never watch TV or movies without a laptop in front of me. I pretty much just listen to TV and spend that time reading and writing code.

Lavoisier's law: "Rien ne se perd, Rien ne se crée, tout se transforme". – LB Jul 7 '09 at 18:35
+1: I've never found time for personal projects. I always have to create it. – Greg D Jul 7 '09 at 18:39
For those of us who don't understand French, Lavoisier's law states: "Nothing is lost, nothing is created, all is transformed." – John MacIntyre Jul 7 '09 at 19:43
It's me, actually it was composed on Twitter and copied to here. Twitter: @jwynia – J Wynia Jul 8 '09 at 2:32

I don't. I suffer from the same problem that you do: I have a wife and three kids. On top of that I am working on my Masters degree. I have tried several times to start up some side projects and every time I do something comes up (I have to coach my sons soccer team or something else).

Here is what I am trying lately and it seems to be working (although it is killing me a bit). You need to set aside time after everybody else has gone to sleep. I put my kids to bed by 8:30 - 9:00. After they are in bed is my time. Now, this conflicts a bit with Wife 2.0, but if you regulate it to three nights a week, the other 4 belonging to your wife, then you should be able to get some work done AND spend some time with the family. You really have to stick to it, almost like a routine.

So far I have made some good headway in a project that I am working on and everybody seems to be happy. The only drawback: I'm tired...

I'm pretty much in the same boat. After talking with her about it, she finally realizes how much I'm "hooked" on programming (as much as she is about her books) and so a couple of nights a week she sits with her book and I sit with my laptop and code. Some times I try and steal some extra time after everybody has gone to sleep, but all in all this arrangement has worked out well. – Dillie-O Jul 7 '09 at 18:45
That's why I make the time on work nights/week nights. This way I am not cutting into family time. Family is way more important than your side projects: always. I don't care if your project will save humanity, don't be 'that' guy/gal. – amischiefr Jul 7 '09 at 18:51
just monitor your health - chronic undersleep and stress ages you prematurely! – Steven A. Lowe Jul 8 '09 at 18:51

I try to put in an hour or so every couple of nights into the pet projects. The main problem for me is how to organize the project in such a way that you can actually get something done within that time.

If you can split up the project into small enough chunks, you can get a clear part to do, or part of a chunk done every time you sit down to work on it. This way you have a clear idea of what it is you want to accomplish today. If you get it done, enjoy the rest of the evening with your family. This ensures that a another day you may put in a bit more time than you would normally do. Don't overdo taking that extra time though!

Every now and then, instead of doing the next chunk, take the time to figure out what the next steps are going to be. Then you have a fresh pile of chunks that you can hack away at.


If you really want to work on the project my advice would be to try find a time in the week you should be able to reserve for the program. The best should be a weekday evening because weekends can't be planed reliable. So maybe you say Wednesday from 8 to 11 I work on my project. You can make this clear to your family and yourself.
So while working on the project everybody knows this is his project Wednesday don't bother him.
And while not working on your project you don't have to feel guilty to relax or spend time with friends/family in front of the TV instead of working on your project.

This sounds very simple but it is hard to get their and have the discipline to keep the schedule. But after some weeks working this way you should get used to it.


Turn off the TV (and Hulu, Youtube...). The average American watches about 150 hours of television each month. Even if you watch just half of that, it's still a large chunk of time during which you could be productive instead.

You can also try waking up a bit earlier each day until you have a decent amount of time in the morning.

I'm not sure that average stackoverflower is like average American. But you're still right: it's better to close this site and start writing code:) – Anonymous Jul 7 '09 at 22:38

break it into bite-size pieces, and eat them slowly

see also Getting Things Done


Don't talk yourself out of contributing due to how little time you have available. If you have 10 minutes, sit down for 10 minutes and actively engage.

Yeah, it's frustrating to only have 10 minutes, but you've got 10 minutes, so apply yourself.

If you genuinely "don't have the time", that 10 minutes won't grow. If you do have the time, there's nothing like sitting down and doing to quickly discover it.

10 mins is good, but because of problems switching ( it does not give that much time in the end. – Peter Kofler Jul 9 '09 at 10:51

I use mass transit, and can usually get about 40 minutes of time to work per day by letting someone else drive. It can be difficult because I'm working offline, but that's one way that I've been able to work on my own development.


I work 12-16 hour shifts (sometimes as high as 18 hours) so when i finish work i am knackered and have little time left to sleep let alone have a pet project. What i do is on my way to and from work i plan what i want to achieve that night by splitting it right down and carefully micro managing. It takes a lot of work, dedication on both my half and my family to make sure i spend what time i need working and then i plan some time off to spend with them too

Marc is military ... he's been 'optimized'. ;-) – John MacIntyre Jul 7 '09 at 20:10

With whatever your chosen technology is, push your skill level as far as you can. That way you'll be able to get more done in less time, i.e., you'll be creating time, and violating laws of physics. You will thereby tear a hole in the space-time continuum and destroy the universe. Way to go, smart guy.

Kidding, but the skill thing is a serious suggestion. Get to know your language, frameworks, libraries, and tools.

You may or may not like Ruby on Rails, but anyone would have to agree that it's a pretty big, complex piece of software. According to its creator, it was originally developed as a side project within a ten-hour per week time allocation.


Sorry, correction: it was Basecamp, a Web application written by the people who developed Ruby on Rails that was done in ten hours per week. The example still supports the point that it's possible to build a big, complicated thing in your spare time.


For me at least, it's no different than finding time for a model train layout or a book or studying a new technology for an upcoming job. If there isn't time, there isn't time -- but if there is, it has to be something I'm legitimately interested in and have a reason to participate in beyond "I'm contributing to Open Source". That's like reading a book "Because you want to read," even though there's no interest in the subject matter itself.


a) find a job where you can work on pet projects in the office while still getting your work done

b) get a divorce

c) lose the custody battle

d) profit

e) quit job b/c your pet project just got funded $30m

f) remarry your wife, they will like the new house

You don't have to take care of the kids on most days, giving you more time to work on pet projects. But you will probably get to see your kids every now and then for special events, and not for the boring day-to-day stuff, which means they will love you more. The kids will then implore mom to get back with you, and this + the fact that you are now rich will make it an easy decision for mom. Now finally you will have time for the family, and you can take all those vacations you dreamed about, probably in a span of 1 year, and still have money left over. – resopollution Jul 7 '09 at 20:16
They say there's an engineering solution to everything. – Ethan Jul 8 '09 at 18:50

I'm single at the moment, thats how. Not saying this is a solution or no social life, that is just how I currently have time to work on projects.

Oh, and I rarely watch tv or watch many movies.


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