I can't say I am a good programmer but I've been earning money for programming last decades. I've thought I was born for programming and people said I was very good at it - at some point.

But after 10 years of programming, I feel my programming efficiency is not as good as others. Of course, CS education is way better now and many young programmers are smarter than me.

But one of my problem is that when I am executing a task, I tend to dwell on specific problems I am facing with the task rather than focusing on completion of the task. I understand to keep thinking about it does not solve the problem. But I habitually do that and easily become exhausted. I hope I am not the only one feeling in this way.

Did you feel the same feeling? If so, how did you get rid of this terrible habit?


4 Answers 4


One word; done. Focus on it, strive towards it, understand that it is what matters.

Preparing for the ifs will generally equate to unneeded perceived value that allows the programmer to feel better about a situation but it unfortunately in no way delivers additional value.

Always remember that done equates to immediate value and focusing on anything less than moving towards done is a waste of time, effort, and energy.

  • Unfortunately, defining "done" is 80% of the battle, I've often found.
    – cdeszaq
    Feb 2, 2012 at 14:08

Many folks have difficulty focusing on tasks, and I am one also. Unfortunately, this question may not receive a good answer on a venue such as this, where I suspect most people reading this cannot really understand. Furthermore, this seems to need expertise in psychology, and I doubt that very many people here have such expertise.

That said, I'd like to point toward the work of PJ Eby, a programmer turned "Mind Hacker". He says that people are "naturally successful" or "naturally struggling". His goal is to help naturally struggling people become naturally successful. Some of Eby's work can be found at:

Google for other places he posts, including Twitter. Unfortunately, it seems that PJ isn't updating these sites much anymore; presumably he's busy helping his paying customers. However, you can learn a bit from the writings that remain on line. (Note: I'm not PJ Eby, nor do I know him personally or derive any income from posting this. However, I post anonymously due to my earlier statement about having difficulty focusing myself and not wanting to leave such breadcrumbs for possible future employers to follow.)

Finally, if reading and self work doesn't lead to improvement, seeking professional help, whether from a personal coach or psychologist, might be helpful here.


It sounds like you are experiencing a degree of the "all for naught" fear, the fear of being torpedoed. I don't mean to imply this is an aberration, it is build into us by evolution and it serves its purposes -- after all, it is central to risk mitigation. You try to tackle the biggest threat to success first.

But the danger is that it can be paralyzing. You need to manage your morale and confidence by sprinkling in tasks you can complete.

For instance, if I am writing a function or module where I don't really know how to go about what I am about to do, I don't fret about the best way or the big picture -- I let the problem tell me what its about in little steps. So I just keep coding until I have enough framework to detect how it REALLY needs to be, then start refactoring and implementing that.

You just allow yourself to think-in-code... you are sketching out things and you have to have faith that all the messiness will eventually align and collapse into the formalized solution.


Personally I find TDD helps with this: The test first approach puts emphasis on the usage and reason d'être for the production code, and doesn't let you stray away from the task at hand.

Not the answer you're looking for? Browse other questions tagged or ask your own question.