Bug Hunting Should Be Taught To Beginners post
It's really a shame that most advanced bug-hunting techniques aren't learned until you've actually had to go through them. I wish that I had seen this post on effective bugfixing techniques when I first was learning PHP. I'd say my bug-fixing skills are about 10 times better than what they were 4 years ago. Working on a complicated site will do that to you.
I think the biggest lesson you can take away from that article is to NEVER assume anything about the way your code works. The weirdest bugs are the ones that result from assumptions on how things work. This is why unit testing can be a big help, as it can let other people verify that your code is behaving the way you assume it is.