A friend and co-worker of mine (one of the best and brightest I’ve worked with) recently left our company to go work for Microsoft. Having gone through the Microsoft interview process myself (hilariously unprepared, to the enjoyment of my interviewer), I wondered what he had done to get ready for the process. He recommended one book - Cracking the Coding Interview - which he said had been recommended to him as the bible for preparation.
I read that you learn more from a poor example than from a correct one. I don't believe this but that means my site will be a success.