3 Tips For More Productive Programming

Ever find that you just can’t get “into the zone” with your projects? Do you keep putting off your hobby because you’re too tired from the day job? Read on for some ways that have helped me overcome the part-time programmer’s block.

1. Immerse Yourself in Code

If you’ve ever read Steve Pavlina’s articles, you’ll understand this tip a lot better. If not, step one is not going to be immerse yourself in code, but instead head over to Steve Pavlina’s site and read his articles on motivation and getting things done.

When I say immerse yourself in code, I don’t mean overwhelm yourself or force yourself to just sit and stare at code all day. I’m saying wake up each morning and start telling yourself that you WANT to program. During the day job, as often as you can without affecting your job performance (that day job is going to be real important down the road when you start paying for web hosting and things of that nature) day-dream about programming. Think about what you’re going to program, the steps involved and start making a map for how you’re going to go about programming whatever it is you want to program.

Always think of it in a positive way though. This is a very important part of this step. If you ever find yourself at your job saying “darn, I don’t get off for another 4 hours and then I HAVE to go and program…” stop immediately. Don’t program. Take a few days off from it and relax. Come back refreshed and fired up with new ideas.

What I found works for me is during my day job, usually about once an hour, I’ll just start envisioning what I’m going to be working on when I get off. I plan out what I’ll need to learn to accomplish it, where I’ll find that particular information, and how I’ll go about tying it into my project. If I already know how to program it, I’ll just start thinking about specific implementations.

2. Use a TODO List

I’ve said this before but I’ll say it again. Programmers are great with TODO lists but no so great with organizing said lists.

Everyday before you sit down to program, write up a quick TODO list for the day. Make it realistic and achievable. As soon as you finish this list, you’re done. No more programming for the day.

What I’ve found is a great help for me is to keep a TODO.txt file in my project. Everyday when I sit down to program, I fill it out with between 3 to 5 things that I know I can get done in a few hours max. I usually try and stick to a time-frame of no more than 3 hours of straight programming. If that means I can only get one large task done, so be it. If it means 8 small tasks, so be it. The time spent working on the project is more important than the number of tasks you finish.

Realism is the key here. When you first start a new project, you may be tempted to sit down and write up a nice long 30 item list of things that need to be done and then spend your day bouncing through the list and deciding which items you want to do first. When I do this I usually end up spending more time choosing what I want to work on than actually working on something useful.

However, don’t shoot down that 30 item list altogether. Smaller tasks can be more motivating because you feel like you’ve accomplished more in your day. If you must have that 30 item day, break down your larger tasks into smaller tasks, but keep everything in the form of a 1-2-3 list. In other words, assign the order in which you work on a task so that you don’t get caught up deciding “what’s next?” all day instead of programming.

Just keep in mind the time-frame of whatever you choose to work on. For example, when I start a new project, I know I can write the necessary Windows code in less than an hour. I’ve written that code so many times I can do it with my eyes shut in less than an hour every time. So I usually only count that as about a third of the total tasks I’ll be doing in that particular day.

As you go through your list, mark off what you finish and when you’re completely done erase the file and shutdown your compiler, you’re done for the day. I usually keep two separate files, one to keep a record of all my TODO files to date, and one with the daily TODOs. The accumulation of all my TODOs is stored in one file as a record for myself to help me stay motivated by seeing all the progress I’ve made, and one is just a list of things that must be done in my current programming session.

3. Minimize Your Distractions

This one is key to staying “in the zone.”*

Do whatever is necessary to stay focused on the task at hand. I use instrumental music to tone out background noises (music with singers tend to distract more than they aid as your mind tends to follow the lyrics). I lock my door so nobody disturbs me. I use every keyboard short cut that I possibly can to avoid touching the mouse (you’re a lot more likely to pull up your web browser or start doing something else when your hand is on the mouse). Sometimes, when I find myself really wandering, I’ll even unplug my internet.

This step is extremely important. Each time you lose your focus, you’re losing valuable time. For me, every time someone or something distracts me, it’ll take me a good 15 minutes to get back into the zone. This is just wasteful. So when I plan on doing some serious, in-depth work on my project, I do everything I can to defend my state of productivity.

Utilize these 3 steps together and I promise you’ll be a much more efficient programmer.

* I keep saying “in the zone” but if you’re not familiar with the term as it relates to programming, I’m probably just confusing you. When you’re accustomed to a programming language enough so that you don’t have to think too hard before you start writing each line of code, you’ll find that after 15-20 minutes of programming you feel like you take a step out of your body and the only thing you think of is the code, especially if you’re a decent typist and you don’t have to think about the keyboard either. This is the optimal time to write code as you can finish up thousands of lines of code in mere hours, and most of it will be effective, legible code.

This article has been brought to you by Steve Healy. If you enjoyed it, take a look at this article: Kick-Start Your Productivity.

Steve is currently working on becoming a full-time indie game developer. His blog is being used to document the creation of his first indie game, which will hopefully be released for free.

Leave a Reply