Hey everyone, no doubt this has been asked before, but I want to ask it again, this time including some things.
So, I need to know what the best way to learn C++ for free is, I cannot afford to pay for a book, so that is why I need free. I don't want a reference site or something, I need a website that will tell me what does what and how to use it. Don't point me towards Bucky because although he can teach a few things, it bugs me that he says "You don't need to learn this" at least once in every single one of his videos.
I know some basics of programming (I studied Python for a while).
Who can help me?
P.S: if you need any other information, please ask.
You can see if a local library carries or will send for a textbook for you. That would be free. I am not sure if my library deals with textbooks, but I know if I want something they do not have, they will get it for me without me paying for anything at all.
You do not want to try to finish that in 21 days. Read a chapter, learn it, practice it, and then move to the next. If you have any C++ questions while learning I'd be happy to help you out (I'm not a professional, just a uni student, so take my advice with a grain of salt).
On the book question, I have had a book for a long time which I never gave much attention to until recently. The name of the book is "Starting Out with C++." My edition was written by Tony Gaddis in 2001. The book is riddled with typos and all the main functions are used with void. It is really a terrible book. The greatest thing about it though is that it has nice review questions at the end of every chapter. I think that helps a lot. On the advice of a forum person I purchased two other books at Amazon. "C++ Primer" by Stanley Lippman, Josee Lajoie, Barbara Moo is the first one. The second book is "Accelerated C++" by Andrew Koenig and Barbara Moo. I think Primer is a fantastic book in every way except that it does not have the "Create these programs" in a review section at the end of a chapter like "Starting Out with C++" has. Beyond that though it explains everything very well, but yea, it is more something to read than something to work through. Accelerated C++ is a little better with the exercise inclusion, but I haven't spent much time with it. Primer is such a fantastic book though in my opinion. I think a perfect match would be Primer and something that can follow along with it and suggest programs that you could write which would not be identical in purpose to the examples given in Primer, but that the examples and material covered would allow you to do if you thought about it. This is of course all from my perspective. I am a beginner as well trying to find the best way to learn. Starting Out with C++ is dirt cheap on Amazon, about $0.30, but the other two together cost me about $100. If your library will get you C++ Primer that would be really nice for you.
Well, looking at your list of books, i'd have to point out that the book c++ from Bjarne Stroustrup is probably one of the better ones. thats the one that they taught with at my university.
Also, the thinking in C++ is really good.
Well you get what you pay for I would say. If you don't want outdated books or lesser quality books you got two options.
1) Go to your library and try and find a good quality C++ book. If you live by a big city you should be able to find one in stock or if they don't have one in stock they will probably ship one over.
2) Purchasing I know you said you don't have the money for it right now but if you are serious about learning C++ I would save up some money and purchase a one (Some good C++ books can be as low as $30 or so).
So your best bet would probably be to head over to the library and see if you can find a 2 or 3 good books. And also start putting away some money every paycheck to order some books if possible. I started out with 1 book on C++, now I'm up to about 8 ;p. Its nice to have everything you need by you so if you need to look something up boom its right on your bookshelf.
Here is two books that I have read and highly recommend like others here.
- Accelerated C++ - Andrew Koenig & Barbara E Moo - This book is probably the best place to start I would say. Its pretty short, but it uses a very fast paced approach to teaching C++. It doesn't teach you all the basics of C before it jumps into C++. The way they teach C++ in this book makes you feel like you are actually learning stuff that matters. Like for example probably around page 30 or so you are learning things that most other books wait till around page 150-200 to teach you how to do. The only problem with this book is they don't go to much into detail on some things which is where another book to cross reference with comes in handy.
- C++ Primer 4th Edition - Stan Lippmann, Josie Lajoie & Barbara Moo - This would be another book to pick-up with Accelerated C++. It goes into very good detail on every subject in the book, so I use it mainly as a reference for things I don't know. I also used it while reading Accelerated C++ for cross referencing the subjects I couldn't understand.
You're wasting your time looking for a magic book. Just pick anything and use it to learn the basics. Then work on what's really important... Writing code that challenges you to become a critical thinking, problem solver. No book can teach you that. It just takes time and practice.
I would disagree cnoeval to a certain extent. For beginners usually a good book will help you progress a lot faster and also teach you a lot more. One thing that good programming books have the you cant find in just any book is that they teach you how to go about creating your program.
So if someone just picked anything to learn C++ from yes they will learn how to be proficient in C++, but it will take a lot longer and they will be missing some key skills that a good book can teach them.
Programming for me at least is a good mix of studying from books, references, ect. and getting in their and doing it because yes you wont learn anything if you don't take what you just learned and use it and change it.