Biggest thing: DON'T. GET. FRUSTRATED. Hang in there. Do your best. Learn what you can. Steal every minute. Enjoy the process!
Second biggest thing: Think long-term. Think, "In a year from now, I want to have XYZ accomplished." When I look at what I've done over the past 6 months, I'm really impressed. But when I think about what I've gotten done tonight ... not so much.
There are a couple of things that help me:
I live close to work. 7 minute commute. Gives me more time.
I think on my way to work. Think about designing, about new features, etc. If nothing else, this keeps me excited and engaged with the projects I'm working on.
Design during lunch or when on conference calls. Just a piece of paper and pen gets a lot of good work done. Then you have something when you go back to "work" at night.
Code every day. Even just a little.
Don't ever get discouraged. EVER. EVER! Don't ever think that you're moving too slowly. That will only discourage you. Just. Keep. Going. No matter how small the progress you're making.
My kids go to bed around 8. I use from 8:00 to 11:00 or midnight to code. I can stay up that late b/c I don't have a long commute. Sucks being tired all the time, but for me it's worth it. Also, the wife is understanding and is ok going to bed alone. She is a saint for that.
At least friday or saturday night I stay up really late (3 or 4 AM). Then sleep in and take a nap the next day while the wife takes care of kids. I try to give her a nap on the other day.
One last thing: Spend time with your kids. I find myself getting frustrated with my kids on saturday because they want my ENTIRE attention for the ENTIRE day. But I want to be programming. I have to remember that they deserve my time and that them knowing their dad loves them is about a gazillion times more important than my little coding projects.
Its now 11:50 PM and my wife just woke up and is asking me when I'm coming to bed. Blast! I just wasted 15 minutes writing this post. Hope it was worth it! Good night.