In "The Zone"

Recently, I've had the pleasure of being in "The Zone!" Personally, I've got to say that it was nice being there. Just what is "The Zone"?

Well, you've heard of athletes talk about being in "The Zone" - that magical place where everything clicks. The physical and mental processes are working in coordination, and everything happens just right. In any athletic, competitive sport, the professional athlete trains and works hard for those special moments. With a golfer, it's that moment when the stance of the body, the grip on the golf club, the position of the ball on the tee is just right. The golfer looks down the fairway and visualizes the flight path of the ball, the distance, and where the ball is going to land. The golfer looks back down at the ball and finds that split second of absolute peace and focus. The golfer swings the perfect arch and position of the arms, and then brings the club back down toward the ball. The face of the club strikes the ball at the perfect position and the ball follows the same path the golfer visualized. That is what it's like to be in "The Zone!"

The same can apply to programming and writing. As a programmer, it's that moment when everything begins to make sense. Here's how it works: You're on a tight schedule and under pressure to deliver a completed build of your software. You force yourself to remain focused on the tasks at hand. You've got everything in position for productivity. Energy drink and snack on the side. Your favorite code cranking music blaring on your headphones. The chair is in the perfect position for productivity, and you have the appropriate books and notes on your desk. You launch all the right software tools on your computer and if you're fortunate enough to have two monitors or computers - you have a browser up on one screen for doing Google searches. You dive in. It takes a good hour or two to get really cranking. Then it all starts to click! You have multiple code modules all open at the same time. The global and local variables are all in your head, and you know what their current values are as you step through your code. You come up with a way to shrink 20 lines of code down to 3, without impacting performance. And you just figured out a new algorithm for getting the desired functionality in your program. The music still blares in your headphones but you no longer hear it. Instead, variables, data, and formulas dance in your mind and out through your fingers. You type madly trying to keep up with the flow of the ideas, fearing that the slightest interruption or pause will cause the images to disappear. And then it happens! You hit the wall! You find yourself staring at the screen for almost a half hour and nothing has been typed. Your brain just quit. You think that you've only been working for a few hours but then you realize that you just spent 18 hours straight at the computer.

So, now you crash. You grab something to eat and then hit the sack. But 4 to 6 hours later, you get up. As soon as you're up, the ideas, variables, data, and algorithm's appear again. You can't wait to sit back down at the computer and start cranking out code again. This pace continues, for days, until you finally reach your goal - or RL (real life) gets in the way and forces you to take a break. Or in the most severe cases, your body and mind screams "Enough!" and you crash for 20 hours straight. I can feel you all nodding your heads in agreement. It's almost like a drug. You get so wrapped up in the creativity and outflow of coding that you forget about everything else. It's a great way to forget about the RL. It can actually be refreshing! But at a cost - the family and friends forget who you are. You step away from your desk for a nature break and they look at you like you're from another planet. But then, not shaving, washing, and wearing the same clothes for several days in a row, is a big contributor toward getting those types of looks. Plus, it's not healthy. Sitting in the same position for such long durations, makes you prone to blood clots and other types of medical problems. Finding the right balance is the challenge.

My recent experience has been while working on a Java application for Blackberry devices. A very tight deadline, compounded by the fact that I was adding functionality to someone else's code, and it was the first time that I did work for the Blackberry platform. (Non-standard API's! Argh!) But once I got into "The Zone", it was great!

I don't recommend going there too often. Just like with any other addictive activity - too much can lead to personal, social, and physical problems. Find the right balance. Learn to walk away on a regular basis. Get up for a few minutes and take a small walk, at least once every couple hours. Keep some healthy foods nearby for snacking - apples, carrots, celery, and nuts. (Yea, I like crunchy stuff while programming.) If you're drinking energy drinks (I prefer anything by Hansen), then be sure to also have plenty of water to sip on too. But don't over do the energy drinks! A bad case of the shakes is not going to help you write code! And if you're under a lot of pressure and stress, be sure to spend at least one hour a day doing some form of exercise. You'll be amazed how increasing the blood flow in your body can contribute to getting your head ready for more programming, especially when you've got a tough code problem to overcome. And for your close family and friends - be sure to let them know that you still love them and that you'll be back in a short while, and follow up on your commitments to them. My personal philosophy is faith, family, friends, finances, then fun. (The finances part = work.) Everyone has their own.

So, visiting "The Zone" is cool. It's geeky, nerdy, and today - even a little trendy. Just remember to not stay there, and to come up for air every now and then.

Timothy Trimble - EzineArticles Expert Author

Timothy Trimble, The ART of Software Development

Timothy Trimble is a award winning, freelance writer, and software developer. He has written a book for Microsoft Press and over 35 articles for significant computer industry trade magazines. He is the Blog publisher of The ART of Software Development which can be found via his web site at http://www.timothytrimble.info