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.

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
–
tunnuzJan 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 GriffinFeb 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!
–
markoFeb 24 '10 at 6:13

61 Answers
61

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.

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-OJul 7 '09 at 18:45

2

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.
–
amischiefrJul 7 '09 at 18:51

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.

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.

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

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.
–
resopollutionJul 7 '09 at 20:16

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

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.

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.

Update:

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.

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.

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!

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.

As much as I love John Stewart and pwning n00bs, TV and video games are tremendous time sinks. I remember when I still played Warcraft and I would check my /played and cry a little bit. Those things are great fun in moderation, and they can both be useful tools to unwind, but you absolutely don't need to watch TV every night.

If you're looking for an easy win for free time to code, take the batteries out of your TV remote control and put a sticky note on it that says "hey, you seem bored, you should work on your pet project now."

rob a bank, bury the money and take your books and pc with you into jail. when you come out again you have god-like knowledge and money too! so you can start writing books and earn money with smart talking.

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.

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

I'm the kind of person who can't get anything done in 10 minutes. Context switching seems to be more difficult for me than for normal people, but conversely once I'm engaged, I get a lot more done.

I think this has contributed to my difficulty in getting traction on some of my projects, because as others have noted, the easiest way is to carve out half an hour here, 15 minutes there, and have it all add up.

If you also have this context-switching issue, I recommend finding hack session events, like SuperHappyDevHouse, and scheduling them waaaay in advance. These types of things are the only place where I get stuff done.

Specifically: my husband and I (both developers) have a unified calendar and when I see a hack session, I put it on the calendar at least a month in advance. That way he can plan to take the kids that day, and it's not a surprise at the end of the week. Sometimes I have to cancel, but I generally make it to an average of one event per week.

I recommend trying to narrow down and prioritize your own projects. Focusing on 1 or at most 2 projects will definitely help you get somewhere. If you try to do too many things in the limited time, nothing gets done.

If you really enjoy your hobby projects and programming, then doing that over the weekend would not feel like you are giving up something :)

Doing side projects is a great way to hone skills or interests in other areas than what you find in the work place and anyone that loves programming will naturally have side projects.

I personally sometimes take off a day or 2 from work to focus on my side projects. A bonus is if you can align your side project and your work so that you can pull in the benefits from your side project into your work or vice versa.

It's definitely worthwhile to you in the long run to spend some time on side projects. It helps you develop other skills and can open other opportunities. If you're working on open-source projects then it's also a great resume builder and provides a public portfolio for prospective employers.

You do have to be careful about who owns the code though. Many tech employers have their employees sign contracts that basically say they own all code the employee writes whether it's on their time or not. You should never sign a contract like this, but it's very common and often hidden amongst many other clauses. If this is the case, decide if you care or not, and if you do, get an exemption from your employer for this work.

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