inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #51 of 73: Elisabeth Freeman (bethfreeman) Mon 21 Feb 05 15:46
    
Dave, yes we've definitely seen signs of elements of Head First
showing up in other books.  

If something is successful, of course it's going to get copied. 
There's really two aspects of Head First to copy: one, the "look and
feel", which, as I've said is just one implementation of the second
aspect, which is applying learning principles to writing books.

An example of a Head First element that I'm seeing occasionally in
other books is annotations on code and pictures.  I even saw a
beautifully designed Photoshop book the other day with really great
annotations (I'm not sure if the book came out before Head First,
however).  So, someone could copy the look & feel of annotations,
because it's different or "cool" or whatever.  However, our use of
annotations is based on studies that show that learning increases
greatly if the text explaining a piece of code (or technique or
whatever) is *right next to it*.  This is better than placing the text
directly underneath the figure or table holding the code, which is
better than having the explaination text in a paragraph following the
code on the same or next page (which is obviously the worst).  

One trend I've definitely noticed in technical books, which may or may
not have started with Head First, is the trend towards more informal
writing.  Many technical authors have a real problem with this!  But
informal writing is so much easier for people to read and remember. 
Informal does not have to equal "less technical" or "less correct". 
It's a conversational style that helps memory.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #52 of 73: narcissitic Tech Writer V (mtrbike) Tue 22 Feb 05 13:36
    


Oh, conversational style has been around a while.  It was a big
selling point for my books ten years ago.  (and I got flak for it,
too.  "too funny."  "too many words."  "too hand-holding," "not
serious enough.")  (I wrote HTML and Java books in the Teach Yourself
series back in the day)

I wanted to annotate code but the book designers would have none of it
and I didn't have any clout on the design end.  I did a tiny tiny bit
with figures but not a lot.

But I'm not trying to stomp my little foot and claim "I thought of it
first!" because that's just not true.  I'm guilty of the mixing
tutorials and references problem and guilty of the trying to teach too
much problem.  And because I was first and foremost a writer I was
always thinking from a writing perspective -- the very visual aspect
of Head First is just not the way I think.  Head First just floors me
completely.  There's so much to the head first style that is so hugely
unique and so creative.  I am deeply envious of it and find something
new and exciting every time I crack the books (I have all of them.
more, more).
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #53 of 73: Rafe Colburn (rafeco) Tue 22 Feb 05 13:53
    
 I am also envious.  Reading this book has completely sapped my
interest in working on computer books, just because I don't have the
talent or dedication to do something so interesting and effective.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #54 of 73: Laura Lemay (mtrbike) Tue 22 Feb 05 16:06
    

Oops, I just realized I'm still using my dumb well nickname (pseud)
here.  "Who is this person?"  Sorry about that.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #55 of 73: Elisabeth Freeman (bethfreeman) Tue 22 Feb 05 17:56
    
Hey Laura, well too bad I didn't buy your books!  I found very few
technical books that used a conversational style and I wish I had.  So
anyway just ignore those critics... it's the customer that counts,
right? :-)  And thank you for buying all the books - that's awesome! 
We really appreciate it.

It is a challenge to do all the design and layout ourselves.  There's
definitely a high level of dedication required (is that understating it
just a bit?!).  But the reward is also great... I love hearing from
readers who appreciate the format and also learn from it.

And of course, Head First isn't for everyone.  Some people truly are
looking for a reference book, some people want one book that has
*everything* about a topic.  Head First will never work for these kinds
of books.   We follow a strict 80/20 rule.  It's really tough to cut
ruthlessly, but vital for a teaching book, and it means that we had to
leave a lot out.  I'm seeing emails from readers who are now buying
*two* books about Design Patterns: GOF and Head First.  Head First to
learn it, and GOF as a reference.  (Which kind of makes me smile
because if that's true, then we've doubled the market - ha!)
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #56 of 73: Loren Rosen (loren-rosen) Tue 22 Feb 05 21:05
    
