
D3.js Step by Step: A series of posts to get you started - zeroviscosity
http://zeroviscosity.com/category/d3-js-step-by-step
======
strife25
I think these tutorials are missing one of the most important parts of D3 if
you want to incorporate it into any serious application and that is the
"Enter, Update, Exit" process
([http://bost.ocks.org/mike/join/](http://bost.ocks.org/mike/join/)). The
"update" step is sooooooooooo important in applications that few to no
introductory tutorials talks about. If devs are taught about the update step
from day 1, writing future visualizations will make much more sense.
Otherwise, any update to a chart will just append new nodes to the UI.

~~~
javajosh
That's close to what is really hard about D3, but not quite it. The hard part
is that after you construct a D3 expression there's no guidance on how best to
call it again with different data (e.g. new data that will trigger the enter,
update, exit portions of the expression).

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.

