I've found #3 doesn't actually work all that well. The resource you need to draw on to actually finish things is "executive function", the ability to make yourself do things even if they're boring or unpleasant. This is drained by all jobs - that's why you get paid for having a job.
I find that I still have energy to think about programming when I get home from work - that's why I'm on Hacker News or Proggit. I just don't have energy to actually program. Those are two different skills, and it seems actually programming draws from the same pool of energy as keeping customer's orders straight, not from the pool of talking about programming.
Yeah, that's basically how I handled it when I was doing my own startup on the side while working a day job at someone else's startup.
It can be done, but it's very stressful, both because you're pretty much spending all your waking hours either working or "at work", plus you usually have actual responsibilities at your day job that you're trying to get done while already tired.
I find that I still have energy to think about programming when I get home from work - that's why I'm on Hacker News or Proggit. I just don't have energy to actually program. Those are two different skills, and it seems actually programming draws from the same pool of energy as keeping customer's orders straight, not from the pool of talking about programming.