The only real prerequisites for this book are that you need to be motivated enough to learn some Python and have the desire to get your hands (really) dirty with social data. None of the techniques or examples in this book require significant background knowledge of data analysis, high performance computing, distributed systems, machine learning, or anything else in particular. Some examples involve constructs you may not have used before, such as thread pools, but don’t fret—we’re programming in Python. Python’s intuitive syntax, amazing ecosystem of packages for data manipulation, and core data structures that are practically JSON make it an excellent teaching tool that’s powerful yet also very easy to get up and running. On other occasions we use some packages that do pretty advanced things, such as processing natural language, but we’ll approach these from the standpoint of using the technology as an application programmer. Given the high likelihood that very similar bindings exist for other programming languages, it should be a fairly rote exercise to port the code examples should you so desire. (Hopefully, that’s exactly the kind of thing that will happen on GitHub!) Beyond the previous explanation, this book makes no attempt to justify the selection of Python or apologize for using it, because it’s a very suitable tool for the job. If you’re new to programming or have never seen Python syntax, skimming ahead a few pages should hopefully be all the confirmation that you need. Excellent documentation is available online, and the official Python tutorial is a good place to start if you’re looking for a solid introduction.
This book attempts to introduce a broad array of useful visualizations across a variety of visualization tools and toolkits, ranging from consumer staples like spreadsheets to industry staples like Graphviz, to bleeding-edge HTML5 technologies such as Protovis. A reasonable attempt has been made to introduce a couple of new visualizations in each chapter, but in a way that follows naturally and makes sense. You’ll need to be comfortable with the idea of building lightweight prototypes from these tools. That said, most of the visualizations in this book are little more than small mutations on out-of-the-box examples or projects that minimally exercise the APIs, so as long as you’re willing to learn, you should be in good shape.