There is a huge difference between "programming" and "coding." Programming includes a whole lot of think time and different people think in different ways. I tend to do a lot of work on paper, for instance. I don't know anyone who spends 8 hours a day coding, at least not consistently and probably not even on average over any long period.
I have had binges where, once I had a sufficiently complete design, I banged out module after module for 36 hours straight attempting to meet a looming deadline. Well, in truth, I only managed 36 hours once and 16 or more hours only a small handful of times. Even those periods, which unsurprisingly didn't result in my best work, were punctuated with frequent breaks for the bathroom, munchies, caffeine, and, as I used to smoke, cigarettes.
Having had those experiences I know that I, personally, can only effectively code for long stretches if I know exactly what I need to write. If I find myself redesigning something on the fly, it's time to step away from the keyboard because I'm bound to screw it up. I have to have the task broken up into clear-cut pieces.
These days, I tend to spend about as much time in meetings as I do "really working." I'll admit, though, that I've come to enjoy getting my eyes away from the screen and talking to people for awhile instead.
"My two cents aren't worth a dime.";