Advertisement

C++

Started by January 19, 2016 03:34 AM
25 comments, last by Alberth 8 years, 10 months ago

http://www.amazon.com/A-Tour-C-In-Depth/dp/0321958314 this is Bjarnes new book on C++ and its more written for people who can already program as in construct an algorithm and just want to pick up C++ as a language.

This one isn't all that great, in my opinion. It is very short and rather shallow. As opposed to its sibling from the same author in blue. The blue book costs about twice as much, but it is definitively worth it. The "blue" book contains everything that is in the "red" version as part of the first one or two chapters, too (but somewhat extended).

http://www.amazon.com/A-Tour-C-In-Depth/dp/0321958314 this is Bjarnes new book on C++ and its more written for people who can already program as in construct an algorithm and just want to pick up C++ as a language.


This one isn't all that great, in my opinion. It is very short and rather shallow.


Which is the entire point of the book. It's supposed to be a basic overview of C++ that you can read in a few hours, not an in-depth explanation of every feature.

As stated, it's for people who already know how to program, or know how to program in old C++ (pre-C++11) and want to learn what "Modern" C++ is all about.
Advertisement

There are many good book lists out there.

My recommended c++ book list and the reasons for them is found here.

Meyers' books are great, but they're hardly for the novice -- and "More Effective C++" is woefully out of date since it never received a second edition (there still are some gems of wisdom inside, but its something you might want to check out from a library and peruse rather than buy and read cover-to-cover). Effective C++ 3rd edition and Effective Modern C++ should definitely be on your bookshelf, they just aren't the first ones that should be there.

And Modern C++ design is also a great book, but its also entirely dated since the advent of C++11 and C++14 which greatly added to the template meta-programming facilities provided by the standard library (std::is_* and friends) and by the language itself (variadic template arguments, auto, etc). 5+ years ago it was a must read for the advanced C++ developer, now its probably not much of interest except for serious library providers who use TMP techniques, and especially those who must maintain support for older compilers.

I do like Bjarne's small, red book A Tour of C++, but its true that the material is included in his large, blue book The C++ Programming Language, which you should soon add to your bookshelf anyhow. Tour has its merits, but its redundant if you're set on its larger sibling.

For the beginner, the very first book I'd recommend would be either Bjarne's Programming: Principles and Practice in C++ 2nd ed., *or* Lippman's (and friends) C++ Primer 5th ed (not C++ Primer Plus buy a different author).

The next tier of books you'd want are Bjarne's The C++ Programming Language 4th ed. and Jossuttis' The C++ Standard Library -- both fall under a style I like to call "Reference by example" -- which basically means to me that each chapter is more-or-less self-contained and can be read individually, you don't have to read it front to back (but you can, of course), you mostly just dip into whatever you need to know about as you need to know about it.

The third tier of books is where you'd find books like Meyers'. They're probably more practical than the 2nd tier books in many ways; I certainly don't mean to say that they're not useful until you've read most of the 2nd tier. I only mean to say that I wouldn't buy them *before* buying the second-tier books, but do buy them at the same time if you can afford to.

[EDIT] corrected confusion between C++ Primer (excellent) and C++ Primer Plus (less excellent).

throw table_exception("(? ???)? ? ???");

if you don't mind doing C instead of C++ you could watch these videos

https://www.youtube.com/user/handmadeheroarchive/videos

he does a one and one half hour video every day

one hour is coding and explaining

the last 1/2 hour is Question and Answer

he streams live on twitch

http://www.twitch.tv/handmade_hero/profile

then he uploads the videos to youtube

here is an episode guide

https://hero.handmadedev.org/jace/guide

there is also a forum there so you can ask questions

and if you pay $15 you get access to all the code

so every day he uploads all the code he did for that day

and you can download it the following day

My recommendation...

1) Programming: Principles and Practice Using C++ 2nd Edition
Is a book designed to help you learn to program (if you have never programmed before) using C++ as a tool. It is also the intro course book for several degrees at Texas A&M University. Not to mention it is written by Bjarne Stroustrup himself.

2) C++ Primer 5th Edition
The usual recommendation for Beginner C++, but that phrase is a little misleading. It isn't a book for someone who as never programmed, but rather a book for a programmer who is experienced in another language and looking to learn C++ now. It covers C++ more in-depth.

3) The C++ Standard Library: A Tutorial and Reference
Covers the standard library in-depth.

4) The C++ Programming Language (as a reference)
I recommend this purely as a reference book. It too is written by Bjarne Stroustrup. You can certainly read it cover to cover if you like, but it makes a better reference than a book about learning due to its technical nature.

You can't go wrong with Scott Meyers' books either:

Effective C++

More Effective C++

Effective STL

Effective Modern C++

Since coding style usually comes up, most of the books touch on the coding style, and you can see a good example of a commonly used style by looking at their code samples throughout the books. You can also sift through the ISOCPP site ( https://isocpp.org/ ) which is loaded with information.

Can't afford books? There are some tutorials on sites (some with forums to ask advice):

Tutorial: http://www.cplusplus.com/doc/tutorial/ Forum: http://www.cplusplus.com/forum/

http://www.dreamincode.net/forums/forum/48-c-tutorials/

http://www.learncpp.com/

Then, of course, there is this site to ask advice on when you are stumped.

!@#, as I stated in another thread, but felt needed pointed out and repeated here:

What's his credentials? I don't see anything listing his experience as to know he isn't forgetting any vital details. I'd watch his things with great skepticism and caution. We could also get into the fact that most people when listening to a video or such may zone out and miss details. This is why I don't recommend videos to learn from because you can miss something, ISP issues could cause it to skip while playing, the viewer may zone out at points, and most importantly, a beginner won't know if he is explaining anything incorrectly or missing vital information that needs to be covered. Without watching the videos or knowing who the guy is, it makes the channel seem like he is learning to do it and then turning around and teaching what he just learned (a beginner teaching a beginner), which [if true] runs the risk of too many details being missed. I'd say watch at own risk for them, but that is just me.

Advertisement

f you don't mind doing C instead of C++ you could watch these videos

https://www.youtube.com/user/handmadeheroarchive/videos


While handmade hero is an interesting diversion, and an academic curiosity I wouldn't recommend it to programming or game development newbies as it is akin to learning to make a skyscraper out of matchsticks...

f you don't mind doing C instead of C++ you could watch these videos

https://www.youtube.com/user/handmadeheroarchive/videos


While handmade hero is an interesting diversion, and an academic curiosity I wouldn't recommend it to programming or game development newbies as it is akin to learning to make a skyscraper out of matchsticks...

since you get every bit of code he's doing every single day I would think it's a must for newbies

you get the code, you know it works, you've heard him discuss why it works and what it does

it's a bargain for $15

and watching the videos and having him explain tilesets, how they work and the math to locate position is so much better than reading it from a book

!@#, it's really rude to go on a downvote spree, downvoting the whole thread because someone disagrees with you.

I do still stand by my statement and believe handmade hero is not wise as newbie friendly material.

It is also NOT C++ which the op asked about.

Do you recommend any other resources for learning c++?

!@#, it's really rude to go on a downvote spree, downvoting the whole thread because someone disagrees with you.

QFE.

[edit: additional comments removed by moderator]

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement