Finding a good C++ book

Hey Sup Forums,

So I've been looking for a good C++ book for beginners, I do game programming as a hobby and since Unity shit the bed and GML is a crock of shit I decided it was time to learn the language literally every single other engine use: C++.

I got recommended "Jumping into C++" but the only version was released in 2013 and several comments suggest that it's already very outdated.

The two other promising (and modern) books I found were:

C++: The Ultimate Beginners Guide to C++ Programing
amazon.com/Ultimate-Beginners-Guide-Programing/dp/1540742121/ref=sr_1_1?s=books&ie=UTF8&qid=1482007375&sr=1-1&keywords=c++&refinements=p_72:1250221011

and

C++: Beginner to Pro Guide (C++ Programming 2016)
amazon.com/Beginner-Pro-Guide-Programming-2016/dp/1540505588/ref=sr_1_4?s=books&ie=UTF8&qid=1482007375&sr=1-4&keywords=c++&refinements=p_72:1250221011

Either of these look good, or are there any Sup Forumsentlemen here with a better recommendation?

Just to give you an idea of where I'm at, I would say early/mid-beginner. Took a Java100 uni course that also covered basic CS principles, messed around in Python, C#, and GML(lol) for a year or two. Most of these books seem to be designed with "complete beginners" in mind but reviewing the basics or burning through a few easy chapters before getting into the meat of it isn't a problem.

Other urls found in this thread:

devdocs.io/cpp/
open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf
stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
learncpp.com/
twitter.com/NSFWRedditVideo

if you need anything other than the documentation your literally a brainlet

sticky

don't waste money

Will documentation explain to me in detail how classes work, data and memory management, etc.?

yes
devdocs.io/cpp/

>this foul year of our lord, two thousand and sixteen
>not using a copy of the standard to learn C++
open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf

stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

>C++: The Ultimate Beginners Guide to C++ Programing
>98 pages
>last topic covered is arrays

It's like someone just publish a website's quick guide to C++.

>C++: Beginner to Pro Guide
>104 page
>like the above but also has file I/O, strings, namespace, and basic class info

How the fuck can he say "to Pro"? Better title would be "know nothing to absolute beginner".

>Took a Java100 uni course

Protip: Do not shoehorn classes and inheritance into every program if it doesn't make things easier for you (which it usually doesn't)

>So I've been looking for a good C++ book for beginners

There's no shortcuts in learning. You're going to have to read a book with over 900.0 pages:

Programming: Principles and Practice Using C++ by Stroustrup
C++ Primer by Lippman, Lajoie, and Moo

Then get a book on data structures and algorithms because you're going to need that knowledge:

Data Structures and Algorithms in C++ by Drozdek
Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching by Robert Sedgewick

those two books look like a fucking rip off. look at all the reviews. so similar. obviously all faked with the buy/review/refund scam to get a verified purchased review status. they are all from the last few days and aint no programming book gonna sell that much and have people read it in such a short time frame from release. also both books have almost identical layout (look at the back covers, the barcode section specifically).

so avoid those books. jumping in c++ is a good book. a bit dated sure but still a good book. or get something from the stackoverflow link someone else posted

Thanks for helping me avoid that landmine

What would be the cutoff point for a C++ book being "too old"? I'm inclined to go with "Programming: Principles and Practice Using C++" or something else by Bjarne from the stackoverflow link simply because he's the guy who made the language.

>and since Unity shit the bed

It's the same like it's always been. how did it shit the bed now more than any other time?

The update to their subscription model pissed off a lot of people and their recent 5.0 updates have been unoptimized and buggy as hell.

>The update to their subscription model pissed off a lot of people

What changed? Looks like it always did to me.. But I can't remember any details

C++ is split into two main eras. Everything before C++11 and everything after it.

Now what you want to code is C++11 and later as it is a much nicer language overall. However there is still a fuck load of pre-C++11 code out there and the reality is you need to understand things in that old code so you cant avoid learning about the old ways as well.

basically you want to write new code in C++11 where possible but you need to understand pre-C++11 to work with old libraries and codebases.

Programming Principles and Practice is a solid book although hard going. If you already have some experience programming then check out C++ Primer by Lippman and Moo. It is a more comfortable read IMHO.

as for books being too old i personally think learning from a good old book is better than a shit new book. like i said you are gonna need to know the old ways as well as the new so it doesnt matter much imho. people who say only learn C++11 probably dont write any real world software

So for example if I'm not doing all of my code by myself but using a game engine that supports C++, I would want to write code in C++11 but chances are the engine's libraries are at least partially written in pre-C++11?

Basically they screwed everyone who went for the "$1000 single-time purchase" option and they obnoxiously blocked certain important features behind a paywall. There were a number of other complaints but I don't remember them off the top of my head.

>Basically they screwed everyone who went for the "$1000 single-time purchase" option

pretty shitty

Any opinions on this: learncpp.com/ ?

correct. where possible you will want to write C++11 as it is just a lot fucking nicer than C++98. However there are times/places when you wont have the choice and will have to go with 98 due to stupid shit like the code only being able to compile with a certain compiler version which is from 2002 or something shit like that.

its an ok reference. so is cplusplus.com

Web resources should only be used as a quick reference. There are no replacements for books.
>Programming Principles and Practice is a solid book although hard going. If you already have some experience programming then check out C++ Primer by Lippman and Moo. It is a more comfortable read IMHO.
These are solid recommendations. Coming from other languages I still went with strousops book. It actually taught me the fundamentals and principles of C++ and the idea behind std lib even though many chapters could be skipped if I wanted to.

Which Boost libraries would you consider important to learn? Filesystem and ASIO are obvious, but what else?

I'd use std lib for everything where there is a std lib. ASIO is pretty good but I'd probably use ZeroMQ or nanomsg with protobuf work networking applications. The command line parameter one is nice to pass options to a program.

I wouldn't spend too much time diving into libs if I didn't intend to use them though. Qt is pretty nice if you want a .net similar framework. Just don't abuse it and infest your code with it.

>What would be the cutoff point for a C++ book being "too old"

Pre C++11

>I would want to write code in C++11 but chances are the engine's libraries are at least partially written in pre-C++11?

Nothing was removed or changed, so compatibility isn't a problem.

>ref=sr_1_1?s=books&ie=UTF8&qid=1482007375&sr=1-1&keywords=c%2B%2B&refinements=p_72%3A1250221011
>ref=sr_1_4?s=books&ie=UTF8&qid=1482007375&sr=1-4&keywords=c%2B%2B&refinements=p_72%3A1250221011

You don't need to post url query arguments in links. Cut them off.