I currently consider taking on another job, but to be honest, I am a bit daunted by the prospect of working 8 hours straight, every day. I have times when I work more, when I get into the flow, but what if I don't? Recently I have read more than once in popular blogs that 2-3 hours of real work per day are more realistic.
In previous jobs, I found 8 hours very hard to do. Maybe it is only my problem because I frequently don't sleep very well and on some days am almost too tired to work. No idea how other people consistently pull 60h work weeks, though. Except perhaps if most of the time is spent in meetings, which is not so taxing (many people doing overtime seem to be managers or team leaders, which might indicate many meetings).
Also, in all previous jobs I ended up surfing the internet a lot. I don't really like that, though - I want to give employers their money's worth. Or do I just have the wrong attitude towards employment?
I suspect surfing the internet is a bit like coffee, news sites are small little excitement spikes for the brain. But maybe I am addicted, and they say coffee makes you more nervous and less able to show consistent performance over an extended period of time. So perhaps if I could wean of the news while at work, working 8 hours would become possible? Or would my brain deteriorate completely (I should add that I usually work as a Java developer).
Edit: one thing I liked about consulting and billing by the hour is that at least if I went home early, I would just charge the client less, so I did not have to feel too bad about it. Maybe I am just not cut out for regular employment?
Browsing the web, unfortunately, generally does page out whatever you were thinking about. I think it is a bad kind of interruption.
The way to work for long periods on something is to be interested in it. Few to no people have the discipline to make themselves work on something that bores them for many hours straight without paging it out. Probably none of the people whose work I admire do. Their trick is to work on stuff they like. That's not as passive as it sounds, though: you can often redefine problems to make them more interesting. For example, if you have an otherwise boring piece of software to write, you could make it interesting by using it as an excuse to learn some new language or library; or by seeing how few lines of code you can write it in; or by trying to make it very fast.
I've found one sure-fire trick to make the programming interesting is to design the software as two components: a language for problems of that type, plus some code for this particular application. Defining languages is always interesting (at least for me), no matter how boring the domain is. Plus it turns out to be a good way to structure programs anyway.
Another handy trick, especially in startups, is to motivate yourself by using competition. Kicking a ball into a rectangular net is completely boring by itself, but it gets interesting when someone else tries to prevent you from doing it. With sufficient resistance, you have to become an artist to get the ball into the net. At Viaweb we loved making our software better than our competitors'. Even Robert could get excited about cooking up some new feature that would leave them scratching their heads wondering how we did it.