Then thats perfect for me Bert! I have about 5 chapters left of HF Java, HF OOAD is on its way!
We believe that if a person is learning something complicated, they should start by getting really, really solid on the fundamentals of that topic. We take that philosophy to the books we work on.
This is the main reason I'm a self-proclaimed Head First Evangelist!
I've read too many books and taken too many classes that simply teach you how to do something with a minimal foundation of the main concepts. HF Java has really taught me a lot, right from the beginning. None of my programming classes have mentioned anything about the differences between primitive and reference variables, what an important, yet basic concept for OOP!
While I'm at it I'd like to recommend one thing that should be added to HF Java in a future edition. A mention that a "String" is a reference variable/object and not a primitive. Because from the beginning of the book we are using String variables but declaring them like primitives. I was able to postulate that Strings were actually objects but couldn't figure out why they could be instantiated without calling the constructor. It wasn't until I came to javaranch and started asking questions that I found out it was simply a compiler trick.
This obviously doesn't need to be a major topic, perhaps just a sharpen your pencil question at the end of chapter 3 eg:
"So is a String a primitive or a reference variable?" or
"String is a reference variable, so why can it be instantiated like a primitive?"
Just one readers suggestion.
Thanks for a great series Bert!