10 Ways to Improve Your Programming Productivity
matthewpaulmoore.com
matthewpaulmoore.com
2) I use my down time (subway, boring classes, etc.) to work out what I need to do next. I start with a high-level todo of features then iteratively break them down to smaller pieces, usually going as detailed as function signatures and database table design. Not only does it make it easier to get work done once I get to the computer, but putting the design of a feature in the back of my mind for a few hours will usually bring out the design flaws before I write a single line of code. (My red pocket Moleskine works great.)
3) If I haven't done the feature design ahead of time, when I start a new complex method, I write the method as English comments, one step per line. After that, I write the implementation of each comment in code.
Of course, YMMV. Others will be more productive just plunging into the program head first.
my tip for not being side tracked is...
make your home page on your development machine blank.
Being a webdeveloper I found everytime I open my browser with igoogle I would get sidetracked by some story.
I have also taken to getting up earlier and reading all I can first thing and then just getting on with it.
Leave Yourself a Place to Start (or: Leave work with something small broken)
is something I do all the time. I work Java at my day job, and have found that leaving out the semi-colon at the last place I touched (so that eclipse shows a compile error) really helps me get back to what I was doing the previous evening (or the friday before) so much quicker.
And the last point, get to know your tools. I am currently trying to learn emacs, but I have pretty much mastered eclipse (and other tools that I use). Not having to use the mouse to get to different views and perspectives to browsing around for files, absolutely necessary for improving your productivity at work.
In addition to the last point, getting to know additional tools outside of the development environment really helps. I read websites like lifehacker and have learned of tools like Launchy (on windows). Yes, it takes a while to get used to these tools, but once you have figured them out and configured them to your liking, you can really fly. Though i do get made fun of at work, considering the number of shortcut key combinations that I keep in my head. Invariably, someone will stop by to ask me for a key combo, and I have to type it out because a lot of the times its muscle memory.
[My apologies for the long post]
For what it's worth, iGoogle has a link in the upper right that lets you toggle between the "Classic Home" and "iGoogle". You could use Classic Home mode to do any necessary Google searches quickly without having distracting news articles on the page (and without having to move the keyboard focus to a toolbar search box).
Every now and then I see myself buried in work and having to work 24x7. When I get like that, after solving the most imediate problem, I kinda reboot to the point where I actually follow good guidelines for productivity. After a few months, though, I get all burried on work again. My goal is to make this cycle so big that I progressively need less reboots. But it's hard to keep on track all the time with such a distractive and beatiful world around.