I used to hate sloppy programmers, but now I've come to see there's an even worse beast - the *clever* programmer. A sloppy programmer tends to make big, sloppy errors, the kind you find and can easily track down. A clever programmer creates the kind of subtle errors that you spend days tearing your hair out searching for.
For example, in the software I maintain, one particular feature searched a particular subset of transactions. The author of the feature realized you could improve performance by quite a bit if you just made one tiny assumption - that transaction IDs monotonically increase with time (that is, that transaction #X occurred later than transaction #Y iff X > Y.)
In 99.9999% of cases this is true - however, under certain very rare circumstances, a transaction may be created out of order. If that transaction isn't of the type that this feature considers, no big deal. And if it is, in that one in a million chance, this feature loops over a nearly correct (but not quite) set of results. It was a very clever optimization, but in the end it created a nigh impossible to identify bug that lingered for years. In fact, it was a fluke that it was EVER caught.
I think I actually prefer maintaining code from mediocre programmers the best. They're good enough not to make an endless amount of mistakes, and they're not clever enough to come up with the subtle 'shortcuts' that nearly always work, but occasionally explode in your face.