Learning C++

Posted on 2004-08-22
Last Modified: 2010-04-01
I have been looking on Amazon for a book to teach myself C++ and am wondering if anyone can help?

I have a good understanding of programming, but unfortunately only of relatively obsolete languages and need to learn languages that will be more useful within industry, so I do not need to learn how to program e.t.c, just the C++ language.

From what I can gather C is a procedural language, whereas C++ is Object Orientated, is it worth learning both for industry or just C++?  I know this can depend on what type of programming I plan to do, but at the moment I don't know.

Also there are many different types of C, mainly just different compilers, but again which one should I choose? Which one would be the most useful?

Finally getting back to my original point of which book to choose, the problem is that every author and his dog seem to have written a book on C programming!  There are literally thousands to choose from, any ideas?
Question by:Stupot
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 48

Assisted Solution

AlexFM earned 50 total points
ID: 11864111
LVL 55

Assisted Solution

by:Jaime Olivares
Jaime Olivares earned 100 total points
ID: 11864119
I always recommend this on-line book from Bruce Eckel: Thinking in C++, also comes in printed version:
About proper compiler, this is a hard question. If you want to develop for Windows environment only, then Microsoft Visual will be the best choice in my opinion.
About cross-platform compilers, any variant of the GNU C++ compiler will be useful. Also you will need a portable GUI like wxWindows ( or QT (
Take a look to this useful page:
LVL 55

Expert Comment

by:Jaime Olivares
ID: 11864128
BTW. I have not copied AlexFM suggestion, just have spent more than 3 minutes in writting my post.
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Accepted Solution

sterhar earned 100 total points
ID: 11877662
I would recommend two books on C++.

First read, "C++ How to Program" By Harvey M. Deitel and Paul J. Deitel. This is a later edition of the first book I read on C++. It is an excellent introduction to C++ that covers the basics well.

Once you read that book and gain more experience, I would read "The C++ Programming Language" By Bjarne Stroustrup. The author of this book is the original designer of C++. He goes into a lot more detail and covers several advanced topics that other books don't get into.

Here are amazon links to the two books:

Assisted Solution

guntherothk earned 50 total points
ID: 11882252
If you already understand programming, then learning C is just learning how the selection and looping statements are spelled in C, and what library functions are available. Learning C will only take a few weeks. All the C compilers are pretty much equivalent.

However, there is no reason to learn C if you already know how to program. C skills are no longer particularly prized in the job market. There are more productive programming languages than C.

Object oriented programming is a superset of procedural programming; a way to break big problems up into individual objects that each are small enough to use the older paradigm on. It is worth learning object oriented programming if you intend to do any serious work.

C++ is an elegant and powerful language, but requires a significant time investment to master. Acedemic programs like to teach Java because it is simpler. Java's simplicity can translate to lower performance and bigger, messier code, but it's fine for many applications. Microsoft has invented a java lookalike called C#, which you should learn if you believe Microsoft will continue to dominate the world. There isn't a clear winner, so it's hard to place a big bet right now. C++, Java, and C# are all procedural, object oriented languages. They are all in wide use at this time.
LVL 55

Expert Comment

by:Jaime Olivares
ID: 11882474
About guntherothk comment, I agree fully with last paragraph. But I think still is a good idea to learn pure C before learning C++, because this allow you to concentrate in some fundamental topics like pointers. Some pure C++ programmers lacks of a clear pointer/buffer awareness, and this topic is one of the cornerstones of C/C++ language.

Assisted Solution

mdroske earned 50 total points
ID: 11961610
I would say, that starting off by learning C++ does not prevent you from getting a good understanding about pointers. If you learn C first, then you would have to forget about a lot of things, like callback routines, string handling, io etc and probably the first C++ programs will somehow still reflect some C-style and in the worst case a mixture of both C and C++.

I would suggest to use the Intel Compiler which is freely available on the intel website for non-commercial use. It has a very good optimization for Pentium processors but works also quite well with AMD processors.
In some advanced template cases, its more flexible than g++.

I agree to jaime that thinking in c++ is a very good reference.

Author Comment

ID: 12244412
Sorry it's taken me so long to reply, but my computer has ben in for repair and has takeen ages to be returned.  

Anyhow, i've looked at the reports for both the books mentioned by Sterhar, and am happy that they will be useful, so have ordered them.  Also the free online book mentioned by AlexFM and Jaime Olivares looks useful too, as is the information on which compilers.

Thanks all, for your help!

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

689 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question