A common misconception is that a programmer should learn C first, then learn C++. Some people go so far to say that once you have learned C, it is very easy to pick up C++.

My opinion is that these assertions are false. C++, although based on C, is in approach and use a very different language from C. C++ is not a language that is easy to learn; it takes months of dedicated study and practice to master all aspects of the language.

I believe it is now possible and even desirable to learn C++ without learning C first. The first reason is that there are a lot of C practices that have to be unlearned during the transition to C++. The second reason is that objects, with member variables and member functions, are much easier to work with than structs and functions. The third reason is that the iostream library and the overloaded << operator are much easier and safer to use than the stdio library with its printf() function. The fourth reason is that manipulating strings is trivial in C++ but error-prone and dangerous in C.

Publisher’s information Comments
C++ How to Program
5th Edition
by H. M. Deitel and P. J. Deitel
Pearson Education, Inc.
ISBN 0-13-185757-6

This is the best C++ book that Deitel and Deitel have put out. The layout is much easier to read, the code is presented cleanly with the syntax highlighted, and the presentation is very clear and well-written.

This book is so comprehensive that you’ll find yourself referring back to it again and again.

The major change from earlier editions is that the authors introduce classes and objects early, beginning in Chapter 3. So instead of being a text that teaches C first, then C++, this text teaches C++ first. The book also includes a lot of material on UML and includes a software engineering case study that gives the novice a good feel for how a new system is modeled before coding begins.

The C++ Programming Language
3rd Edition
by Bjarne Stroustrup
ISBN 0-201-88954-4

This is a difficult book, but it’s required reading for anyone who wants to become an expert at C++. I dip into sections of it as a reference, but I have never succeeded at reading any of Stroustrup’s editions of this book from cover to cover.

The C++ Standard Library: A Tutorial and Reference
by Nicolai M. Josuttis
ISBN 0-201-37926-0

This book was published shortly after the C++ standard was completed. This is an essential resource for C++ programmers. The writing is exceptionally clear, and the examples provide useful demonstrations of aspects of the C++ Standard Library.

I highly recommend this book.