|
Learning C++
I clawed my way into C++ from exactly the
same position I expect many of the readers of this book are in: as a programmer
with a very no-nonsense, nuts-and-bolts attitude about programming. Worse, my
background and experience was in hardware-level embedded programming, in which C
has often been considered a high-level language and an inefficient overkill for
pushing bits around. I discovered later that I wasn’t even a very good C
programmer, hiding my ignorance of structures, malloc( ) and
free( ), setjmp( ) and longjmp( ), and other
“sophisticated” concepts, scuttling away in shame when the subjects
came up in conversation instead of reaching out for new
knowledge.
When I began my struggle to understand
C++, the only decent book was Bjarne 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 enthusiastic response.
At about the same time that Using
C++ came out, I began teaching the language in 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 to 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. You can find out about my
public seminars at
www.BruceEckel.com, and you can also learn about the seminars that
I’ve turned into CD ROMs.
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 who is struggling with a new programming
language.
|
|