Learning C++

K

kooolega

Hi, that's me!
I've decided to learn C++, but I'm still thinking about the books about C++.
Which one is the best one and so on. I've made a list of books I'm going to
read. I'd be glad if you checked it and told me your opinion.
So, that's the list:

1. "Thinking in C++. Tom I" by Bruce Eckel
2. "Thinking in C++. Tom II" by Bruce Eckel and Chuck Allison
3. "C++ Unleashed" by Jesse Liberty
4. "C++ Gotchas: Avoiding Common Problems in Coding and Design" by Stephen
C. Dewhurst
5. "Hacker's Delight" by Henry S. Warren, Jr.

And... what do you think?

kooolega
 
M

Matthew Schaefer

I would instead recommend the following books in more or less the same
order:
1. Accelerated C++, Koenig & Moo
2. Ruminations on C++, Koenig & Moo
3. C++ Primer, Lippman (wait for the new version with Moo as coauthor).
4. Scott Meyers' Effective Series
5. C++ Standard Library, Josuttis
 
H

Howard Gardner

Matthew said:
I would instead recommend the following books in more or less the same
order:
1. Accelerated C++, Koenig & Moo
2. Ruminations on C++, Koenig & Moo
3. C++ Primer, Lippman (wait for the new version with Moo as coauthor).
4. Scott Meyers' Effective Series
5. C++ Standard Library, Josuttis

If you're going to learn C++ from scratch, I think the best thing that
you can do for yourself is to get a really good compiler. Comeau C++ is
my personal favorite, and it costs about the same price as one of these
books. "Which compiler is best?" is flame bait, of course, but if you
happen to choose this one then you will experience an absolute minimum
of "the book said this should work, but it doesn't" episodes. (If it's a
good book.) Installing the thing can be a bit of a bother I'm afraid,
but it's worth it IMO.

http://www.comeaucomputing.com/

No opinion on the Koenig & Moo books. Not familiar with them. Same with
Lippman. That doesn't mean that they're bad, I'm just not the target
audience for them.

Niccolai Josuttis's "The C++ Standard Library" is a good reference. Once
I got it, it instantly displaced everything but The Standard itself as
my reference on the library. (It's also a tutorial. Since it happens
that I learned about the stuff it covers from a different book, I can't
speak to its effectiveness in that role.)

http://www.josuttis.com/

Scott Meyers' books are very good. I'd consider them intermediate. They
are "Effective C++", "More Effective C++", and "Effective STL". My
experience with them is that I read them, internalized some of what they
have to say, came to regret ignoring the balance, read them again, and
so on. Still iterating that I guess. This is an odd thing to note about
a programming book, but Scott's writing style is a real pleasure for me
to read.

http://www.aristeia.com/

I'd add Bjarne Stroustrup's "The C++ Programming Language" as a very
good reference book. It might or might not be suitable for absolute
beginners, but it's definitely useful when you hit a late beginner or
early intermediate stage, and it never stops being useful. I've had it
for years, and still refer to it routinely. In the last two months, I
have discovered two completely unrelated and really useful nuggets in it
that saved me days (or more) of headscratching at the least, and quite
possibly preserved me from utter failure.

http://www.research.att.com/~bs/homepage.html

Herb Sutter's books "Exceptional C++" and "More Exceptional C++" are
very good. I guess they are advanced though. (Check out the Guru Of The
Week feature while you're there. Very amusing stuff!) I've been through
these books twice now, and use them occasionaly for reference. Some of
the stuff they deal with is pretty esoteric: when it manifests itself in
my code I am very grateful to Herb for explaining it :)

http://www.gotw.ca/

Somewhere around the time that Sutter's books become interesting to you,
consider getting a copy of the C++ Standard. The Standard is notorious
for being hard to read, but learning to read it can be a real benefit to
you. I was able to read the sections on The Strings Library, the
Containers Library, the Iterators Librar, and the Input/output library
pretty readily. At this point, it is the reference that I consult first,
and on an almost daily basis at that.

http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS/ISO/IEC+14882-2003

I notice a dearth of design books on both of those lists. Maybe the OP
has already made a study of that field, but in case he hasn't I'd
recommend getting "Design Patterns" by Gamma et Al. This book profoundly
influenced the way that I think about software design, and I think it
did that for a lot of people. I very rarely pick it up any more, but I
think that's only because I've memorized its contents.

http://www.amazon.com/exec/obidos/ASIN/0201633612/104-6267066-3620768

(Sorry for the amazon link, but it's the best I could find. There ar
zillions of other pages talking about the book if you care to search for
them.)

Before you go off trying to use all of that truly neat stuff, though,
work through "Modern C++ Design" by Andrei Alexandrescu. I wish I had
(it wasn't available when I was going through that phase.) This book is
appealing in two ways. First of all, it's got a high quota of plain old
"cool hacks," and I mean hacks in the good sense of the word: they are
elegant and useful tricks that I never EVER would have figured out on my
own, and that just delight me to contemplate. Secondly, it describes
several very good designs and implementations of the patterns in the
"Design Patterns" books. Even if you aren't enamored of cool hacks, you
can benefit enormously from studying those implementations.

http://www.moderncppdesign.com/

Also in the design category, I think that "The Unified Modeling Language
User Guide" is pretty important. I'm not recommending it so much for the
UML proper, although that's the modeling language I use, but as a
tutorial on object oriented analysis and design.

I have to qualify this recommendation though: the books that I
personally used as tutorials on OOA&D are the books that Rumbaugh
("Object-Oriented Modeling and Design") and Booch ("Object-Oriented
Analysis and Design") wrote before they conspired on this one. I had
ignored Jacobson's--the third author of this book--work entirely, and
much to my own detriment. I *THINK* this has to be the best tutorial on
the subject around, but I can't speak from experience.

http://www.awprofessional.com/bookstore/product.asp?isbn=0201571684&redir=1

There are lots of other good books around, of course, including some
that I need to read: "Template Metaprogramming" by David Abrahams, and
"C++ Coding Standards" by Herb Sutter and Alexander Alexandrescu top my
personal list. The ones that I mentioned are the ones that have been
*important* to me as a developing C++ developer.
 
J

Jewbster

The Barne's and Noble In Easy Steps series are really helpful if you're
just starting out in any subject. It'll give you the bare basics, which
makes it a lot easier before you just jump into a big reference book
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,201
Messages
2,571,048
Members
47,647
Latest member
NelleMacy9

Latest Threads

Top