I'm so lazy I'll work really hard to make my life easier.
In one way, I'm an optimist. When somebody tells me that learning such-and-such will give me big productivity gains, I tend to buy into it. I work to get over that hump to the promised land. Sure, refactoring that code will take some time now, but in the long run it'll be worth it! Sure, the tools are broken and annoying now, but once we've gotten them solid, we'll be working faster than ever before! Sure, STL is hard to learn, but once you know it, it lets you do things much quicker than before!
A lot of the time I'm right. And things do go faster once I get over that hump. Sometimes I'm wrong...for example, although STL's container templates helped my productivity shoot way up, STL's algorithm templates weren't much help. Boy, did I want to believe in those algorithm classes. Hell, I thought I'd never have to write code
again. I'd just hook up algorithms. For loops would be a thing of the past. It took me dozens of failures, dozens of times saying, "This is a perfect opportunity for an STL algorithm!", dozens of times realizing the time I spent trying to get the STL algorithm to work was an order of magnitude more than it would have been if I just coded the
damn algorithm myself, that I finally gave up.
Is there any way to tell the fool's gold from the real gold? The STL algorithm templates from the STL container templates?