D3.js Step by Step: A series of posts to get you started
zeroviscosity.com
zeroviscosity.com
The other tricky part is that the D3 expression itself is almost never enough to yield a usable visualization - and yet tutorials spend a lot of time is spent building that expression as if it was. The real complexity of D3 is dominated by everything other than that core D3 expression: the helper functions, designing for dynamic data, and so forth.
You see this a lot, when a teacher breezes through the hard stuff and then spends a huge amount of time on what is obvious. It would be like taking a general relativity class and the teacher spends 5 minutes on the theory and the balance of class on how to take derivatives of continuous functions.