I recently finished my review copy of 'Practical Malware Analysis'. I enjoyed this book for a few reasons. Each chapter concludes with some simple questions/labs to test your knowledge and give you a chance at some hands on experience related to the content you just read.
Although the title leads you to believe its strictly a malware analysis book theres a lot of good content for any new reverse engineer. This is especially true for the static analysis sections. There are also two chapters in this book that I think help it really stand out among similar books: 'Chapter 20: C++ Analysis' and 'Chapter 21: 64-bit Malware'. None of the information in these chapters is new research but as a beginner you would have to sort through dozens of research papers to find the same content. They are a great introduction to both topics.
If you analyze malware for a living or are just looking to understand how software reverse engineering works then you won't regret buying this book.
(I originally intended to post this over a month ago. Better late than never!)