don't forget to read his explanation of A*, it's really great, and pretty easy. explained in python so it was even better.
Every now and then I visit Amit's pages and find something interesting that he explains in an awesome way.
http://www-cs-students.stanford.edu/~amitp/game-programming/...