A classical book on this topic. I found more than half of it not so impressive since I already learn much from other resources, though they may originated from this book. The good thing is that the book gives many links to potentially useful resources (some already invalid, websites change so fast). Still worthwhile checking yourself with it.