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/). 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.
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.
3 comments
[ 5.0 ms ] story [ 109 ms ] threadThe 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.