During the past 12 months, I have gone through a few books on Arduino and Processing. In this post, I’m going to give you my thoughts on these books.
I’ll go through the books in the order I read them, which is not unfortunately the same as the order I should have read them. You’ll soon understand why.
Making Things Talk (Tom Igoe)
This is the first book I got and it really got me hooked into the Arduino world. Before that book, I was comfortable building computers from scratch and I did own a soldering iron, but the truth is that I hadn’t used for years. After reading this one, I ordered a few arduino boards, resistors, capasitors, sensors, servo motors and spent a fair amount of time building things.
This book really inspires you to start building things. It starts with the basics but it quickly moves to advanced concepts, techniques and projects. Every chapter includes a few projects that introduce gradually new layers of complexity. I’m always happy to grab this book and have yet another look at some of its great examples.
It’s not fair to call this book a book on Arduino, because it’s so much more than that. For me, it was not only an introduction to hardware and device hacking but also an introduction to Processing.
Prior to reading this book, I had read a lot about the Arduino board online, but this book proves that, sometimes a good book offers you more than you can find online, no matter how much time you spend searching.
If you are even thinking on using an arduino, you should buy this book.
Getting Started with Arduino (Massimo Banzi, co-founder of Arduino)
This book, from Massimo Banzi, the co-founder of Arduino, was really the book I should have read first, before even going through the Arduino website. The book is only just over 100 pages long and it really serves as a very brief introduction of the Arduino platform. I bought it from a bookshop (rather than Amazon) and I knew beforehand that I may already know almost everything this book could offer. And I was almost right. Thinking back, I should have probably spent the £10 on another issue of the Make magazine.
Visualizing Data (Ben Fry)
After reading the book “Making Things Talk” I realised that Processing was a very powerful yet easy to learn programming environment. Most of the other books, treat Processing as a platform for artists, which (at that time) put me off buying them. My line of work involves a lot of data analysis; when I stumbled upon this book, I thought it could help me learn about this programming environment in a way that it could be beneficial for my work.
I soon realised that this book assumes a good working knowledge of Processing, which, at the time, I didn’t have. I put it aside, and started going through “Learning Processing” and “Processing” (see below). After a few weeks, I felt confident about going back to it.
With the right background knowledge of Processing, this book clearly demonstrates that Processing is a great programming environment when it comes to creating ways of visualising data.
I have started applying some of the techniques I’ve learnt from this book at work; we have replaced some huge excel files (approx 150MB each, due to the formatting and the formulas) with a bunch of Processing sketches I wrote. Visually, the results are superior to what we used to get by printing the excel files and it now takes us 8 minutes to complete a task that used to take us about 40 minutes to complete in excel…
I give Ben Fry full marks for this book. It’s well written and to the point and the examples clearly show how Processing makes Excel look inadequate when it comes to present information visually.
Processing (Casey Reas & Ben Fry)
This is the best reference book on Processing. It’s written in an unusual way, in the sense that it includes interviews (not necessarily about Processing) with various artists. At the beginning, I found strange that the authors had decided to include such interviews in their book, the but, in end, I ended up enjoying reading them.
The book is well written and a must-have if you are serious about learning Processing. The theory is presented in “layers”, in other words that each chapter only gives you what you are ready to learn (based on your level) and nothing more; this is great if you use it as a textbook, but it may make your life more difficult if you try to use it as a reference.
One thing that I believe needs more work in this book (which thankfully was covered well in Fry’s book “Visualizing Data”) was the chapter on time and date.
Learning Processing (Daniel Shiffman)
The subtitle of this book is “A Beginner’s Guide to Programming Images, Animation and Interaction”, which is right on the money. This is really a beginner’s textbook and feels a lot more like your typical programmer’s book. There aren’t any interviews with artists, but there are exercises and projects in each chapter.
This is probably a good book to use as a textbook, but as I had already gone through “Processing”, I found myself turning the pages faster than I normal.
Algorithms For Visual Design using the Processing Language (Kostas Terzidis)
This book was the latest book I got and was recommended to me by Amazon’s clever algorithm (which picked up the fact that I was collecting books on Processing). The first thing I noticed about the book what that the quality of the paper was low. Now, I know I shouldn’t be judging the books by their covers (or the quality of their pages) and the paper was probably recycled (which is something I should be supporting), but it did disappoint me a little.
The book is written by someone who knows more Java than Processing. This is generally a good thing, I thought, until I hit the chapter on GUI design… Instead of explaining how to create nice, colourful and fully customisable buttons using nothing but Processing code, this book only explains how to add the simple standard grey buttons you see everywhere. I felt that was a major omission.
To be fair, the book does have very chapters on Motion, Image processing and 3D with a lot of examples and theory to back them. Another pleasant surprise was the chapter on Physical Computing: in 25 pages the author gives a very good summary of the Arduino platform (probably better than the “Getting Started with Arduino” book!).
From the books I listed above, if I had to keep three of them, I would keep “Making Things Talk”, “Processing” and “Visualizing Data”, as I feel these cover more than enough the topics I’m interested in.