
Teaching a Semester of D3.js - bootload
http://blogger.ghostweather.com/2016/01/teaching-semester-of-d3js.html
======
SeanDav
I followed the link to some slides created by the Author at:
[http://ghostweather.slides.com/lynncherny/deck#/](http://ghostweather.slides.com/lynncherny/deck#/)

This is not a direct criticism of the Author, but what is it with the penchant
these days to use absolutely minimalistic, flat interfaces with zero help on
how to use the interface?

I blame Google for starting this and all the other sheep who blindly follow
them without actually asking what an interface is really meant to do. They
have this insane desire to trend towards an interface which ultimately will
consist of a slightly beige-grey background with not a single other thing on
it. Google et al, seem to be on a never ending quest for an interface that is
both so simple, it is practically brain dead and yet requires advanced degrees
in "find the hidden button that does something" and "try separate the
interface from the data being presented".

Microsoft have picked up the torch and are running with it with unbridled
enthusiasm. Their new Office interface is a master class on how to make it as
difficult as possible to determine where my data ends and the interface
starts. All done in a tasteful shade of death-bed grey.

~~~
hellofunk
Hilarious, but you are right. And actually, while we're throwing blame around,
Apple gets some credit for this problem as well. The "invention" of "flat
design" that was whole-hog adopted in iOS 7 has left plenty of room for the
problems you describe. It becomes less clear what is visual content to
consume, what is a control to interact with, and what is actually both. I
think all companies decided a while back that a computer interface can be like
a magazine page. Except you don't press buttons on a magazine page, so it's
not a good strategy a lot of time (in rare cases you see it handled well).

------
sandGorgon
i keep wondering - whether the combination of ES6/Typescript + immutable.js +
lodash + d3 + asm.js makes for the true next generation of R like analytics
tools.

The way that Periscope.io works is probably indicative of the direction of a
JS based analytics/prototyping framework.

I suppose the first step needs to be a Jupyter notebook in ES6.

~~~
gedy
As much as I admire D3, it using the DOM as its data model has made it
difficult to work with (for me at least). I've actually had a much better
experience using SVG and RactiveJS. It's animation/tweening of property
changes is very handy for designing visualizations.
[http://examples.ractivejs.org](http://examples.ractivejs.org)

~~~
cpfohl
I was coming in to mention Ractive actually. Designed by the team at the
Guardian for easy data vis by non programmers. I've found that teammates who
look at it pick it up in about 30 minutes. All your have to do in a course is
teach the HTML and CSS and Ractive pretty much makes the interaction easy

------
jonesb6
"this course was meant to be on interactive data visualization"

So the best way to do this was to teach journalism students how to program,
how to program for the web, how to program with javascript, how to program
with third party libraries, and finally how to program with the third-party
library d3.js?

I feel like this is just an extension of the thought process "everyone should
learn to program because learning to program makes your life better".

I sincerely appreciate the write-up and will definitely be coming back to this
blog next week to see the students work.

~~~
Ronsenshi
I agree with general sentiment that teaching journalists programming is not a
realistic option - not only is it time consuming, but might also simply not
workout for people who chose to be journalists. It is a humanitarian area of
knowledge, after all, not technical. Of course, some might have affinity with
programming, but generally speaking (from my experience at least) young
journalists won't appreciate the idea of extra class where they have to learn
programming.

However I believe infographics and data visualization specifically are
important when trying to convey densely-packed information so it has to be
taught journalists in some form. They should know that given some data they
can pick certain type of visualization that would work well within the
article.

I think some general course on data visualization without jumping into
programming would work fine - explain what data visualization is, how it is
done, what kinds of data could be used with it, what kinds of representations
of data are available and so on. Plus share some resources where people can
view various visualization samples.

~~~
tomcam
I like it because it gives the journalists a vocabulary and a firm sense of
what can be done, even if it ends up being assigned to someone else for
implementation.

------
stared
"Because the general practice of learning D3 in the wild is to take examples
and modify them to fit your own data, I wanted to support that in my class."

I like this one a lot. When I am teaching data science, I often use data which
some errors I do know.

I think that we need more of learning on real examples, not polished ones.

------
spot
> For some reason, using a server really stumps new web programmers.

With Beaker you can program your client and server all on one page in one
document. It makes working with D3 really easy. Here are some examples:

D3 JS and Python:
[https://pub.beakernotebook.com/#/publications/560c9f9b-14e6-...](https://pub.beakernotebook.com/#/publications/560c9f9b-14e6-4d95-8e78-cc0a60bf4e5a?fullscreen=true)

node client and server:
[https://pub.beakernotebook.com/#/publications/560b4be1-2d91-...](https://pub.beakernotebook.com/#/publications/560b4be1-2d91-497b-b84b-ec91cc2d5e17?fullscreen=true)

------
jefflinwood
I thought it was great that you brought up debugging as a specific pain point,
especially in the context of beginning programmers. I teach a semester-long
class on programming iOS apps to journalism majors, and debugging is a really
complicated topic once you get outside the command line.

I usually take the opportunity to explain what's going on when students think
their iOS app has crashed after inadvertently setting a breakpoint (it's very
easy in XCode to put one in) to show them that they can now see the state of
the running app.

------
s3nnyy
That article reminds me of
[http://blog.tagesanzeiger.ch/datenblog/;](http://blog.tagesanzeiger.ch/datenblog/;)
these Swiss guys are trying to copy the "datablog"
[http://www.theguardian.com/data](http://www.theguardian.com/data). I think
the tagesanzeiger.ch guys make even better work sometimes and they make heavy
use of D3. (btw. if you look for a job in Zurich, I am a tech-recruiter)

------
pacomerh
This is excellent Lynn, I'm already following your repo and I love the order
in which you board the topics.

