As @Autio already mentioned, there are the tutorials from Scott Murray on his website.
You will also note that on his site, he has a link to his recent d3 book, Interactive Data Visualization for the Web.
However, that book is now available online for free, along with embedded jsbin examples. http://chimera.labs.oreilly.com/books/1230000000345/index.html
So if you are looking for a "book", this would be a great start.
Another great place to start is the set of tutorials - you could almost think of them as a mini-book - found here:
Part of what is good about these two resources is that they should encourage you to immediately begin playing around with d3 in your browser; so you are actually using d3 and exploring how it works in simple cases, instead of only reading about how it works.
The d3 wiki on github has a good deal of tutorials, and is indispensable for getting a feel for not just d3 but what's going on in the d3 community,
yet I would probably recommend starting with the two links mentioned above,
since they will provide a good base (with a sustained focus,
as opposed to a one or two page post) for then jumping off
into the other tutorials available.
Also, consider what you want to end up doing with d3. By itself, d3 is really powerful yet fairly low-level, meaning: if you just need to make a bar chart instead of a NY Times election map of 512 paths to the White House, then it may be worth looking at a tool like vega that removes some of the low-level complexity that could otherwise be involved in creating an item such as a standard bar chart. And these tools are not few in number, as can be seen in this gist listing libraries that make use of d3.
More recently, Nick Zhu, the author of dc.js charting library that combines d3.js and crossfilter, came out with a new Data Visualization with D3 Cookbook that looks promising and appears to assume a bit more of the reader than does Scott Murray's book.
There's also a d3.js intro for people who are still new to HTML and CSS: