|
W
ithout
doubt, C++ is one of the most complex and powerful programming languages.
Beginners look up in awe to all those C++ gurus who have apparently achieved
the almost impossible?mastering the awesome amount of language means and
programming idioms that come with C++. The sheer volume of the average
C++ textbook (1,000 pages and more are not uncommon) drives beginners off
at regular intervals.
Stanley B. Lippman is the coauthor
of one of those invaluable C++ textbooks (
C++ Primer
with Josee
Lajoie) and knows how much it takes to explain all aspects of the C++ programming
language in minute detail: it takes 1,237 pages. Now, that is too much
to get going real quick, he says. Drawing from his own experience, he told
us an anecdote about learning programming languages.
He had been asked to solve a programming
problem. Being as he is fluent in C++, he solved it easily in C++. They
liked it?and asked him to rewrite it in Perl. His fellow programmers weren't
heavy-duty programmers, but knew Perl, Tcl, and the like. Being fluent
in C++, but knowing nothing of Perl, he was in a bind and he decided to
read a book and learn enough Perl really quickly to rewrite his C++ program.
Fortunately, he found the right book for that purpose, learned Perl in
a couple of days, reimplemented his programming, and decided that there
should be an equivalent book for learning the essential of C++. Here is
that book.
Essential C++
is what it promises
to be?a book on C++ that leaves out countless details and focuses on the
core language. You learn just what you need to get your job done using
C++. It is, however, not a textbook for absolute beginners who want to
learn programming. There are other titles available for that purpose (see
The
Practice of Programming
by Brian W. Kernighan and Rob Pike, for
instance). Instead, it is for practicing programmers who already know what
they want to say, but need to learn how to express it in C++. For instance,
you will not find a comprehensive discussion of operator overloading or
multiple and virtual inheritance, because you won't need that for solving
an average programming problem.
The strength of
Essential C++
is its omission of distracting details. Lippman teaches C++ novices what
they need to know in digestible doses. He starts with basic elements of
C++ programming and guides the learner through procedural programming,
generic programming, object-base and object-oriented programming up to
programming with templates, and eventually exception handling. In all cases
he provides enough details to be productive. You find practical and concise
examples, and references to other books are provided where further details
might be needed. You cannot claim you're a C++ guru after reading
Essential
C++
?it sure takes more to really understand that language in depth?but
you'll be capable to program in C++.
Essential C++
offers fast-track
learning of the sophisticated kind for practitioners with no time to waste.
Angelika Langer
develops
and teaches classes on advanced C++, STL, multithreading, internationalization,
and Java. She served on the ANSI/ISO C++ Committee from 1993 to 1998.
Klaus
Kreft
is a software architect and consultant with 15+ years of experience
in industrial software development. He works for Siemens Business Services
in Germany. Langer and Kreft are authors of "Standard C++ IOStreams and
Locales: Advanced Programmer's Guide and Reference" (Addison-Wesley, 1999)
and are columnists for
C++
Report
magazine.
|