I just received Daniel Shiffman’s book Learning Processing, A Beginner’s Guide to Programming Images, Animation, and Interaction. It’s great, and absolutely (finally!) a book I can recommend wholeheartedly for people wanting to learn how to program in Processing. As its’ name suggests, it’s a beginner’s book — so if you’re already clear about most of the basics you might want to try one of the other two books, although there are some excellent advanced chapters on integrating Java, using video and sound, as well as grabbing data off of the Internets.

Daniel Shiffman's Learning Processing

I was one of the early-draft readers of this book, and was immediately struck by its tone: Daniel is obviously a teacher and clearly has some experience teaching programming to people who normally wouldn’t be inclined to program: creative types. The book starts right off with getting to work inside the environment and keeping it simple. I also think that Casey Reas‘ book is very good in this respect, as opposed to Ira Greenberg’s book which takes a little while before getting started. Now, there are some dangers to this approach, and Shiffman’s book also feels a bit too much like you’re following a fairly standard linear trade course: learn A, then B, then C, … That’s okay because the goal is to teach you everything-you-need-to-know and to keep you on track. But while it starts off quickly and gets right into the heart of things on page 1, it can get a little dull after a while because of that same linear structure. It is not as devoted as Greenberg’s book, for example, on exploring the visual possibilities of the software, although there is — of course — some of that. Also, the design of the book is a little ugly — Daniel, your book has the design of a “Java Programming” manual!. This is compared to Reas’ book which has a nice encyclopedic feel to it (it should be clear by now that I like horizontal texts) and allows for some jumping around. So this is really a classroom book, if anything, or at least reads like one, for a standard american-style course on Interaction Design.

There is one little detail that I absolutely love, and insisted he keep in the book despite some hestiation, precisely because it’s so unabashedly dopey: Zoog, Daniel’s Processing equivalent for the infamous “Hello World!”.

Daniel Shiffman's Learning Processing

Zoog is totally lame, and totally cool. I love Zoog. I want a t-shirt.

I would definitely recommend it for a question I am asked quite often: teachers often write to me and ask what book they should read in order to prepare for a class on programming. If you’re teaching Processing, this is a good one to read from A-Z. If you know everything in there, as well as in the online supplements (I even think these should have been included in the book, cf. Learning Processing Tutorials), you pretty much have all the answers your students will undoubtedly throw at you in class. Again, this is obviously written by someone who has some classroom experience making real-world interactive installations and prototypes.

For my part, I’m still waiting for that crazy off the wall book of a totally different ilk made for what I think is Processing’s strength: its compactness and simplicity. So I guess I’ll just have to write that one myself (more on that later). Also, we really need an Arduino book now. Making Things Talk by Tom Igoe is great, but is not as good of a learn-the-basics book as any of the three main Processing books which are all three of them excellent for getting you started.