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

share

migration rejected from stackoverflow.com 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.

3  
Consider making it a community wiki. But loved the ending xD –  tunnuz Jan 28 '09 at 10:36
2  
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
3  
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
7  
Sell your TV and you're halfway there. –  Roger Pate Apr 7 '10 at 9:43

61 Answers 61

Sleep? What's that?

One way to carve time is to get up a bit early. Work into it. Just set the alarm 5 mins earlier each day for a few weeks and after a month you are getting up 2 hrs earlier. Move to a part of the house, make sure the laptop is quiet, and off you go.

You might find that you are more productive starting at 4am when everything is quiet then at 10pm when you are tired.

share
2  
Sorry, but cutting out 2 hours of sleep per night to code is not a feasible answer IMO. Sleep deprivation has very real health consequences. –  mockedobject Jul 7 '09 at 20:54

Downsize. I started several big pet projects and I realize that I don't have time for all of them. I don't watch Tv and don't have too much other distraction but nevertheless a full time job and eating consumes a lot of time. What I decided is to try smaller projects that will go well with only 15 hours a week lets say.

Share. Work in a team with other programmers, designers. By your self is pretty tough to finish a project, even a pet one.

share

Follow this 3-step process:

  1. Have a realistic, clearly defined goal
  2. Decide in advance on a (flexible) schedule to achieve the goal (evenings from 8-9pm, for eg)
  3. If possible, break up the overall goal with sub-goals, so that you see iterative improvement on a semi-frequent basis
share

I live near my job. That saves me a lot of time. It takes about 15 minutes to get to the job instead of an hour or more.

share

Overestimate, overestimate, overestimate! As long as your pet projects have some relation to your actual work you could make time by overestimating your daily tasks. If your project manager refuses to accept your aggressive estimates, refer to Painless software scheduling and make sure they understand that they don't want to get into a fight about who had the right estimate (it will make you work slower to prove them you were right).

When the timing is right you pull out your pet project and save the day. In my opinion this is how much of the innovation is done today.

share

The combination of cutting DRAMATICALLY back on television watching, and completely giving up Worlds of Warcraft seemed to greatly increase the time I had for programming pet projects. It was like magic :-)

share

I think you will find that no-one else can answer this question for you.

You have to look at how much time you want to spend on your projects vs what else you would be doing. Only you can decide the relative worth of these choices.

I will however add a note of caution. Do you own your own development tools at home, or will you be using dev tools from your work? Does your employment contract allow you to do "outside" work? Some contracts/employers can be quite generous, and others very restrictive.

share

Basically i spent 8 hours/day for work and additional 3 hours/day for my ideas. And i work on Saturday (8 hours) for my ideas. If additional time is needed for my ideas, then i extend my development period instead of adding more time to the existing above schedule

share

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.

share

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.

share

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.

share

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.

share

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.

share

Faced with the same problem, I am now trying to use a bug tracker (I'm using the free FogBugz Startup Edition). I try to split my large pet project into smaller tasks. I use the FogBugz time tracking to mange the amount of time a task takes (anywhere from 10 minutes to several hours for a given task). When I have a few minutes here & there, I login to FogBugz and see what I can accomplish with my free time (which would otherwise be spent surfing digg, hulu, etc.).

I'm just starting this strategy out... So far so good.

share
1  
FogBugz... that's a good idea. That would free up my whiteboard! –  NitroxDM Jul 7 '09 at 19:35

Currently my job involves working constantly. I don't get time for pet projects apart from to eat.

share

It's like anything else in life, you have to make time for it. Whether it's coding, exercise, church meetings, hobbies, etc, it'll involve sitting down with your spouse, family and possibly boss to negotiate a time you can dedicate to it. As an example, I take care of my son on Mondays and Wednesdays so my wife can do her personal things, she watches him on Tuesdays and Thursdays so I can do mine, and Fridays, Saturdays, and Sundays are our family and church times.

Things will come up as they always will. Let them happen and pick your schedule up again next week.

share

I have an hour commute on the bus. I work on my pet projects then.

share

I think you're in the same situation as most people. If you want time for a pet project, you have to give up time somewhere else.

Personally, I am not married, have no kids and watch an average of 0-2 hours of television a week. My girlfriend and I do live together and I do have a full-time job but I don't see that as "taking up time."

I have all the time in the world for a pet programming project but then I'd have no time for other activities such as "getting married" or "having kids" or "coaching a team." If I wanted those things it might be similar to your question: "How do I have time to raise a child when I'm programming so much."

Just a different perspective.

share

I think one of the tougher things to deal with the context switch from one project to the other. Not only is it tough page everything back into memory, but one has to deal with the (often ambiguous) choices about which project to prioritize. I think touching it's important to touch both projects on a daily basis. This is a no brainer for your day job, but harder for the pet project.

share

Prioritize your activities and work on the things that are more important in the long run first. Before partaking in a time consuming activity, ask yourself, how important is this in the big scheme of things? Make your pet project a higher priority activity so you can actually spend some time on it.

share

If ever there was a reason to support better public transport in the US! Some buses in Edinburgh even have free Wifi :D

Couple that with a nice new netbook, and I bet you could get a fair amount done :)

share

Incorporate Your Pet Project Into Your Work

Many times you can find some tie-in between your job and a pet project.

Or, take an interesting part of your work related code on as your pet project. Employers are much more open now to open-sourcing things which are not mission-critical or give them some competitive advantage. Icing on the case is that you can get free testing and sometimes get some improvements back.

Here's a small project I did that I spun off this way. It's an Oracle Python wrapper generator. It' really handy if you use a database with Python.

http://code.google.com/p/orapig/

share

I gave a week in month for the office work and pet project. In that week I am 100% for these two works and rest I share time with family and office work.

My family is well known about this schedule.

One of my week end in month is fully devoted to pet projects.

share

I try to devote an hour every day to one of my projects. It's hard to do most of the time, but when you do it you'll feel so much better. Offer yourself a reward if you get your hour in.

An hour a day may not sound like much, but it adds up quickly.

share

1 word - commute

share

A really good way to get into it is to find your local developers group and join them. You'll find it very motivating.

I had a similar issue. I was a full-time PHP programmer but wanted to learn and make a few Rails apps. I joined my local developers group "The Brisbane Ruby on Rails Brigade" and they have regular (once a month) "Hack Day" where we all get together for about 8hrs on a saturday and just code.

It's a great way to learn from others as well as be "in the zone"

I definitely encourage you to get into "spare time programming" it really puts the fun back into coding as you're building something for yourself.

share

i would to suggest you to work on small projects like rubyquiz.com .

share

There are some excellent answers here. There are couple of things I tried and they seem to work pretty well for me.

  1. I always knew getting up early is a good solution. But I never knew how. These two articles changed my life! Thanks to them, I am now an early riser with at least 2 hours in hand to do anything I want to do. How to become an Early Riser and more importantly How to Get Up Right Away When Your Alarm Goes Off
  2. Once I make time, I really needed an light weight and agile technique to spend the time effectively. Otherwise, I could end up wasting it all for half-a-second laughs (read facebook, twitter, etc). I found Pomodoro Technique is very close to what I was looking for.

I believe this could work well for you as well.

share

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.

share

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.

share

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