But however you slice it, you cannot get past this one fact: it is an unnatural thing to sit in front of a glowing box for 4, 6, 8 hours a day pecking on little things with your fingers. This type of work has never existed before in the history of our species, and we were not made to do it. I think that's why we have to be very careful not just about the amount of time we code, but all the other things that go with it.
The job needs to be important. The code can just be the code. So if you've spent all week punching the clock and suddenly wake up early Sunday morning with an idea about how to refactor that solution to work 100x better? Sounds good to me. If you code 90 hours a week and produce crap? Don't need you so much.
The problem is that because it's so unnatural, all of us who do and manage this work confuse activity with progress. So the guy putting in the long hours pecking away looks like he's doing something of greater magnitude -- both to himself and others. But it doesn't work that way.
Have passion for the job and for the problem you're solving. Programming is just one of many tools you need to accomplish that. Other tools are a good night's sleep, exercise, interacting socially with others, and so on. But if you don't have passion? I really don't want to work with you. Life's too short to spend 40 hours a week doing stuff you are apathetic about or with other people who are just going to drag you down.