Do you think the Head First style could work for more "advanced"
books?
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #57 of 73: John Brewer (jbrewer) Wed 23 Feb 05 18:06
    
Before we finish up, I have a few more questions I want to get in.

First, could you talk a little bit about pattern abuse?  I've noticed a
strong tendency among people just learning patterns to start trying to use
them everywhere, including places where they clearly don't belong.  How do
you go about preventing this?
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #58 of 73: Ari Davidow (ari) Wed 23 Feb 05 19:03
    
I also wanted to ask about unincluded patterns - are there patterns that 
you almost included, but ended up leaving out - if so, what and why?
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #59 of 73: Elisabeth Freeman (bethfreeman) Wed 23 Feb 05 19:17
    
Loren - absolutely I think Head First can work for advanced books.  It
is a format designed specifically for learning, and I think could
apply to as advanced a topic as you could imagine. In fact, the harder
the topic, the better, since Head First is so learning-friendly and
brain-friendly.  I'd much rather learn a really hard topic the Head
First way than trying to slog through hard core technical writing :-)

John - that's a great question.  I'm not sure you do prevent newcomers
to patterns from implementing them all over the place; that's part of
the process of learning them and learning when they're useful!  Part of
my own experience in learning about and writing about patterns is
coming to the understanding that almost everyone has to go down a path
to "experienced programmer" and that patterns don't necessarily give
you some magical short cut.  They might help guide someone in the right
direction sooner, and help them understand good programming practices
a bit quicker, and perhaps to understand other people's programming
styles better (e.g. someone writing user interfaces might use MVC a lot
and understanding MVC will help you understand their code more
quickly).  But in the end, every programmer may have to learn the hard
way to Keep It Simple, Silly!  

In the last part of Head First Design Patterns, we talk about overuse
of patterns and try to stress that while a pattern can help suggest
solutions to a problem, in the end, the simplest solution may be the
best.  Some people claim that patterns should only be used when
refactoring code.  I tend to think that's a bit of overkill, especially
for the most used patterns, like Observer.  It's absolutely clear to
me that Observer is useful from the start in certain programs.  But
other patterns, like the Factory pattern and Singleton, can be overused
in situations where it just doesn't make sense because it's never
going to be an issue.

We stress in the book that "change" is a big factor in using patterns,
and that comes from our years of experience writing code where the
spec is changing every few months (or weeks (days!)).  In those
situations, planning ahead is helpful and that's where patterns can
really shine.  In this case, adding patterns in when you refactor
probably makes a lot of sense.  You've implemented the first version;
it's successful; someone comes along and says, ok we're going to be
maintaining this and updating it for a while.  So that's the time to
think: where is it that my program needs to be most adaptable to
change?  That's probably where you want to use a pattern.

We suggest pattern study groups, whether that's at work, school or
perhaps even online if you are studying them on your own - and I think
this can help a great deal if you are working with someone with more
experience in the area - a pattern mentor! or at the least an
experienced mentor.  This person hopefully will help to guide people
new to patterns to help them see where using a pattern makes sense and
where it's just not necessary or would add complexity for no benefit.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #60 of 73: Elisabeth Freeman (bethfreeman) Wed 23 Feb 05 19:23
    
