I don't consider myself really in the Dynamics CRM space. My area is SQL Server. Currently I'm spending most of my time in the Business Intelligence space, with plenty of stuff with relational databases as well. But that didn't stop me from picking up a CRM book recently.
Jim Steiger's Programming Dynamics CRM 4.0 was the book in question, and I was pleasantly surprised. It seems to be very comprehensive, and well written as well.
I can't say that I tried all the examples — that would be lying, but I do feel that I have a much better understanding of what's involved in programming against CRM, and that I have a really good resource available in this book.
I do keep wondering about how much I'm allowed to hack into the database structure with CRM. This book makes it very clear (as do other CRM experts I know) that I shouldn't, but I keep looking out for a situation that will persuade me to start playing. I'm not talking about massive changes, but small things, like additional indexes for example. This book is likely to persuade me not to dabble, as I want to do things its way. Whilst nothing jumped out at me as being a really good argument not to (although I might've missed it somewhere), I felt myself being guided down the proper way of programming CRM, and now think that if this book recommends a particular path, I'm probably going to follow it as closely as possible.
So now I'm wondering how long it's going to be before I find myself involved in a CRM project, and wondering whether I'll consider myself 'learned' or not. I still know there is a lot to learn with CRM, but I also know I have one of the best resources out there on my bookshelf.