They read a problem, write a solution (sometimes!), run it, and if it doesn't work they're lost. No understanding of how to break the problem down, no understanding of any testing or debugging techniques. Grrr.
It's because they're newbies (okay - some of they are arrogant f**kwits - but some of them just don't know how :-)
I've taught programming, and introducing people to testing and debugging is harder than teaching them how to code. That process of breaking a problem down isn't innate - it has to be learned.
Sometimes people aren't trying because they don't understand how to try.