Mike Bostock to humans: 'Try to look for small problems first'
The AMA on Reddit with ex-NYT graphics editor and the creator of D3.js is simply the best motivational piece on the Internet for those who want to work with data-driven documents
If you are a data journalism nerd, or even a small-time enthusiast, you will surely know who Mike Bostock is. But, if you don't, I will tell you: he is the guy who made possible that cool data visualization you like so much.
It takes a pretty freaking serious full-time work for someone to quit a dream job at the NYT, right? Well, my guess is that a person that is so notorious in such a specific, yet vast, field gotta have things covered for the long run. It is not like he would be out of a job if things go south (although I doubt they will go south in this case).
Although sometimes he got quite technical, this AMA is maybe the best motivational piece on the web for people who want to work with data.
As I myself am one of those people, I highlighted some parts of the AMA for you to immerse yourself in this world. Yes, you! You nerd.
Mike Bostock, Reddit AMA
On good ways to use data visualizations
"The data dictates whether there’s a worthwhile graphic to go with the story, so focus on data-gathering and analysis before diving into fancy (interactive) graphics. Charts shouldn’t be about making the story more eye-catching, but about communicating more efficiently — meaning, showing a pattern in the data that would be too laborious to describe in prose."
On Microsoft and big corps using open-source tech
The adoption of open-source technology by large companies can often have a positive effect on the technology, either through external validation (“if Big Co. uses it, I should too”) or through contributions. Though as we learned through OpenSSL and similar cases, it’s easy for free things to be taken for granted, and finding a way to make open-source development sustainable is a challenge. It’s easy to have open-source side projects, but it’s a lot harder to find multiple people able to work full time, for free.
On discipline and hard work
I find it to be the easiest thing in the world to work on something if you are passionate about it, and you can break it up into small pieces (like examples) that you can publish and share with others for external validation. So probably, choosing to work on things you are excited about, and then finding space to avoid distractions or interruptions is the key.
On how to handle data and use data viz softwares
If you’re just trying to find insight for yourself, then an exploratory tool (like Tableau, or R, if you don’t mind writing code) is probably best. If you’re trying to communicate insights to others, then a slower tool that allows greater expressiveness (like D3) could be more appropriate. The NYT graphics department is probably the most extreme case of the latter, where you invest heavily in a single graphic because it reaches a very large audience.
On newcomers learning D3
I recommend patience. To become proficient, you will need to master multiple skills: data collection and cleaning, quantitative analysis, visualization design, programming, web development, etc. It’s tempting to want to learn all of these things and do something amazing in a very short time frame — like, say, during a hackathon — but really the best approach is to be diligent and methodical. Keep practicing, keep tinkering with smaller problems, and you will gradually improve. I studied Computer Science as an undergrad, so certainly I had a lot of help. And before that, I played with Hypercard, Macromedia Director (Lingo), TI-82 graphing calculators, HTML, etc. I second the recommendation of Scott Murray’s tutorials (and his book), but probably the best thing you can do is to think of small coding problems that you are comfortable solving, and then increasingly ramp up to larger problems as you go. The satisfaction you derive from solving the smaller problems will motivate you to keep going.
On corporate use of D3
I think for bigger projects (like, enterprise applications built and maintained by larger teams, and not one-off graphics that are developed by one or two people over a couple weeks) you likely want an abstraction on top of D3 to help you keep things organized. I’ve seen a number of successful projects integrate Ember with D3, so that’s an option as well as React. I don’t have a lot of experience in this area, so I haven’t formulated a strong opinion as to which application framework I like best; but, I do think it’s important to keep D3 small and decoupled, so that it integrates well with whatever you want to use. I’ve not spent enough time playing with Vega to say anything insightful. The strictly declarative approach is certainly attractive, particularly for other tools that can generate Vega as output. Though as someone who does a lot of bespoke work, you can pry the DOM from my cold, dead fingers.
On becoming a strong coder for using D3
Try to look for small problems first, the sort of thing you can solve once per day, whenever you have time. The rewards from early victories are strong motivation to keep going.
On why D3 is so hard to learn