How do you get yourself in the "zone" for programming? As a CS undergrad I've been finding it difficult to get focused in. I think part of my problem is I do not have "proper" workspace living in the dorms. Any ideas or tips? (Perhaps good thinking music, whiteboards? ect)
One small thing which helped me a lot was to get noise cancelling headphones. These are a bit pricey, but being able to switch on silence is great!
Truthfully, nobody can tell you about you, they can only tell you about them. That may help, or it may not.
I've seen people able to get "in the zone" on a commuter train car. I've seen people who have it broken when the air conditioner kicks in.
Here's what works for me:
Need no people talking to me. I can't keep the ideas juggling while explaining them or having other ideas tossed in to the mix. I know, pair programming can be great - but I've never been "in the zone" while pair programming.
Music is okay, but no playlists with wildly different styles, or songs I absolutely love.
It almost always kicks off when I'm frustrated by something but then have an idea how to solve one aspect of the problem... then things flow from there.
I need a desk clean enough that nothing on it distracts my attention and makes me think - no dev magazines with interesting tech on the cover, no dishes with mold on them, etc.
I need about 20 square feet to get up, pace for 2-3 steps, then sit back down. Too much room gets me too far away from the computer. Too little room and I feel confined.
As soon as I solve the problem, I'm normally out of the zone. A phone call or person at my desk will break it. Stopping to answer email "toast" will kill it too.
But again, this is me. All of this may actually be the reverse for you - You'll find it eventually, I'm sure. Just don't give up, and don't take personal anecdotes and advise or internet blog posts as absolute truth - "the zone" is very much a personal thing.
The best way I found yet is to turn off the Internet. Since opening my browser and browsing to some random site has become almost a reflex, I deactivate my network card for the time I need to work. This way I have the time to realise what I am doing before it is too late. The Internet must be the number one "Zone Killer" I know...