Book

Which book is the best for beginners
Stroustrup's 'Programming: Principles and Practice Using C++, 2nd Edition' is highly regarded; and is arguably the best book if you are completely new to programming.

Another good candidate is 'C++ Primer 5th edition' by Lippman, Lajoie and Moo

For more information, see '4. Learn More' on this page: https://isocpp.org/get-started

Or 'Beginner' on this page:
https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list#388282
closed account (E0p9LyTq)
No single book really helps to learn C++, 3 at a minimum to learn the basics.
https://isocpp.org/wiki/faq/how-to-learn-cpp#buy-several-books

There are three categories of insight and knowledge in OO programming using C++. You should get a great book from each category, not an okay book that tries to do an okay job at everything. The three OO/C++ programming categories are:

1. C++ legality guides — what you can and can’t do in C++.

2. C++ morality guides — what you should and shouldn’t do in C++.

3. Programming-by-example guides — show lots of examples, normally making liberal use of the C++ standard library.

Learning the C++ Standard Library is a MUST. Why people keep wanting to invent the wheel is not smart.
Just a quick thing to add as well, be sure that the book uses the latest C++ version. Since the new C++ 11 standard came out (released a couple years ago) followed by C++ 14 and now C++ 17 (still under development), important changes in the language have been added and for good programming practice should be learned.

Here's a couple of things that I've seen even post-secondary schools omit from mentioning:

nullptr instead of NULL
The new C++ random number capabilities
array<> template class
lambdas
range-based for loop
The 'auto' keyword now has a different meaning and usage (used to implicitly infer types of variables rather than indicating a variable having 'auto'matic storage)
move semantics

There's more, but I can't remember right now :p

Some people may disagree, but personally ONE OF my favorite books (and note, that this is a PERSONAL opinion),would be the Deitel book on C++. I've found it to be very informative, adhering to good programming principles and also a good resource for pointing me out in further directions for research.

That's just my two cents :)

Hope that helps!
Joe
sparkprogrammer@gmail.com


C++ is the most complicated and difficult langiage to learn. If you are an absolute beginner you should consider learning an easier language like Java. Also learning from a book alone is very difficult, so consider doing a proper course.
http://mooc.fi/courses/2013/programming-part-1/
Stroustrup's organization of content in his book "The C++ Programming Language" is excellent. However, this book isn't for beginners. It's an advanced book.

>> C++ is the most complicated and difficult langiage to learn.

C++ does have a few "negatives". For instance, it doesn't support an inbuilt GUI Library, unlike Java. This is because, doing so would have violated its philosophy for Library features. This makes it more difficult to learn C++, because you have to learn a GUI Library such as wxwidgets and also learn to integrate it with a C++ app.

It is debatable whether the lack of an inbuilt GUI Lib is a negative, since the plus side is that it encourages the development of multiple GUI Libs and therefore creativity.

A definite negative is the fact that "Concepts" have still not been introduced for Templates.

Apart from that, many of C++'s features have been well thought of and seem to me, to be almost canonical.

For instance, rvalues (which allow move semantics) is an excellent concept.
Also, the concept of Functors is excellent.

An easy book (also free) is Bruce Eckel's e-book "Thinking in C++" which is freely downloadable, but it is for an earlier version of C++ (C++98).
Topic archived. No new replies allowed.