I work as a full time developer. My workplace, however, is very limiting in the technologies and  programming languages I can use.  All of the work is done in C++.   

It is clear that C++ is rapidly losing (or maybe already lost)  its leading position.  (please don't flame me, I have years and years of C++ experience, and I love this language, I am merely stating a fact). I have a few ideas for Java/Android  projects as well as a project I would like to implement in C#.  I see this as a way for me to stay current with the job market's  trends and I hope that it will help me find my next job in a more up to date area. 

So here's  the problem:

My normal workday is 10-11 hours, after finishing with the kids and house chores I get about 1-2.5  hours before I am too tired to think, much less code. At that point I am going to bed frustrated, disappointed with myself for not being able to stick with my plans, and then I wake up the next morning to do it all again.

I have a few hours more during the weekends but clearly I would need to do something different if I want to reach any of my goals.   

Is there any way for me to make better use of the time I have? 
Did any of you guys have a similar problem, and had successfully resolved it?

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.

I'm in a very similar situation. I have a full time job programming (PL/SQL, .NET, Javascript). Wife, two kids, house. I just finished a project -- trevorschinesereader.com.  I started it last October.  It's not the greatest ting in the world but I'm really proud of it.  Now that I'm done with it I've started learning iPhone programming.  It's a lot of fun, and for me, it's much more about the process than about the outcome.  I love learning and love gaining new skills and love building things. I try to remember that when the frustration sets in.

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.
