I am wondering if somebody could recommend a good book and/or tutorial for an absolute beginner with no previous programming experience.

Thanks.

Also If I can do decent at programming, I may end up going to college in order to try and make programming a possible career

There are several beginner level books which often come highly recommended by the real experts/guru's in the C++ community; i.e. those people who understand the language, and also understand the correct way to teach it.

- "Accelerated C++": http://accu.org/index.php?module=bookrevie...ch&rid=1185
- "You Can Do It!": http://accu.org/index.php?module=bookrevie...rch&rid=470
- "C++ Primer 4th Ed": http://accu.org/index.php?module=bookrevie...rch&rid=778
- "Programming: Principles and Practice using C++": http://cplusplus-soup.com/2009/02/01/programming-principles-and-practice-using-c/


The first book in that list, Accelerated C++, is an excellent introduction, but its extremely concise and condensed - the amount of good information per-page means that you might expect the same amount of information from a book with 3 times as many pages (although its worth reading cover-to-cover at least twice). if you're looking for a "gentler" introduction, then you might prefer one of the other books

"you can do it" is very hobbyist-friendly, and comes with a small graphics library which most of the book's examples make use of - again, this is a small-ish book, and covers the essentials of C++ with an emphasis on helping beginners get a firm grip on the fundamental building blocks - you would probably want to "graduate" from this one to Accelerated C++ if you were really serious about learning the language.

The other two books are more like big tomes. Principles and Practice is written by Bjarne Stroustrup - the man who created the C++ language; he uses that book to run Computer Science university courses - it covers alot of the language, and also other areas such as good software design & problem solving (all of which are essential skills anyway).

C++ Primer is the oldest book of the lot; it covers just about every corner of the language, is fairly well written, and beginner friendly. If you pick any one of these 4 books to start your learning from, you'll be in a much stronger position than alot of university graduates who seem to come out of their C++ courses without realising they've been taught to do things the "wrong" way.

Later on you'll probably want books which cover more advanced tricks and techniques, and which serve as in-depth reference guides (There are plenty of these types of books around too) - but hopefully if you start with any of the books listed here, you'll have had a good start, and be writing well-formed C++ programs having learned good habits, and good programming style.


These links may be of interest to you aswell:
http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html
http://www.comeaucomputing.com/learn/faq/

Ah Thanks for the reply, I think I may get the C++ Primer Plus 5th edition, as it has like 68 5-star reviews and a one or two of the 1-2star review.

Which as mentioned it has a lot more pages as well.

Ah Thanks for the reply, I think I may get the C++ Primer Plus 5th edition, as it has like 68 5-star reviews and a one or two of the 1-2star review.

Don't trust amazon reviews!

C++ Primer Plus is totally different to C++ Primer, unfortunately C++ Primer Plus is another of book which doesn't really teach C++ in the 'right way' - it takes a very poor "bottom up" approach, and essentially teaches you a bunch of outdated 'C' style programming techniques, yet barely mentions the STL until the final couple of chapters 'tacked on' to the end of the book, which is pretty poor considering the STL is absolutely an crucual foundation of the C++ language. If you value your time, and would like to learn C++ the right way, i would recommend avoiding this one; otherwise, you may aswell learn the C language instead :)

Hmm now I am lost on which book would be good for me lol. I thought I found a good book

The problem with Amazon (Not just for C++ but for all programming languages) is that the reviewers of beginner books are usually buyers who haven't been learning their subject for very long (of course, why else would they buy a beginner book!).
In all likelihood, they don't really know (or care) about the difference between a book which teaches C++, and a book which teaches C in disguise. (Other titles which suffer the same false acclaim from "satisfied" buyers include 'C++ for dummies', 'C++ in 21 days/hours', and Herbert Schildt books).

The thing those outdated books' authors seem to have have in common is that they probably learned C++ 20-30 years ago when it was called 'C with classes', or they're simply programmers who've been signed up by publishers who don't care about creating good quality educational books (This seems to be partly the case with SAMS and IDG).

C++ was reinvented in 1998 when it was standardised; it turned from being a pure "superset of C" into (almost) a completely new language. So one possible indicator of the relevence of a book is to see whether its original 1st edition came before 2000-ish (in which case its most likely a 'C with classes' book which has been tweaked and reprinted), or whether its a book which acknowledges that C++ is no longer just a superset of C.
3 of the books I mentioned were written in the past 10 years, the other book is much older, but has been adopted by a new author who revamped it almost from scratch. One thing in common with the 4 books, however, is that the authors are all people who were actually involved in standardising C++ in 1998; so you can be confident that they do understand how to teach it :-)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.