Do you have many projects and have a hard time motivating to complete them? Force yourself to limit them and finish them before starting something new. Record any new ideas in the meantime in a simple document.
Do you have nothing going on and always wish you had a project to work on? It may be a good idea for you to try a variety of different side projects and see what sticks as ignifero suggested.
Always carry around your to-do list in your wallet (clear your mind from to-do's).
Separate work space from home/personal space.
Limit checking email 2-3 times per day.
Work in a silent place with no or very few interruptions.
"Pomodoro technique" for completing a particular task.
Eat properly, stretch often, exercise, sleep.
Set approximate time you'll stop working.
Set mid/long term goals and have them visible in your workspace.
Stop thinking about the problem: I take an hour lunch and read hacker news. When I resume coding, I am more likely to see the problem with fresh eyes. I think of that "unproductive" pause as pushing in the clutch to change gears.
Work/think at home: In this new world of cube farms it can be hard to get uninterrupted periods to think. That hour and half I work at home before I drive into work at 9:00 is some of my most productive.
That's it.
It's habit-forming, actually. Just get over the hump.
- Work mostly during my "productive" hours (7am to 2pm)
- Always think: what needs to be done urgently and what are the babysteps to do that?
Work in small chucks with define goals and time periods. For me I would say something like. "Get X done in 15 minutes". Set an alarm for it and at the end of it set another goal. On a sheet of paper or in Evernote, document what you accomplished in this time frame.
Before you take a break, take a look notes as to what you actually accomplished and take note of any roadblocks. Often times I find that I do the run into the same wall if I don't analyze and make the necessary adjustments.
Remember to take breaks. after a few successful task. 10 or 15 minutes. I generally try to work in 2 or 3 hour chunks of time before taking a break.