Home Books Software Projects Forums

An Interview with Kathy Sierra
Co-Author of Head First Design Patterns


Introduction

Objects by Design is pleased to bring our readers this interview with Kathy Sierra, co-author of Head First Design Patterns (O'Reilly - October, 2004). In this interview, Kathy describes the research that went into designing the innovative, interactive style of the Head First series, a style which makes learning a challenging subject such as design patterns exciting and fun.

Head First

The covers of books in the Head First series focus on the head of an intelligent, smiling person. Can you explain the Head First symbolism?

By "Head First", we really mean "Brain First", because the Head First format is about creating a learning experience that fits the way your brain works. This is reflected in the cover people in several ways:

1) The photographic angle highlights the person's head - making it the most emphasized part of the person.

2) The brain is tuned to pay attention and respond to human faces; research shows that a person's brain will pick up on facial expressions at a subconscious level. So the cover person is an example of using one of our brain-friendly principles to get the brain to react.

3) Part of our approach is based on the premise that brains learn best under friendly, sociable circumstances. Your brain wants to pay attention to a conversation with another person more than it wants to listen to (or read) a dry formal lecture. Our cover is one way of letting readers know what to expect - it sets the tone for the book.

4) Our books are targeted slightly more at a younger demographic, so most of the people we have on the covers are somewhat young(ish). They represent people who could be your friends and co-workers rather than the older mentor/sage. And that also reflects one of our core learning principles - that these books are meant to be an interactive co-creation of knowledge between the reader and the book, as opposed to the approach used in some books where the "expert from on high" imparts the knowledge and information, while you sit back and absorb. Our books are a little closer to the organic, sometimes messy way people learn in the real world - you try things, you get help from friends, you get the occasional bad or wrong advice, etc.

Learning Theory

Can you share some of your experiences researching learning theory? What type of research did you do and what did you discover? How did this directly influence the Head First series?

We researched many different areas:

  1. Learning theory
  2. Neurobiology, especially related to memory and attention
  3. The psychology of "optimal experiences", otherwise known as "the flow state"
  4. Game design
  5. Entertainment
  6. Advertising

We believe that all of these domains have something important to say to help speed up the learning process and make it more effective. They're all concerned with the same things - CHANGING people in some way. Learning must create a change in a person's head - a change that causes them to think, feel, act in a new way as a result of this new knowledge. Simply giving someone new data or information is not enough for us. Our goal is to create an environment, through the experiences in the book, that causes people to understand more quickly, and to retain and recall what they've learned. And we believe that all of those domains have something important to teach us about how to help make that happen.

We didn't invent anything; we simply created one possible implementation of how you can apply the lessons learned from all research those other folks are doing. And we believe that this particular implementation is just one of so many different ways in which you could make that happen. But this way has been very successful. We believe the only reason the books have been so successful is because the research is sound - this stuff WORKS. If we can't deliver on our promise of learning, people will choose another book. (And of course, there are people for whom this style doesn't work because they hate it!)

The key things that have influenced the series format are:

1) For learning, a picture really IS worth a thousand words. When you're trying to communicate a challenging concept, the goal is to get the model in MY (the teacher/author) head to somehow show up unchanged in the learner/reader head. That's often extremely difficult when all you have are words. The reader has to take the words, and construct the picture in their head of what connects to what, or how something flows, or where the pieces fit together, etc. So a picture greatly reduces the risk that the picture they construct in their head matches your intention. And a picture takes far less time for your brain to process the information (and of course less time to *read*).

2) To be remembered, something must be *memorable*. And memory is far more likely to happen when something triggers a chemical response in the brain. So we use anything we can to get the brain to respond in a chemical way, so that the brain knows this thing is important. The brain has a built-in (and VERY powerful) "junk filter" (a chemical known as CREB-2) that acts as a supressor to memory. It doesn't WANT you to remember everything; that's how humans stay alive - by saving brain bandwidth for only the really important things that could save your life or further the species. In other words, the brain pays attention to things it perceives as life-threatening, or... sexy!

And that means the brain is always scanning for things which don't meet its predictions or expectations. So we try to use anything we can to get the brain to react - surprise, novelty, mistakes, bizarre images, people (the brain responds more emotionally to people than to things), anthropomorphizing (for the same reason), unusual images, things that engage more senses, etc.

3) Related to #2, people tend to learn more when things don't work as expected, so we try to use the unexpected failures, mistakes, counter-intuitive things in the topic, etc.

4) The brain learns more when it perceives a real benefit - a personal reason to pay attention, so we try to make our topics use-case driven rather than topic-driven. In other words, we don't say, "OK, time to learn topic X, so here's everything you can know about topic X." Instead, we say, "OK, here's what you really wish you could do, so let's figure out how we might do that." And sometimes, that includes going down a garden path - just like real life - only to discover that the most promising way to approach something can end up being a dead end.

5) The brain pays stays engaged when it has challenges that are neither incredibly daunting or too easy. The goal is challenging-but-do-able. That's what keeps people playing games and sports or, as all programmers know, coding late into the night because you always think you are just "one compile away". If you know you're DAYS away from finishing, you'll go home. Or if you're just bored to tears or you know it's just a simple tedious task, you'll go home now and come back to finish it tomorrow. But if it's an intensely challenging thing, yet you KNOW you're about to nail it, you just lose track of time because you're so involved. We don't know how to make our books anywhere NEAR as engaging as, say, a good game, but we do try to apply many of the principles game designers use to keep people always working to get to the next level. Having our books be use-case driven really helps, because the next level represents some new more advanced thing you really want to be able to do, but you have to get through this topic (exception-handling or whatever) in order to GET that new superpower ; )

