I will often find myself exhausted at the end of the day, despite not accomplishing much of anything. This used to frustrate me, but I think I've discovered why. Hacking in and of itself is not difficult. Rather, it's the getting there that becomes a problem.
Imagine a starship at rest in hard vacuum. In order to accelerate, the starship must fire its rockets but when an acceptable velocity is reached, the rocket will be able to cease acceleration. In the same way, it takes concentrated effort to get into the zone of coding but when the zen is reached, coding happens in an almost weightless manner.
That is, until something gets in the way. Meetings, class, or other interruptions can sideswipe the coding zone with the same impact as a small moon colliding with our starship. All velocity is lost and we're left off-course and disoriented. We must bring our starship back on course and fire the rockets again, this time with damaged motors.
On a good day, I can make it past one, maybe two major interruptions. After that, I'm pretty much out of my own rocket fuel. There are a few extra boosts I can add (coffee works once and then ruins my sleep). Most literature on this topic is focused around eliminating the interruptions, but I don't have that option. My college has seen it fit to schedule my classes so the provide maximum interference to my productivity. Some of you out there might be able to sympathize with meetings or other frustrations.
So what's a guy who just wants to hack away to do? "Not hacking" isn't an option. I'm drawn to it like our starship would be drawn to a black hole. Reading seems to be the only acceptable substitute my brain will take, and only sometimes. It also might be possible to get there faster and burn less fuel. Most of the advice here is psychobabble, self-help profiteering or both.
I could not go to class. Failing out of colleges seems to be something of a tradition among the greats of hackerdom. In fact, I don't plan to return to college if YCombinator accepts us. In the meantime, I'm taking the reasonable option of staying in school, so no regular skipping of class.
I've also tried moving my creative hacking work to later at night but it's difficult to start that late. The only good solution is to spend my weekends coding, when they're not already booked with homework or other events. This does open another possibility: train myself to get into the zone faster by associating a non-zone thing (like time of day) with good work.
This is an ongoing experiment. It may turn out that there's no right answer and I need to be patient until the semester's over. Until then, I'd love to hear your thoughts, either here or at Hacker News.