Head First Guru:
An Interview with Bert Bates

Bert with a foal.

Bert Bates is one of the creators of the Head First series and coauthor of Head First Design Patterns, Head First Java, Head First Servlets & JSP, and Head First EJB. We asked him a few questions about the upcoming Servlets revision and Head First philosophy.

What can we expect in the upcoming Servlets and JSP revision that's substantively different from the last edition?

Sun Microsystems has recently updated Java SE and Java EE. The good news is that for the majority of Java desktop and Java Servlets developers, neither of these releases introduced significant new features, so much of what you already know applies. On the other hand, Java certifications carry a lot of weight in the community, so Sun felt that the related exams (SCJP and SCWCD) should be updated.

Bryan (Basham) and I were fortunate to work with Sun over the last few months in creating the new, updated SCJP and SCWCD exams. I would characterize these new exams as being refinements of the older versions. A few, relatively minor new topics were added, but for the most part we took this opportunity to re-weight and clean up the existing exams. That said, both of the new exams include a large percentage of new questions. I would recommend that if you already hold a certification in SCJP or SCWCD, it may not be very important to you to take the new exams (unless you're interviewing for jobs, and then the latest-and-greatest is always a good idea). On the other hand, if you've been thinking about getting certified, then the new exams are definitely a better choice—a lot of user feedback was considered in designing these updated exams so they should be more "real world" than ever.

Like the exams, the new edition of Head First Servlets will be a refinement of the current book. We'll add a few new topics, include a few topics that we wish we'd included in the last edition (for instance, dynamic attributes), and create an entirely new mock exam, as well as sample questions for all the new topics.

What do you see as the most effective features/learning tools in Head First that allow users to master complex topics?

Wow—we've spent entire, multi-day workshops trying to answer that question :)

First off, we don't think in terms of "covering the material." In other words we never take a "reference book" approach to a topic. We try to find the heart of the technology we’re teaching, the smallest, essential core, and focus on really nailing that down. For instance in the Design Patterns book (HFDP), we cover only slightly more than half of the original Gang of Four patterns. It was a gamble to do that, and we occasionally get knocked for that, but we're very happy with the result. By trimming down the number of topics we cover, we can spend a lot more time on the key topics.

Second, everything we do in a HF book we do with teaching on mind. While we don't think we're great teachers, we do respect great teaching, and we try to understand and implement the best teaching practices we can. We've done a lot of research into how the human brain learns (Kathy a lot more than me!), and we really do try to implement the latest research that we're aware of. We make little attempt to serve more than one master. We realize that in many cases HF books make poor reference books. We decided in the beginning that we would focus completely on learning, not on reference. It might be possible to create a single book that does a great job of teaching a topic AND being a reference guide for that topic, but we felt that we’d have better success if we focused our efforts purely on teaching. (We're also working hard to beef up our indexes. Starting with Head First C#, you’ll see over 20 pages of indexed terms. We're also looking at re-indexing earlier books and making those indexes available online for free!) Third, to support the idea of "great teaching" we do our best to keep in mind the distinctions between what a learner's mind wants and can do, and what that same learner's brain wants and can do. For instance, your mind might be very interested in learning Servlets, but your brain is designed to actively resist learning about Servlets. The more we recognize that conflict between the mind and the brain the more we can do to "trick" the brain into being more receptive and open to learning about the topic at hand.

All of the above leads us to techniques such as creating stories and scenarios (the human brain seems to be highly tuned to learning via stories). We really believe that a picture is worth a thousand words—good diagramming, and good annotations are far easier to assimilate and retain than the world's best writing. We work hard to reduce the number of things the learner has to remember—for instance, we often repeat the context of our examples—because we believe that working memory is actually pretty limited. We will often look at difficult topics from several different perspectives. We simulate as much interaction as we can in a book (interviews, Q and A's, and frequent exercises are examples of interactions). We try to create frequent, small "payoffs" for the learner. People are far more apt to keep reading if they're feeling successful, if they feel like their "getting it", so we structure our books so that learners can recognize their progress. (We like to think of this progress as being like playing a video game, once you've completed a certain level, you get new superpowers, and you're promoted to the next "level" of the game—in which you'll face new challenges, but you'll have cool new tools with which to handle them.)