Ari - well we originally chose the patterns we included from a list of
the "most used" patterns.  Every pattern from that list except Builder
made it in.  The other pattern we really wanted to do, but just ran
out of time was Bridge (because it's so abstract and so interesting). 
In addition, we had planned a whole chapter around an extended example
that included a whole bunch of patterns (it was a lambda-moo style
MUD), but that example ended up containing several patterns we knew we
wouldn't be able to include (like Chain of Command and a few others),
and was too complicated so we left that out too.

Most of the leaving out was a combination of running out of time (and
space! we didn't want to go over 700 pages) and also trying to focus on
what would be most useful to the reader.  It's that 80/20 rule again! 
The purpose of Head First Design Patterns is really two-fold: to help
you learn the patterns we do cover, and also help you learn how to
learn patterns.  Because if you can do that, then you can pick up a
reference book and quickly learn a new pattern.  
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #61 of 73: Dave (drsmith) Thu 24 Feb 05 08:39
    

Interesting that you mention picking up a reference book and learning
a new pattern...  I haven't tried that yet, but I have found myself
wondering about it.  As in, when I finally pick up that daunting
hardcover design patterns book, will I find that I've been spoiled
by Head First?  Something tells me I may find myself thinking,
"Nope, don't quite get it.... damn, where's the Fireside Chat
when I need one?!"
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #62 of 73: Loren Rosen (loren-rosen) Thu 24 Feb 05 10:25
    
Advanced books are often difficult because they cover a lot of ground
very quickly. A Head First style advanced book might have to be
thousands of pages long.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #63 of 73: John Brewer (jbrewer) Thu 24 Feb 05 11:34
    
Given that O'Reilly publishes it, why isn't Head First Design Patterns
available from Safari (O'Reilly's online book service)?
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #64 of 73: Elisabeth Freeman (bethfreeman) Thu 24 Feb 05 16:45
    
Head First Design Patterns is not on Safari because Safari books are
automatically extracted from XML - assuming the author uses the
standard O'Reilly template.  Since we use In Design, there is no way to
extract the data.  We'd have to place PDF pages on the site instead,
and no one's gotten around to implementing that yet.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #65 of 73: John Brewer (jbrewer) Thu 24 Feb 05 18:33
    
Makes sense.  A non-paginated version would be very confusing.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #66 of 73: John Brewer (jbrewer) Fri 25 Feb 05 11:02
    
Perhaps we have time for one last question:

What's it like being married to your writing partner?
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #67 of 73: Elisabeth Freeman (bethfreeman) Fri 25 Feb 05 11:47
    
You just had to ask, didn't you? :-)  

Most of the time it works really well for us.  We've worked together a
lot (more than most couples), and so we've had a lot of practice. 
It's nice to have something big and creative like a book to focus on
together (except when it takes over your entire life of course).  A
book is such an intense effort that it's nice working with someone that
you don't get sick of (most of the time) and it's hard to find those
people.  We knew going into it that we don't get sick of each other, so
that was a plus. Also a plus, being able to bounce book ideas off each
other while on a trip to the grocery store (minus - when one of us
says, "that's a really stupid idea!" :-)

I really enjoyed learning from Eric; as with any working team we both
bring different talents to the job, and Eric had previously published a
book, and was a better writer than I am.  He really helped me to focus
on writing clearly and make sure that every sentence, every word - and
for Head First, every picture - was really right.

The hardest part of working together, as I'm sure you suspect, is
leaving disagreements behind at the work table and not going to bed
mad. 

 
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #68 of 73: Uncle Jax (jax) Fri 25 Feb 05 12:24
    
>Head First Design Patterns is not on Safari because Safari books are
>automatically extracted from XML - assuming the author uses the
>standard O'Reilly template.  Since we use In Design, there is no way
>to extract the data.  We'd have to place PDF pages on the site
>instead, and no one's gotten around to implementing that yet.

The taxonomy of a publishing industry antipattern!
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #69 of 73: Cynthia Dyer-Bennet (cdb) Fri 25 Feb 05 13:18
    

Elisabeth and Eric, it's been such a pleasure having you join us here in
Inkwell. Thanks so much for being our guests, and thanks to you, John, for
so ably leading this conversation.

Our virtual spotlight has turned to new guest nows, but that doesn't mean
you have to stop. This topic will remain open for continued discussion
indefinitely, so please feel free to carry on, if you have the time.

Thank you again for being here.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #70 of 73: Michael E. Marotta (mercury) Fri 25 Feb 05 17:14
    
#40 of 69:   Michael, I'm not sure what you mean.  "What I read here
seems to be about menu buttons."  In what way?

What I meant was that in this discussion after about the first dozen
posts or so, talk seemed to get away from broad, basic principles of
design patterns and get bogged down in how to do this or that in Java
(or C#).  

"Is it that you believe that OO principles and Design Patterns do not
add anything to the art of programming?"

Not at all!  That is why I bought the book.  As I said, I was
impressed the credentials of Freeman and Freeman and I have not read
any kind of software design book in about a decade.  OO is just today's
FORTRAN, but it _is_ today's standard.  So far, I am having a good
time with the book.

"Or rather that you think Head First does not add anything to the art
of learning?"

That is a much deeper question.  I was hoping you would have the
answer to that.  We are pretty much stuck with books.  I write the
"Internet Connections" column for the ANA's NUMISMATIST magazine.  So,
I spend a lot of time reviewing educational websites and looking at CDs
and basically, little comes close to books in terms of efficiency. 
That said, I know as a trainer (robotics and factory automation) that
books are limited and limiting as a medium.  Nothing competes with
hands-on.  

That goes for another of my interests, flying.  Read all the books you
want. Take all the training classes.  Nothing replaces being in the
cockpit.  Yet, there are advantages to books, etc.  For one thing you
can stop reading a book and think about it.  You are not supposed to do
that in the cockpit...  

So, for the book you wrote, for my having just begun it, I am pretty
well satisfied from the viewpoint of a documentation specialist and
trainer that your team has done an excellent job of pushing the limits
of print by CORRECTLY integrating text and graphics.

(Oh, well... there was one thing... a typo right up front.  "Elizabeth
lead research and development...")

#64 of 69 " Since we use In Design, there is no way to
extract the data."

Sure there is!  Contact the people at Avatar Data Publishing.  Coletta
Perry was the president of the QuarkXPress user group before InDesign
was launched and now she is the source in the USA for EasyCatalog. ADP
has all kinds of solutions.  They can make Filemaker Pro sit up and
bark like a dog. Just ask them.  Extracting data for print publication
is what they do!
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #71 of 73: Elisabeth Freeman (bethfreeman) Fri 25 Feb 05 17:59
    
Thank you Cynthia and John!  We really enjoyed all the questions and
of course talking about Head First and Design Patterns.  I'd like to
point everyone to the Creating Passionate Users Blog where we (well,
actually mostly Kathy - she's a blogging maniac) blog about Head First
principles and related things: http://headrush.typepad.com.  

And we'll keep checking back here to see if there's more discussion.

Thank you Well users!
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #72 of 73: Elisabeth Freeman (bethfreeman) Fri 25 Feb 05 18:01
    

"What I meant was that in this discussion after about the first dozen
posts or so, talk seemed to get away from broad, basic principles of
design patterns and get bogged down in how to do this or that in Java
(or C#)."

Weird.  I don't recall *any* discussion of how to do things in Java or
C#.  I wonder if there is another thread somewhere that I missed??


#64 of 69 " Since we use In Design, there is no way to
extract the data."

"Sure there is!  Contact the people at Avatar Data Publishing. 
Coletta Perry was the president of the QuarkXPress user group before
InDesign was launched and now she is the source in the USA for
EasyCatalog. ADP has all kinds of solutions.  They can make Filemaker
Pro sit up and bark like a dog. Just ask them.  Extracting data for
print publication is what they do!"

Well, all I meant is that there is currently no way for O'Reilly
Publishing to extract the data with their current Safari technology.
  
inkwell.vue.237 : Elisabeth and Eric Freeman: Head First Design Patterns
permalink #73 of 73: Brian Slesinsky (bslesins) Fri 12 Aug 05 19:52
    
"Even self-assured design-pattern toting geek girls need feminine
hygiene products"

http://fishbowl.pastiche.org/2005/08/12/the_head_first_girls_double_life
  



Members: Enter the conference to participate

Non-members: How to participate


Non-members: Please enter your comment or question:
All non-member comments are read before posting. All spam is discarded.

Your email address:
We will only use this email address to contact you for clarification.

Your real name:
Your name will be used to identify your comment if it is posted.



Subscribe to an RSS 2.0 feed of new responses in this topic RSS feed of new responses

 
   Join Us
 
Home | Learn About | Conferences | Member Pages | Mail | Store | Services & Help | Password | Join Us