This means we use an iterative learning process, where we keep returning to topics as you move through the learning rather than taking a single topic and doing it to death before moving on. We're more about trying to have chapters cover things just-in-time, to reflect just what you need to do NOW (based on the use-case that led to that chapter). Or as our editor says, "the minimum threshold for the learner/programmer to be creative."

So, those are the main ones. Overall, the goal is for people to learn. And for people to learn, they have to stay with it. They can't just read a few pages and fall asleep, or struggle with dense, difficult text. We have to keep them awake and engaged, so that they can keep turning the pages and doing the exercises and learning. We don't always get it right, but that's our goal. We're keenly aware that if people aren't really learning, they have a zillion other books to choose from. Or Google!

Head First Meta-Patterns

The Head First series follows a consistent, innovative pattern in its presentation. The sections "There are no Dumb Questions" make everybody feel better about their own questions. The hand written annotations with the arrows pointing to the relevant code are also great - because they are so informal. How did you come up with these patterns and are you researching new patterns as well? Are there any new titles in this series that are in the works?

The patterns (our Head First learning design patterns) are driven by the different brain-friendly principles I mentioned earlier, but there's an overall theme that the current Head First books use which explains many of them (including the ones you pointed out), and that's the theme of a "classroom experience". The way we chose to implement the brain-based principles for Head First was to create a flattened, 2-D version of an interactive classroom with a casual and energetic instructor. Not a formal lecture in a big hall, obviously, but a small, intimate, hands-on classroom setting.

So, the look and feel includes white board marker fonts, drawings that have that hand-drawn sketched look, and hand-drawn code annotation that's almost exactly what I do when *I* take a class and I'm trying to make sense of the code. We also use code annotation as a way to help reduce the cognitive overload when you're trying to figure out what's happening, because trying to read code with comments is a lot more difficult, and makes the code listings span too many pages. We use a lot of other tricks to try to make the important parts of the code pop out including greying out, font changes, etc. If I write code on a whiteboard, I'll highlight the key parts with different colored markers, underlines, whatever I can do to draw attention to the key parts.

But more important than the look and feel is the learner's experience of being in a classroom. We asked ourselves, "What are the big things a person can do in a classroom that they cannot do in a book?" And our two main answers were, "raise their hand to ask a question" and "look confused". So, we tried to compensate for that - at least a little - by playing the role of that one student in the classroom that asks all the questions, both smart and... not so smart. We wanted to help create that experience that you have when you're in a classroom and afraid to ask a potentially dumb question, and you're SO relieved that someone ELSE asked the question that you had.

We assume that during the tricky parts of the book that some of the readers ARE looking confused. None of us (the authors) are confident enough that we can come up with that one golden explanation that makes it all clear. So we try to do what an instructor does when he sees that "huh?" look on the faces of his students - explain it in a different way! In other words, we do what an instructor does when he says, "OK, that didn't make sense... so let me put it another way." We find that a lot of learners are frustrated by books that explain it once, give one example, and then move on. That works great for a reference book (and is exactly what you want), but when you're trying to learn it for the first time, that's where books often fall short of what a classroom can give you.

We know these don't compare to a REAL classroom experience with a good teacher (and other students to interact with!), but at least we're trying to make up for some of the things a book lacks that a class doesn't. We do have discussion forums on javaranch where other "students" discuss the book, but that's as close as we've come to incorporating that group interaction.

There are quite a few new Head First titles in the works, although the publisher has asked us not to announce most of them yet. I can mention our first two that aren't on software development - Flash and Movie Making with Final Cut. These are interesting challenges for us because they're so different from the programming books. A lot of people said, "books that teach *these* topics are already so visual - what do you have to offer?" Which is a great question, but when we looked at these books, we saw that most of them use visuals in the form of screenshots, but not necessarily as way to aid understanding of the underlying concepts. We do have two more general software development books coming (good additions to the Design Patterns book), and two additional books teaching a specific programming language (that isn't Java). We'll probably be able to announce those fairly soon.

Are we researching new patterns? Yes, definitely. Each book incorporates a few new things (and in some cases takes away things that people have said they didn't like or that just didn't work the way we hoped they would). But perhaps our biggest effort is that we're also developing an entirely different implementation of the brain-based principles that is not based on the classroom experience/metaphor. It's totally different from the Head First format, but still 100% driven by the need to design an experience that works for brains. It doesn't look or feel anything like the current Head First books, and we reckon you'll see one or two of those books out before the end of 2005. But I'm afraid that's all we can say about that for now!

And finally, we are writing a kind of meta-book about how to apply the brain-based principles to a variety of goals: learning, marketing, customer service, etc. to help inspire "passionate users". That will definitely be out in 2005, and we're also doing a three-hour tutorial about this called "Creating Passionate Users" at this year's ETech conference in March. It's based on talks we've been giving at O'Reilly's Foo Camps. We originally designed the talks just for other technical book authors, but we were shocked to see how many people enthusiastically wanted to apply brain-based ideas to everything from software development to building a larger fan base for their web sites. It's been a lot of fun (and very helpful for us) to learn from companies and artists that are doing a really great job of inspiring their users.