As one of the Head First series creators (along with Kathy Sierra) what was your motivation for creating the Head First learning approach?

Kathy and I both had an interest in cognition and learning for a long time before we created Head First. We were both teachers and we both created software using AI technologies. I think that to some degree our teaching experiences helped to motivate us. Speaking for myself, I often found myself in somewhat hostile professional environments and my survival hinged on effective teaching.

We're both very excited by how well received the HF books have been. When we wrote the first book (Head First Java), it was an experiment. We kind of threw everything we had at the topic, thinking that only a small portion of the tools we created would be effective. It's been very surprising and gratifying to see how well most of those ideas have worked across several different books.

We actually had several motivations for creating HF, but again, speaking for myself, I’d say that I'm fascinated with the topic of learning, and I think that the direction the world is heading requires that we all become more effective learners and teachers. We started off by thinking about creating computer-based learning materials (and we’re still kicking ideas around), and at some point we said, "How much interactivity can we flatten into a serial, 2-D book?"

The Head First series has branched off into many topic areas outside its initial Java and Java applications base. In what other areas do you think the Head First learning approach would be most effective?

It was pretty random that so many of the first books focused on Java. Kathy and I have both been programmers for a long time, and Kathy was teaching Java for Sun at the time, so it was natural to use Java as our first topic, but frankly there's nothing special about Java, or programming in general, that makes it extra-suitable for the Head First approach. Our sense is that the Head First approach ought to work well for most any complex topic. The Head First team has put a lot of energy into tackling academic topics (math and science), and I think we'll all be able to see the results of that work in the near future. Early on in the creation of Head First, Tim O'Reilly said that he felt Head First ought to be a good approach to use for any topic that had a lot of "pain" associated with learning that topic. Personally, I'd like to see Head First ideas applied to a broad spectrum of topics that are commonly viewed as "complex" or "hard to learn."

What advice would you give to anyone interested in authoring a Head First book?

Read the books. Write in them, and do every exercise. Then, spend some time thinking about what you liked, what worked, what you hated, and where you felt like you missed something. You'll learn an amazing amount of meta-information just by working through several books like that. We think Head First Design Patterns and Head First HTML with CSS & XHTML are standouts (we consider Head First Java a sort of "beta" of the learning techniques)...of course, we also love Head First Servlets, since we wrote that one, too!

[Editorial note: We recommend Head First PMP as a successor to the techniques most strongly represented by Head First Java, and Head First OOA&D and Head First SQL as great successors to what the Freemans did in Head First Design Patterns.]

Notice how you're reacting and interacting with the book. It might also be useful to pick up a competitive book and see how you experience that book as a teaching book.

It seems to me that if you can kind of do a Zen thing and notice your own learning process as you go along, you could be a good HF author. In the end it's really about caring about the quality of the learning—putting the learner first.

Now Available:
Head First Software Development

Head First Software Development Cover

Even the best developers have seen well-intentioned software projects fail. Instead of surrendering to the common problems, let Head First Software Development guide you through the best practices of software development.

Now Available:
Head First JavaScript

Head First JavaScript

Want to take your web skills to the next level? It sounds like you're ready to learn the Web's hottest programming language: JavaScript.

Get power over your data!

Head First SQL Cover

Is your data dragging you down? Are your tables all tangled up? Learn the tools to wrangle your databases into submission.

Newsletter

Sign me up!

Stay up on all the latest Head First news, tips, and special offers with the Head First Newsletter.

Get the Latest Issue:
January 2009

Brain-Friendly Bookshelf

Here are some of the latest books we're reading at the Labs:

A Theory of Fun for Game Design
by Raph Koster
Read more...

The Language Instinct
by Steven Pinker
Read more...

Flow: The Psychology of Optimal Experience
by Mihaly Csikszentmihalyi
Read more...

On Writing: A Memoir of the Craft
by Stephen King
Read more...

The Writer's Journey: Mythic Structure for Writers
by Christopher Vogler
Read more...

For more recommendations, check out the What We're Reading page.

Jolt Award

Head First Design Patterns has taken home the Jolt product excellence award in the general category, beating out some stiff competition like Joel on Software by Joel Splosky. One of our favorite books won the technical category: Better, Faster, Lighter Java by Bruce A. Tate and Justin Gehtland. Congrats Bruce and Justin!

Read more...