Preface 15
and other “sophisticated” concepts, scuttling away in shame when the subjects came up in
conversation rather than reaching out for new knowledge.
When I began my struggle to understand C++, the only decent book was Stroustrup’s self-
professed “expert’s guide,
1
” so I was left to simplify the basic concepts on my own. This
resulted in my first C++ book,
2
which was essentially a brain dump of my experience. That
was designed as a reader’s guide, to bring programmers into C and C++ at the same time.
Both editions
3
of the book garnered an enthusiastic response.
At about the same time that
Using C++
came out, I began teaching the language in live
seminars and presentations. Teaching C++ (and later, Java) became my profession; I’ve seen
nodding heads, blank faces, and puzzled expressions in audiences all over the world since
1989. As I began giving in-house training with smaller groups of people, I discovered
something during the exercises. Even those people who were smiling and nodding were
confused about many issues. I found out, by creating and chairing the C++ and Java tracks at
the Software Development Conference for many years, that I and other speakers tended to
give the typical audience too many topics, too fast. So eventually, through both variety in the
audience level and the way that I presented the material, I would end up losing some portion
of the audience. Maybe it’s asking too much, but because I am one of those people resistant to
traditional lecturing (and for most people, I believe, such resistance results from boredom), I
wanted to try to keep everyone up to speed.
For a time, I was creating a number of different presentations in fairly short order. Thus, I
ended up learning by experiment and iteration (a technique that also works well in C++
program design). Eventually I developed a course using everything I had learned from my
teaching experience. It tackles the learning problem in discrete, easy-to-digest steps and for a
hands-on seminar (the ideal learning situation), there are exercises following each of the
presentations.
The first edition of this book developed over the course of two
years, and the material in this
book has been road-tested in many forms in many different seminars. The feedback that I’ve
gotten from each seminar has helped me change and refocus the material until I feel it works
well as a teaching medium. But it isn’t just a seminar handout – I tried to pack as much
information as I could within these pages, and structure it to draw you through, onto the next
subject. More than anything, the book is designed to serve the solitary reader, struggling with
a new programming language.
1
Bjarne Stroustrup,
The C++ Programming Language
, Addison-Wesley, 1986 (first edition).
2
Using C++
,
Osborne/McGraw-Hill 1989.
3
Using C++
and
C++ Inside & Out
,
Osborne/McGraw-Hill 1993.