What kind of order should I go with to learn C++?

Hi, my question is, what kind of order should I go with to learn C++? I mean, I feel like I should learn C++ in an order from easiest to hardest kind of way. I have already created a Hello World program and a what should I do program using cin, cout, string, etc... I would like a recommended order if possible.

If there isn't any order, what is a good way to learn C++? I figured books, but I don't know any good ones. I have googled around looking for some good beginner C++ books but the people just shoot you a ton of books to choose which causes me to not pick any because I don't know which one is good for me. I know I shouldn't worry about choosing what book to choose but I am absolutely terrible at choosing the right thing. If possible, the book should explain the code and teach C++ easily so I can understand and wrap my head around the concepts.

I know I should program and program and program to learn C++ fast/better but I don't know what to make.

Thanks. (Sorry if this has been asked a lot.)
i just learned following a tutorial in this page.

its a very good tutorial


C++ for dummies (get the 6th edition), Beginning Visual C++ (get the 2008 or 2010 versions) or Sams Teach Yourself C++ in 21 days. all of these books will teach you the basics of what you need to know before going on to learn another library. books are the way to go, because theyre like online tutorials except exponentially more in depth. i recommend one of these three.
Last edited on
Well there are several ways that you can learn, and it's all dependent on how you learn.

For instance:
Myself, I've found I learn best by doing. So when I want to learn a new language, I'll just set myself up an environment and a goal. And research the individual components until I can achieve that goal.

Yes. You can read books, there are several available that do a great job of explaining the language and the core features.

You can learn by looking at other people's source code. (This method I don't use very often, but when I do, it's amazingly helpful)

Now you have to realize that the standard library and core functionality make up a small part of what you can accomplish with c++. Multimedia is huge, when you are done with the basics (IO,variables,program flow, classes, templates, inheritance, etc.) Move on to a library that interests you. Such as
SFML http://www.sfml-dev.org/
SDL http://lazyfoo.net
BASS http://www.un4seen.com/bass.html
OpenGL http://www.opengl.org/
DirectX http://msdn.microsoft.com/en-us/directx/aa937781
BOOST http://www.boost.org/
QT http://qt.nokia.com/products/

and tons and tons more.
Okay, thanks guys. Also, I am using MinGW as my compiler ... so I don't know if I can get Beginning Visual C++ book. I think I will go for Sams Teach Yourself C++ in 21 Days because I heard "C++ for Dummies" book are bad (apparently).

Also, I also thinking of getting this book: Accelerated C++ Practical Programming by Example. So which one is better out of the two for a complete beginner?

EDIT: I just found out that Sams Teach Yourself C++ in 21 Days is actually Sams Teach Yourself Visual C++ in 21 Days.

EDIT2: I find that I learn best by doing too. I know how to research and stuff, but I just don't know what to make just to learn. I already made what I wanted to make. (What Should I Do Program and simple Hello World). So either I learn C++ by doing or get a good C++ book and start learning. I prefer learning C++ by doing but there's a problem, I don't know what to make. So it'd be nice if someone could make a list of what I should do? If not, then how can I make a list to learn c++? If all of that is not possible, then what book should I get as Sams Teach Yourself C++ in 21 Days is actually Visual C++ and C++ for Dummies is said to be a terrible book. Also, Beginning Visual C++ is, as it says right there, Visual C++.

So I'll repeat myself, Would it be possible for you guys to make a list for me to learn c++ by doing? If not, how can I make my own? If all that fails, then What book is the best for me (complete beginner).


Last edited on

1. Write a complete card-dealing program (a deck of cards, shuffling, etc...). To do this properly, you have to learn about Classes, random numbers, basic output, and perhaps STL for storing each card.
2. Later use 1. to write card games like BlackJack

Most importantly, every time you learn something new, ask yourself, how can I use this to add a new feature to my project? It doesn't necessarily have to be a great feature in terms of design. Rather, it should be a way for you to practice your understanding of what you've just learned.

What ultifinitus said is 100% true - everyone learns in a different way so we can give you suggestions until we're blue in the face and it wouldn't help. Best thing to do is to try different methods yourself and adjust along the way, but do try to program as you're learning - that's the best way to test your understanding.
Ah okay, thanks guys!
Topic archived. No new replies allowed.