...as life grows on and I continue to be faced with greater and greater challenges, I'm often times reminded of a lesson I learned from a book a while ago. The interesting thing is, as experience often grows, the simple things we read suddenly take flight and we see exactly what they actually mean; it's like something becomes much more real to us and we start to actually understand it in a three-dimensional fashion. The lesson basically goes like this:
In picking a problem to work on, you take the liklihood that you'll solve the problem (as a guessed percentage) and multiply it in your head by some kind of relatively constant scale of importance - the result is a fairly pseudo-quantitive representation of whether the problem should even be attempted when considering other problems seen under the same light.
A good example of that is a bug you may encounter as a software developer - or a particular article you notice online, etc. You are presented with a problem of understanding the bug, or of understanding the article or of attacking a particular problem of some other type when you are also faced with other problems around you (this always happens, as there is never just one potential problem at a time we face as developers). How do you pick and choose your battles? Do you attack each and every problem you encounter? Is this feasible? The reasonable ones realize it isn't and so scale themselves appropriately.
I have started doing this more and more recently and have felt myself become more effective as a problem solver in general.