Issue #20: Cycles,  Library

Kathy Sierra

The history of programming language books can be roughly divided in three distinctive eras.

The first one stretches from the beginnings of programming to the mid 1970s. Programming books from those times were an often underestimated byproduct of the marketing budget of big companies such as IBM, and inherited the dry approach of most engineering books in the post-war era. They served their purpose well, although they can be hardly remembered. We have covered one such example in a previous edition of this series; suffice to say that the treatment of these big tomes targeted different times, and a different mindset.

An interesting, enduring, albeit late example of this first era could be the classic “Algorithms + Data Structures = Programs” by Pascal’s creator, Niklaus Wirth; a recommeded read worth of its own entry in this series.

The second era can be called the “Hello, World!” era. It began with the venerable Kernighan & Ritchie’s “The C Programming Language”. During that era, most programming books, or dare I say all of them, included some kind of “Hello, World!” demo in the first chapter. Getting those words through the console is the first contact most developers had with most programming languages. Stroustrup’s book about C++, Dave Thomas’ about Ruby, Kochan’s on Objective-C, and Armstrong’s about Erlang, all contain a “Hello, World!” exercise in the first few chapters, or some variation thereof; I will leave to the reader the exercise of finding other references.

The structure of these programming books are well know to everyone in the field; a first chapter highlighting key elements of the syntax, the mechanisms and commands required to compile and run the code, and an increasingly complex series of subject chapters towards the end. Text and code, rinse and repeat.

I admit being a culprit in this respect, having written at least one book with such an approach. Let my most sincere apologies be known to those who survived the experience.

Some might argue that the third era was the “Effective” era, with books such as Meyers’ Effective C++, Bloch’s Effective Java or Wagner’s Effective C# as flagship examples. But I consider these books, as useful as they are, just an offspring of the second era; a much needed upgrade. Let’s say, then, it was the 2.5 era of programming books.

The third era actually started with the publication of “Head First Java”, and got its first major bestseller with “Head First Design Patterns” in 2005. In this era, books are no longer dry sequences of pages, with code snippets to run on a nearby computer; their pages are full of examples, pictures, and fun. Code examples might include the occasional “Hello, World!” reference here or there, but they definitely involve much more than just copying, compiling and running. There is emotion.

(Of course, not everybody liked the idea. I will not link to those reviews in these pages; sadly enough, they are quite easy to find. If human nature is to be considered, such negativity against the very idea of these books was to be expected, even if the levels reached are baffling in shortsightedness and abundant in borderline stupidity. But I digress.)

As an early example of this new approach to technical books, it would be a mistake not to acknowledge the fantastic “Oh! Pascal!” book series, authored by Doug Cooper from the mid-80s to the mid-90s, and which were largely responsible in the raise of popularity of the Pascal programming language during the early days of the PC.

In spite of such an illustrious predecessor, it was Kathy Sierra who triggered a major, deeper change in the way programming was taught. To be honest, the books by themselves would already have been a major triumph. Her work happened at a time where the dot-com boom opened the door for new ideas, right in the middle of the Web 2.0 craze, and right before the rise of the smartphone and social media.

Through the use of comic images, unusual text layout, and a fantastic sense of humor, Kathy Sierra argues, readers can learn the concepts easier; tricking the brain into the proper levels of dopamine. The level of self-derision is such that the cover image on the introduction chapter of “Head First Design Patterns” features a 1950s couple saying “I can’t believe they put that in a design patterns book!”

Riding on top of the Head First success, O’Reilly started new series, most notably the “Beautiful” series, featuring books with interviews; comes to mind the fantastic “Masterminds of Programming,” which we will cover separately in a future edition. Many more Head First books came out, some of which, in the cover photo, sit proudly in my bookshelf.

The Head First books are a hallmark, reaching a perfect equilibrium between accessibility and relevance; something that both the “For Dummies” series and most Addison Wesley books overshot, in absolutely and completely opposite directions. Funny without being quirky; memorable without being childish; and correct, without being pedantic.

On the other hand, they also triggered a horrid revelation, the darkest nature of online harassment, with abject levels of abuse and misogyny. Maybe they played a minor role as catalysts opening the door to the decade of the Me Too movement.

Cover photo by the author.

Adrian Kosmaczewski is a software consultant and evangelist. He is a published writer, trainer and speaker. He holds a Master's degree from the University of Liverpool.