We found 63 Reddit comments about Programming: Principles and Practice Using C++ (2nd Edition). Here are the top ones, ranked by their Reddit score.
Modern C++ (C++11 or later) books are not nearly as plentiful as those for Classic C++, but there are a few notables.
Bjarne's college text may be what you are looking for:
Programming: Principles and Practice Using C++ https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=pd_sim_14_2/144-7765085-0122037
It is aimed at engineers, which makes it less general, but might be good for you.
Of course his general intro is also updated to C++11.
The C++ Programming Language https://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=pd_sim_14_2/144-7765085-0122037
This is aimed at experienced systems programmers, so it may be a bit heavy for students, which makes the Primer (that you mentioned attractive).
C++ Primer https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=pd_bxgy_14_img_2/144-7765085-0122037
Be certain to get the 5th edition.
Of Scott's books only the latest is Modern.
Effective Modern C++ https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=pd_sim_14_2/144-7765085-0122037?_encoding=UTF8
This is less an introduction for students than for Journeymen (Journeypeople?) programmers.
For just plain good programming style consider Ivan's book.
Functional Programming in C++ https://www.amazon.com/gp/product/1617293814
Don't be put off by "Functional." This style of programming will make your students excellent programmers.
There are some modern books of high quality that are niche.
The ultimate guide to templates:
C++ Templates https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121/ref=pd_sim_14_1/144-7765085-0122037
The ultimate guide to concurrency:
C++ Concurrency in Action https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=pd_sim_14_1/144-7765085-0122037
Some library options:
Despite its name, this is mostly reference. A very good reference.
The C++ Standard Library: A Tutorial and Reference (2nd Edition) https://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=pd_sim_14_2/144-7765085-0122037
Arthur's book covers C++17, which makes it one of the most modern on this list:
Mastering the C++17 STL: Make full use of the standard library components in C++17 https://www.amazon.com/Mastering-17-STL-standard-components-ebook/dp/B076CQ1RFF/ref=sr_1_fkmrnull_1
To what extent are you teaching C++ and to what extent are you teaching programing?
Good luck and have fun!
I recommend picking up a copy of either Programming Principles and Practice Using C++ or C++ Primer.
https://en.cppreference.com/w/ is a reference website, and is the goto resource for quick documentation lookups, etc. However, when learning C++ from scratch, a book is simply the best way to go.
This --> Programming: Principles and Practice Using C++ (2nd Edition) Seriously it's very good and it's by Bjarne Stroustrup and it's current as of may 2014..I would start here and try not to get ahead of yourself with some of the more advanced things people are posting in this thread.
Or you can follow this book instead.
Enter Bjarne Stroustrup! https://www.amazon.co.uk/Programming-Principles-Practice-Using-C/dp/0321992784/ref=dp_ob_title_bk
Learn C++ (the language you need for Unreal Engine) from its creator. Very beginner-friendly too. "The book is primarily designed for people who have never programmed before".
The second edition is due in June http://www.amazon.com/Programming-Principles-Practice-Using-Edition/dp/0321992784/ref=sr_1_2?ie=UTF8&amp;qid=1398086459&amp;sr=8-2&amp;keywords=programming+principles+and+practice+using+c%2B%2B
ovde je neces naci, tako da bih ti preporucio amazon. obavezno uzmi 2nd edition posto sadrzi najnovije standarde (c++11 i c++14).
kada uzimas knjigu sa neta, proveri bookdepository.com i amazon.com i vidi koja je jeftinija. ako su iste/priblizne cene, uzmi sa bookdepository posto isporucuju mnogo brze od amazona.
If good is the priority, I recommend going straight to the source -- the guy who invented the language, Bjarne Stroustrup. You can buy it new for $35, or head to your local library and borrow it for free.
I play with C++ as a hobby. I'm very far from being even good at programming in this language, but I'll tell you what I've done so far.
I first read this book: Programming: Principles and Practice Using C++ (2nd Edition). This book is written by the very man who developed C++.
Now, I know it looks daunting since that book has about 1200 pages, but a lot of it can be skipped if it doesn't pertain to what you want to learn.
After reading that book and making a couple small programs, I decided that I would give SDL2 a try. SDL2 is a 2d graphics library that includes window management. I did this first since it has a lot of documentation on how to use the library, and you can usually google something if you have problems. SDL2 can also be used in conjunction with OpenGL, so it is worth at least getting familiar with the library.
After all of that (at this point, for me, it had been about 2 months of off and on practice), I finally googled how to learn OpenGL. I followed some tutorials and tried to make some programs, but I learned that OpenGL was way over my head. I was able to get a few small programs running. There was one program I made that procedurally generated terrain, but I learned that OpenGL really isn't necessary if you want to JUST make a game.
When using OpenGL there is a lot of code that you will use over and over again, resulting in you sort of developing your own makeshift scene manager. You'll also want to learn how to program shaders, I haven't even done this yet, but this doesn't only apply to OpenGL. You'll probably want to learn how to program shaders no matter what.
So, after dealing with OpenGL and its steep learning curve I decided to give some rendering libraries a try, and this has been the best course for me to take. Here's a list of rendering libraries. I use Irrlicht because it is relatively lightweight, easy to use, and setup. Irrlicht isn't really updated too often so you won't get the latest features.
If you really want to learn OpenGL then this is the tutorial I followed: Link. It even has information on how to use SDL2 with OpenGL. This will get you started at least.
As for the IDE I use, Netbeans. This is mainly for Java, but it works well for C++. There are all kinds of IDEs you can use, just search around Reddit for other people's opinions of what they like.
I hope I helped! Ask me any questions you have and I'll try to answer them, just note, I'm not even close to a professional developer. I just like to program and play with graphics!
EDIT: Oh yeah, if this makes any difference to you, I did all of this on a Linux distro.
If you're already familiar with basic programming and just want to get into C++ then: A Tour of C++. If you want to learn to program, and use C++ while doing so, then try Programming: Principles and Practice Using C++
Bjarne Stroustrup - Programming: Principles and Practice Using C++
If you already know about pointers, etc
tldr if you want to learn cpp, get a book. This one is good. Don't attempt to dive into programming with Cpp in unreal, learn cpp first then go into unreal. or just go with unity. Books are your friend.
+1. Videos will never do justice. Youll learn more by reading. Ive watched videos since middle school (8 years) and learned a lot of either a) outdated material or b) bad programming habits. Ive corrected all those reading books.
Save yourself the trouble and read this book if youre a beginning to learn c++ especially for the first time then read this: https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=XFDD6E58W0CWE1K404XZ
I've heard good things about
Programming: Principles and Practice Using C++ (2nd Edition)
Haven't read it, but I do have Stroustrup's more advanced "The C++ Programming Language" book and can tell you he's a great author.
This is a very dense book, but is undoubtedly the best for learning C++ and I would argue programming in general. Just be aware, as with learning the 'vanilla' version of any programming language, you may feel dissatisfied with still not being able to do too much, and while the book does introduce GUI programming with C++ with the Fast Light Toolkit, I would suggest learning SFML or even how to use C++ within the Unreal Engine to truly motivate you.
Remember that there is no utility in learning a programming language in of itself, only in being able to actually do something with it.
I would pick up both a data structures book and a C++ book; for instance, Data Structures and Algorithms in C++ and Programming: Principles and Practice Using C++.
Of course, you can use any data structures book you like; some are better than others, but they all teach the same stuff. But when you're learning the abstract stuff at the same time as basic programming, it can be nice to see examples in your language. Principles and Practice is one that I wholly recommend, though, as an excellent introduction to modern C++.
Also, be aware that there is way more bad C++ material out there than there is good C++ material. If in doubt, check out the semi-official book list or ask around here.
I recommend C++ Primer, 5th Ed. by Stanley B. Lippman. The book is designed such that it teaches C++ with a more "modern" approach: learn to use std::vector before writing your one, present a problem, then pose a new feature as a solution to said problem, etc. I have recommended this book to many and have heard great feedback from both beginners and language-transitioners alike.
For other options, check out The Definitive C++ Book Guide and List. I would avoid "accelerated" or "tour"-like books, as they are by nature briefer and shallower in their coverage of C++ topics than the more beefy options like Principles and Practices or TC++PL, and as such have a tendency to leave gaps in your C++ knowledge.
If you're only gonna read one book it should probably be this one: https://www.amazon.com/dp/0321992784/
That said, the idea of my producer "deep diving into the project" absolutely terrifies me. If you want to learn the basics of programming to make communication a little easier then that's great but nobody is going to want you touching code. Being able to write C++ - especially C++ learned quickly - doesn't make you a good developer.
If this is your first programming language its a tad unfortunate that it has to be C++ but by no means does it mean it is bad or anything. In fact its the language most aspiring computer scientists started out with in college prior to the 2000s.
You can start off with
Programming: Principles and Practice Using C++ and then going onto The C++ Programming Language, 4th Edition after completing the first one. There is also C++ Primer that is also highly recommended as another book for starting out.
A book along with web searches when you have questions will get you pretty far. Having someone to ask questions if you get stuck on something conceptually is also useful. The best advice I can give you is to really play around with the language as you are learning and do most of the practice exercises too. Stroustrup also has solutions to the exercises from the first book I mentioned online. Hopefully you have some months available to learn the language. On top of that you might need to learn some computer science topics like data structures as well. You just can't rush these things but you can accelerate it a little.
As for me, my C++ knowledge is 'rusting away' by the day. I learned the STL with C++ when it was made official only a couple years after (like over 10 years ago). Nowadays you have Boost and the language itself has changed. I have not presently needed to update my C++ knowledge to what is latest and greatest but I shall.
Also worth pointing out is that In my experience, when you work with different companies you might find that you never use official C++ libraries and most current language features, but you are supporting legacy stuff that was first written maybe 20 years ago when not even built-in STL was available. This means either you are going to use some now-arcane implementation of someone's version of base libraries or the company rolled their own from the ground up many years ago, and because its so well entrenched in the code-base it continues to be used many years later. Not a big deal, but you might want to find that out for yourself, that if you are learning the latest and greatest of library and language features - you might or might not be using it in practice with your company.
You can PM me if you have questions but I'm not sure I can commit the amount of time you might need in a tutor role.
I would recommend Stroustrup's book for C++. Then, like the other's suggested, hit up Hackerrank or something and then maybe try some projects of your own.
10/10 would recommend Programming Principles and Practices by Stroustrup
Programming: Principles and Practice using C++ 2nd Edition is made by the creator of C++ himself. This book is meant for first year computer science students to learn to program via C++. There are sections within the book that cover GUI and other UI conventions, however it focuses mostly on programming principles. It is a great book to introduce yourself to Programming and C++.
Stroustrup's book is considered (one of) the best for beginners. Lots of exercises in every chapter.
It's good to point out that all of these things are my opinions and not facts written in stone. However, I've seen others who share my point of view.
Teaching C++ correctly is an incredibly difficult task. It's difficult to overemphasize how difficult it is. Java not as much, but if put in contrast with JS and Python, it'll seem way more difficult.
((begin edit)) And just to be clear, I really meant teaching, and not learning. Although I believe learning C++ is more difficult than learning Java, JS or Python, I was referring to teaching. Instructors have to decide which languages to teach. Choosing C++ adds a large burden for them to deal with. Choosing JS on the other hand, doesn't add as much (it's a lot less in fact). ((end edit))
There are many issues which contribute to that. Here are some of them:
It is an introductory-level book so it does cover the basics, and progresses through topics building only off previously covered material, so it's not like it suddenly drops you off in the middle of enterprise-level topics. But there isn't a lot of hand-holding. As a beginner you might need to do a bit of additional googling to feel confident that you've really grasped the material in the book.
I initially found Accelerated C++ on this list of recommended books on StackOverflow.com. It lists Programming Practices and Principles in C++ as the recommended book for people who want to learn C++ but have no prior programming experience. I'm not familiar with that book, but perhaps it would be more suitable for a non-programmer :-)
This is the only C++ book you need: https://www.amazon.com/gp/product/0321992784
Si tu veux apprendre le C++, sous windows tu peux télécharger VisualStudio Community (je crois que c'est comme ça que ça s'appelle la version gratuite maintenant) de Microsoft et essayer.
Sur le net ya des tonnes de cours sur google, en français en anglais pour commencer. Il faut déjà pratiquer et mettre les mains dans le cambouis.
A savoir après des années de stagnation le C++ évolue (presque) vite, certains livres parlent de C++11 alors qu'on est au standard C++17 et bientôt C++20
Après, si tu veux vraiment apprendre des trucs pour :
Sans oublier sur le net les bonnes pratiques, à jour:
Et sur youtube il y a plein de vidéos aussi, et des conférences.
Et je conseille d'apprendre le C en même temps, parce qu'en C++ on utilise beaucoup de librairies en C.
There is not much to it, just grab a book that applies the concept; like this one: http://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=sr_1_2?ie=UTF8&amp;qid=1425383272&amp;sr=8-2&amp;keywords=c%2B%2B+stroustrup
It's also in C++ ;)
In any case, first of all, make sure you're comfortable in Python before you move on anywhere. Once you're happily writing programs, get A Tour of C++ and see if you like it. If you do, get C++ Primer or PPPUC++ and work through those. My main concern would be that the C++ course may be teaching highly outdated material, and may be of very little use for actually learning C++. If that's the case, knowing a little more beforehand will make it much easier to not grow jaded and resentful.
Since you are a C++ beginner, you should initially concentrate your efforts in learning the language.
My suggestion is to read Programming: Principles and Practice Using C by the father of C++ Bjarne Stroustrup https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ and do the exercises from the book. Try to do these on your own, if you are really stuck on something search an alternative explanation, ask on Reddit /r/learnprogramming or Stackoverflow.
Also, very important, use a modern C++ compiler like the one from Visual Studio 2017 if you are on Windows, G++ 6 or 7 if you are on Linux, and latest Xcode if you are on macOS.
This is C++, there are various resources for learning it. It is more difficult than some other programming languages, I would personally recommend that you start with something easier to learn like Python.
C++ Book - https://www.amazon.com/dp/0321992784/
Other C++ books - http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
Python book - http://www.diveintopython3.net/
Other Python books - see sidebar of /r/python
I've been writing C++ for about three years now, so I'm mostly familiar with C++11 (one of the newer updates that added quite a bit of functionality and sort of "updated" the language to make it more modern), though there are definitely people with way more experience in it than me on here.
C++ is a language with a very steep initial learning curve that drops drastically once you understand the basic concepts and write a few programs to practice the concepts involved. If you feel like it's too difficult at some point, take a break, then come at it from a different approach (and of course write a few tests to make sure you're getting it). This applies to other languages almost equally, of course.
You should try to learn C++11 (and C++14, a minor update) more than older variations of the language because it added quite a bit to make it easier to read and write with.
Online guides for C++ tend to be outdated or just plain wrong, it's actually one of the few languages with that quality (although that's changing slowly). It's best to get a book like The C++ Programming Language or Programming Principles and Practice Using C++ (which I would recommend for you over the former, which is actually more of a reference book). By the way, they're both authored by the initial creator of the language, so they also explain some of the design choices and details of the language which may or may not help you better understand it.
Beyond that, just do what's suggested for any other programming language (look at references, read actual programs written in it, etc.)/
There is book written by the creator of the C++ for people who are learning how to code: https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20
Other than that, there are the r/learnprogramming sub, the http://cppreference.com where you can learn everything about the language, from the the very beginning and the other books written by Scott Meyers and the creator of C++ himself. All of them are great. Hope it helps.
If you actually want to learn to implement efficient algorithms and data structure in C++ you might have a long road ahead of you since loads of them are quite complex. If you're interests are purely in machine learning than I would suggest you make use of the containers and algorithms provided by std and boost.
Going more domain specific and using things like armadillo or eigen. The later is used in many popular NN libraries/frameworiks such as tensorflow while the former is (based on my subjective opinion) quit easy to use, more similar to matlab and used in a number of libraries such as dlib and opencv. These "higher" level libraries are likely even better suited for your needs since they may help you use multiple cpus and gpus for your algorithms.
Further more, if you are interested in getting something shipped out quickly check out some C++ ML libraries, my personal favorite is Dlib but its quite limited in scope. However, I assume you wish to implement your own algorithm, in which case you are in luck because most of these libraries are open source:
(are some examples of such libraries).
For familiarizing yourself with C++ I'd recommend:
-> so documentation
-> [Programming: Principles and Practice Using C++](https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20](https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20)
-> Effective Modern C++
Stack overflow documentation has plenty of examples that explain things which might otherwise seem strange about the language, Programming: Principles and Practice Using C++ was written by the creator of the language, Bjarne Stroustrup, who also happens to be a university teacher, so I would say it could be considered an objectively reasonable starting point for learning C++ for someone not very experienced with programming and Effective Modern C++, while aimed at programmers that are already experienced with C++, might give you a bit of insight into understanding why old codebases look the way they do and how to improve them and not repeat their mistakes (its also quite a well written book in many aspects, quite a pleasure to read).
Also I would avoid any C++ centric book on algorithms and data structures written pre 2011 like the plague, since the language has evolved a lot and you might find yourself learning a very old.
Yes, you are right, this one is quite good.
I also strongly suggest this book if your are just getting into programming!
Programming: Principles and Practice Using C++ (2nd Edition) https://www.amazon.com/dp/0321992784/ref=cm_sw_r_cp_apa_i_u-avCbMTKX625
A big step with coding is giving yourself projects. Code an Arduino or other microcontroller to work on a model rocket, or control a miniature rover. Little projects like this will give you a reason to learn, and give you experience related to the field.
I'll repeat what /u/Transputer said: You need a book.
Especially since you are learning C++ from scratch and it's your first language.
This book is written by the creator of the language, it's recently updated to cover the new additions by the C++11 and C++14 standard.
It's designed to teach first year university students programming in C++
Your other option is to learn Programming through another language that might have video lectures or tutorials (Java?) once you are familiar with the concepts you can pick up a smaller book and get acquianted with C++
I'm not the best source of advice for books. Once you have a good grasp of C++ I would suggest Effective Modern C++ by Scott Meyers. I haven't read the book but Programming: Principles and Practice Using C++ (2nd Edition) would be the book I would suggest for beginners to C++. It's written by the inventor of the language, it's for beginners, and crucially, it covers the C++11/14 standards. I've read other books of his and enjoyed them.
Whatever you do, stay away from "Learn C++ in ... Days!" type of books.
Super tare, o motivatie in plus sa ii dau maxim :)!
Din ce invat efectiv acum este cursul asta,
https://www.udemy.com/video-course-c-from-beginner-to-expert/, am ajuns la bitwise operators.
Ca extra lectura pe autobus ori cand sunt on the move mi-am scos cartea asta https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784?ie=UTF8&amp;ref_=asap_bc. E scrisa foarte bine cel putin cat am reusit eu sa citesc, ma prinde.
In principiu am idee ce inseamna GIT Hub evident ca nu am lucrat efectiv cu el, bug trackere am putina cunostinta de JIRA si Mantis, dar in rest de ce ai scris urmeaza sa invat, ergo e chineza deocamdata :)).
Multumesc tare frumos inca odata!
I spent money on a book in attempts to kinda force myself to sit down, it hasn't gone too well. But when I do, it feels more scholarly so I am more focused on learning?
I got this one for free, it's made by the dude who made C++ himself, and is more accessible than expected!
And I bought this one, since it felt more activity based!
Oh, I just see that the great price is for the first edition. The second edition is quite a bit more expensive, also used, but at $45 still very much worth it, I'd say.
You wouldn't learn anything wrong from the first edition, but there have been a few exciting changes and additions to C++ lately (C++11 and C++14 standards), which are touched upon in the second edition.
Book by the Creator of C++.
The Cherno C++ youtube playlist.
Cherno is more gaming focused but has in depth tutorials right from the get go. Its dense. The book is thorough and a bit out of date but the main concepts still apply iirc. Udemy is a free course that handles most of the fundamentals.
Yeah I own http://www.amazon.com/gp/product/0321992784?psc=1&amp;redirect=true&amp;ref_=oh_aui_detailpage_o09_s00 and have been working through it but I was hoping someone might know of a good tutorial that glosses over the hello world parts of tutorials and moves forward with using pointers (I mean like the pointer opperator "<-"), header files and other C++ features and syntax.
This is a great book: http://www.amazon.com/gp/product/0321992784/
Is it fun? Sorta. But its a textbook. For learning computer programming. Is it Rails for Zombies? No.
There are lots of books to get you started. I recommend starting with Bjarne's book. I found /u/STL's videos on Core C++ to be quite good, but they do assume some familiarity with programming in general and C++ syntax in particular (Hi, Stephan! :) )
Of course, there are lots of examples in this sub. Although some of them are examples of what not to do.
I don't understand why people are suggesting codecademy for C#/CPP. Microsoft Virtual Academy is excellent for learning C#. I suggest this and/or this for learning CPP.
Go with this. Dislaimer: it's C++, not Java/C# as you requested, but I am recommending it for a different reason.
You will learn about computer science (your own parser and a polish notation calculator, graphics), data structures (your own vector, a.k.a. List), algorithms, build small meaningful programs (multiple iterations on the calculator, a text-based computer game) and also each chapter has a bunch of assignments that require you to either expand on what was done previously or build something completely new. You will learn to work with both pointers, generics and object-oriented principles.
In the end of the book there is even a few chapters on embedded programming (chips and low-level stuff).
I am a self-taught developer and have used this when I was starting out on my own.
Since you already have some background you can freely skip the first several chapters and dive into the object oriented stuff.
I cannot recommend this highly enough.
Plus the author is the creator of C++ and is REALLY great at explaining complex topics in plain English. I don't have CS background and have understood all the topics in there.
Programming: Principles and Practice Using C++ is a great book on C++ that doesn't assume as much programming experience as C++ Primer. While the Primer is pretty good, if you haven't done much programming before C++, I would recommend Principles and Practice.
Threads in /r/cplusplus have recommended
Anyone here recommend this book? Amazon link
I'd really like to learn C++ and heard that books are one of the best ways to go, so is this one a beginner could start reading?
It's not necessarily for game development, but still.
While books are great to read, you should do a bit more research on good books for the topic you want to learn (their intended audiences, what they cover, learning approach, etc.) before jumping the gun and spending $70 on some books you might never finish.
Also, I'd be wary of a 390 page book that covers C++ and Game Programming (might be a bit terse, or not cover enough programming concepts, etc). Maybe you should take a look at the book written by the creator of C++.
And I recommend figuring out a career path, it might be a bit much to learn about web development / web programming and also learn about systems / application programming at the same time. It's better to specialize in one language and be an expert than to be a novice in many.
Si tu lis en anglais et aime les gros livres, je te conseille Programming: Principle and practices using C++ écrit par le créateur du C++, qui est surtout un livre de programmation en général et le support du cours qu'il donnait sur la programmation à l'université.
To answer your questions in the other comments, no language requires pre-requisite knowledge in another. You can sufficiently learn from the ground up with basically any language, including C++, it's just a matter of how... painful... you want it to be. I don't think anyone would advise you starting in Assembly, for example. C++ isn't usually recommended as a first-time language, but that being said it's still definitely possible. A lot of people recommend Bjarne Stroustrup's (the creator of C++) book for first-timers who want to get started with C++. Though it's a massive tome.
Personally, I think that regardless of whether or not you're going to have an easier time learning one language before another, you'd be better off getting started with the language you eventually want to end up in... so if that's C++ for you, go for it.
I know how you feel, my college was practically the same. Here are some resources that helped me through:
TheCherno has a really nice C++ tutorial. Might not be the best on modern standards, but if you are looking for a place to start, this is a good one, really explains stuff nicely.
These two so far is the most recommended books I could find in this thread, Programming Principles has more nice exercises and is what I personally used, but to be honest just go with the one that clicks for you. read through the preview chapters if you could find them and choose the one you like.
I think this is what helped me the most at the start if you don't know what to do, solving problems really helps you get comfortable with the basic language syntax, programming logic and is a lot of fun.
Lastly, Google search is your best friend, seize it. Don't be afraid of making a lot of mistakes because you are going to make many AND be willing to explore! Because chances are, there is always going to be a better modern way to do something. Try to know the advantages and disadvantages(Important) of each way if you could, it all may seem so cryptic at first and confusing(it probably is) but it will all click someday.
Learning C++/Programming is a life-time learning, Good luck on your journey!
I've touched this book before and it didn't help me as much as this when it came to actually learning.
In the sidebar there is link to a book guide. Pick a book based on your current programming language skills. From what you are writing I guess you are an absolute beginner, so I'd suggest either C++ Primer or Programming: Principles and Practice Using C++.
A general piece of advice: learning a programming language is a lot about doing. Just like with a human language, just studying without actually using it does not work. You need to practice, practice, practice.
C++ has a bit of history. From 1985-1998, it wasn't standardized. C++98 was the first standard, then C++03 (some minor helpful additions). The 2011 revision (C++11) was a big turning point for the recommended way to use the language. It's a bare minimum that any learning material you use follows that standard, or a later one. C++14, C++17, and the upcoming C++20 all bring new features, but on a beginning level, I don't think the differences between 11, 14, 17, and 20 will be huge.
Honestly, I took 2 school classes, 20 years ago and 12-13 years ago, and those got me the basics, as they existed at the time. So, I'm not so familiar with good beginner's texts, or the usually recommended online resources.
MIT's OpenCourseware has an Intro to C++ class, but the version posted is as taught in January 2011, and it doesn't recommend a text, instead pointing to some online resources. At least the online resources are more likely to be somewhat up-to-date.
As a reference, CPPReference is pretty much my gold standard. There is a similar reference at cplusplus.com, but it has the reputation of occasionally being inaccurate. And although they've got a beginner's tutorial, it looks like it teaches some things in a less-than-modern way (requiring things like completely manual memory management).
Wikiversity has a C++ Intro too, but it looks like at least the earlier chapters have similar memory-management shortcomings as the cplusplus.com one, so I wonder if it's usual to teach smart pointers as an intermediate topic, or something. If you go through those tutorials, it might make sense to read A Tour of C++, which would give an overview of the newer features in the language, ranging from beginner, to intermediate and advanced, but not going into things to an overwhelming depth.
I did find Programming Principles and Practices Using C++ 2nd Edition, published in 2014 by the creator of the language. It's designed as an introduction to programming, using the C++ language. If you're willing to pay the money, I'd go for that. Otherwise, you can certainly piece together information using various online sources.
On another thread, someone mentioned Google's C++ tutorial, and it's probably reasonable to read through that one too.
I have started reading and working through Programming Principles and Practices Using C++. So far it has been a great resource for me.
For books, this one is great. Also, check out John Purcell's C++ for beginners on udemy, which is free.
A real book, too. I saved a couple bucks getting Stroustrup's Programming: Principles and Practice Using C++ (2nd Edition) on Kindle and regret it; having the actual pages to flip through and revisit as I need would be so much nicer. Not gonna make that mistake again.
after the beginning c++ through game programming do you recommend c++ primer or Programming: Principles and Practice Using C++ (2nd Edition https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20
I would strongly suggest you pick up this book from the library, it will change your mindset into a programmer: (first edition is very good as well) - Programming: Principles and Practice Using C++
by Bjarne Stroustrup (Author) http://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=asap_bc?ie=UTF8 - If you will follow the book from start till end and do all the exercises at the end of each chapter, you will not face the problems you are talking about. Good luck - Yves Soete
Programming: Principles and Practice using C++ by Bjarne Stroustrup, the inventor of C++.