Head First Guru:
An Interview with Bert Bates
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.
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.
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.
Is your data dragging you down? Are your tables all tangled up? Learn the tools to wrangle your databases into submission.
-
Head First Ajax
Chapter 7
Chapter 1 Excerpt
Head First Algebra
Chapter 4
Head First C#
Chapter 5
Chapter 4 Excerpt
Chapter 7 Excerpt
Head First Design Patterns
Chapter 3
Head First HTML with CSS & XHTML
Chapter 8
Head First Java, 2nd Edition
Chapter 2
Chapter 8
Head First JavaScript
Chapter 2
Head First Object-Oriented Analysis & Design
Chapter 3
Head First PMP
Chapter 11
Free Practice Exam
Critical Path Drill
Head First PHP & MySQL
Chapter 7
Chapter 5 Excerpt
Head First Physics
Chapter 4
Head First Rails
Chapter 8
Head First Servlets & JSP, 2nd Edition
Chapter 9
Head First Software Development
Chapter 6
Head First SQL
Chapter 1
Chapter 7 Excerpt
Chapter 8 Excerpt
Head First Statistics
Chapter 4
Head First Web Design
Chapter 8
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.
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!











