Reddit reviews C++ Primer (5th Edition)
We found 111 Reddit comments about C++ Primer (5th Edition). Here are the top ones, ranked by their Reddit score.
We found 111 Reddit comments about C++ Primer (5th 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!
It depends on whether you're a beginner to C++, a beginner to programming or both. It also depends on whether you prefer a tutorial style -- where you read closely and walk step by step with the author, or a reference -- where you skim, go at your own pace, and follow up when you need more details.
Accelerated C++ is more of a short introduction that hits all the broad strokes. It's good for someone who's already very adept but just needs to get into the mindset of C++.
Principles and practice is a tutorial style book suitable for an introductory course, and isn't a bad choice. The C++ Programming Language is more of a reference style and would be good for people who really prefer that direction.
I've read parts of How to Program Java and definitely was not impressed -- not sure how 9th ed of C++ stacks up.
I'm assuming a beginner is new to programming, but by virtue of choosing C++ enjoys the technical details that allows you to make the most of the language. My recommendation for this kind of user by far and away is C++ Primer by Lippmann, Lajoie, Moo (not to be confused with Primer Plus). This book (3rd ed) was what made me fall in love with the language in university.
It's written by people who were deeply involved in the standards, wrote actual compilers, and know how to present the material in ways that are relevant to the student. The 3rd ed also had sections that went further and explain the underlying compiler mechanism for a given feature which I found so insightful. They somehow managed to marry a high-level tutorial style narrative with important low level technical details that very much mirrors the style of the language itself. The 3rd ed also explicitly called out C++ as a mutli-paradigm language where functional style was possible (which was my first introduction to the concept of functional programming).
I'm not sure how much of that book survives in the 5th ed, but either way I recommend you read the book yourself and see if it's something that resonates for you. I'm looking through a copy of 5th ed right now, and it looks like much of that spirit is still alive. The down side is it appear it's still on strictly C++11, which given the size of the language and intended audience, I don't think is a fatal weakness.
If you want a complement to C++ Primer, Stroustrop's reference is the most complete, but to be honest I prefer C++ Reference for a working programmer.
I highly recommend ditching IDEs entirely for learners precisely because they make it harder to detect and learn from your mistakes. Get a copy of a linux distro, or install XCode command line tools, and invoke GCC/Clang directly. By the time you need to move into larger projects you'll have developed your own opinions on build systems/IDEs.
You have a long journey ahead of you, but here goes :D
C++ Primer: One of the better introductory books.
The C++ Standard Template Library: A Tutorial and Reference: Goes over the standard template library in fantastic detail, a must if you're going to be spending a lot of time writing C++.
The C++ Programming Language: Now that you have a good idea of how C++ is used, it's time to go over it again. TCPPL is written by the language's creator and is intended as an introductory book for experienced programmers. That said I think it's best read once you're already comfortable with the language so that you can full appreciate his nuggets of wisdom.
Modern C++ Design: Covers how to write reusable C++ code and common design patterns. You can definitely have started game programming by the time you read this book, however it's definitely something you should have on your reading list.
C++ Templates: Touches on some similar material as Modern C++ Design, but will help you get to grips with C++ Template programming and how to write reusable code.
Effective C++: Practical advise about C++ do's and dont's. Again, this isn't mandatory knowledge for gamedev, but it's advice is definitely invaluable.
Design Patterns: Teaches you commonly used design patterns. Especially useful if you're working as part of a team as it gives you a common set of names for design patterns.
C++ Concurrency in Action: Don't be put off by the fact I've put this as an "advanced" topic, it's more that you will get more benefit out of knowing the other subjects first. Concurrency in C++11 is pretty easy and this book is a fantastic guide for learning how its done.
OpenGL: A surprisingly well written specification in that it's pretty easy to understand! While it's probably not the best resource for learning OpenGL, it's definitely worth looking at. [edit: Mix it in with Open.gl and arcsynthesis's tutorials for practical examples and you're off to a good start!]
OpenGL Superbible: The OpenGL superbible is one of the best ways to learn modern OpenGL. Sadly this isn't saying much, in fact the only other book appears to be the "Orange Book", however my sources indicate that is terrible. So you're just going to have suck it up and learn from the OGL Superbible![edit: in retrospect, just stick to free tutorials I've linked above. You'll learn more from them, and be less confused by what is 3rd party code supplied by the book. Substitute the "rendering" techniques you would learn from a 3d book with a good 3d math book and realtime rendering (links below)]
Essential Mathematics for Game Programmers or 3D Math Primer for Graphics and Game Development: 3D programming involves a lot of math, these books cover topics that OpenGL/DirectX books tend to rush over.
Realtime Rendering: A graphics library independent explanation of a number of modern graphical techniques, very useful with teaching you inventive ways to use your newly found 3d graphical talents!
There are no good online C++ tutorials. If you want to learn C++ you'll need a good book, C++ Primer 5th Ed. is great for beginners (it's recommended in the wiki!).
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.
I would recommend C++ Primer 5th Edition http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113 to get up to speed with C++11 then probably Stroustrup afterwards.
Books are still the best way to learn C++! C++ Primer, 5th Ed. covers all the basics of C++11 from functions and standard library usage to OOP and templates. Effective C++ reinforces good practices and idiomatic C++ that, despite being written for C++98, is just as relevent today as it was then, some of its contents even more so than ever before. Then Effective Modern C++ then does the same for C++11 and C++14 features, building on top of what C++ Primer covers about C++11 and introducing the subtle changes brought about by C++14. This is my primary recommendation for learning modern C++ from the ground up.
But we live in the internet age! Best make use of it! So many wonderful talks from conferences such as CppCon, C++Now, Meeting C++, ACCU and Code::Dive are all available for public viewing. With regards to modern C++, Herb Sutter's CppCon 2014 Back to the Basics! Essentials of Modern C++ Style and CppCon 2016 Leak-Freedom in C++... By Default are great videos to watch. For more specific topics, here is a list of videos that I've seen and personally found engaging, educational, and worth my time to watch (multiple times!):
rand()Considered Harmful and What C++ Programmers Need to Know about Header
&lt;random&gt;for random number generation,
decltype(auto)(I miss Scott :'( ).
There are also shows such as CppChat and CppCast where interesting events, projects, papers, and people related to C++ are brought up and discussed. There are so many interesting blogs to read!
And there is always people on IRC (##c++, ##c++-basic, and ##c++-general) and the Cpplang Slack Channel for live updates, discussions, debates, questions, answers, and/or just plain fun with a group of people that ranges from complete noobs who are learning the basics, to committee members and library authors whose names are known across the community. If you ever have a question or need help, these are the places to go and ask (/r/cpp_questions is nice too! :P ).
And finally, links to videos, blog posts, articles, papers, interesting Stack Overflow questions, almost everything mentioned above is constantly being shared at isocpp.org and on /r/cpp. Subscribe to both to get a constant stream of links to anything and everything about C++.
Edit: as for C++17 material, the standard is not technically completed/published yet, but that hasn't stopped the community from creating material about it! This paper lists all the changes from C++14 to C++17, with links to relevant papers, and this Git repo provides a simple "then, and now" comparisons of the major changes to the language. Talks describing the changes in breadth and in depth have been given at conferences, and blog posts have been written for a more textual description of the changes. C++17 is not a major update like C++11 was to C++98, but full of fixes, conveniences, more language flexibility and utility, and new toys to play with! If you have a solid foundation in C++11, C++14 and in turn C++17 should be relatively easy to pick up compared to the shift from classic (C++98) to modern C++.
TL;DR Learn C++11 the best you can. Once you are comfortable with C++11, the transition to C++14 will feel natural, and C++17 will be waiting just around the corner.
I would supplement your class with one of the many great C++ books out there, because there are many ways to learn C++ but few of them are good (or even "right") ways.
You should be careful to distinguish between best practices from C++ and the new ones in C++11, and I've found that many courses tend to teach C++ as if it's just C with some extra features.
Of note, some really good books are:
At least as good starting points on the "new" C++, and I'm sure others have some really great suggestions too.
The newest edition of C++ Primer also covers C++11. I'd recommend reading that before reading TCPPPL. See http://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113
Do you already know how to program?
If not, then read Structure and Interpretation of Computer Programs.
If yes, then get C++ Primer by Lippman.
http://www.amazon.com/dp/0321714113/ C++ Primer is what I bought and I found it very useful. It covers all the c++11 stuff
I've been personally learning C++ from this book and it's really good. The only problem is that it talks only about C++11 and not 14 and 17 versions, but these new versions are relatively minor compared to C++11 and there's no better and more comprehensive book that talks about the most modern versions...
If you already know the basics of programming, then the C++ Primer is also an excellent introduction. The 5th edition is updated to include C++11.
> I'm taking a Unix class in c/c++.
Those are two very different things. Please clarify.
> We are using the book by Sobell. I want to ask if I should read the book?
Uh.. if it's required for your class, yes you should obviously read it. If you are looking for supplemental material, I'd suggest:
C++ Primer is one of the usual go-to books for beginners.
[EDIT] Thank you /u/xgalaxy for pointing out I had linked the wrong one. Get this one: http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113
C++ Primer (5th Edition) it's good to start https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=sr_1_1?ie=UTF8&amp;qid=1496834580&amp;sr=8-1&amp;keywords=c+primer
Try to avoid books like "for Dummies" or "Teach Yourself".
There are more bad sources of learning C++ on the Internet than there are good ones. I am not familiar with LearnCpp.com but looking at just a handful of its chapters it is misleading, out of date, violates a number of C++ idioms, and focused on the wrong things wrt. learning C++ specifically.
C++ Primer 5th ed. is a very good book for getting started with modern C++.
C++ Primer (https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/) as /u/sempuki mentioned.
It's clearly written and is really good at teaching you modern c++ concepts and conventions, while many other c++ books are actually "program c using c++" books.
I'm kind of in shock no one has mentioned getting a good programming BOOK.
Read it. Do the examples, answer the questions, experiment and break stuff.
> What's next?
I read plenty of websites to help out new or aspiring programmers, but this theme repeats like a thousand times and I just don't understand it. It's probably an issue with the system, but even then I still don't get why people are this way, it's as if they are not thinking...
Anyway. "What's next?" is immediately obvious to any rational person.
> I'm interested in making a game.
You do that. Tadaaa fucking done why did you even ask.
The problem is people are learning stuff for learning's sake. What the flying fuck? I just don't get it. You should learn stuff because you want to do something. You, OP, actually know what you want to do, making a game, so just... start? You will encounter plenty of problems along the way. You will research those problems and learn a huge amount.
If you notice you are lacking fundamental skills and just don't make any progress, read a fucking book. Have people forgotten that there are books on topics to learn those topics? I entirely taught myself C++ just by reading this, I have infos on how to get it if you want.
Also Go to StackOverflow and read the top 1000 questions (or how many you want).
There are so many resources on the internet... so many blogs to follow and read, so many tutorials to do.
I'm a little bit sorry that this is a rant, but I also included plenty of information so don't you fucking complain.
There are two books with very similar names (C++ Primer, and C++ Primer Plus), and usually, this is the one that's being referred
Best book to learn C++ in my opinion is Accelerated C++: Practical Programming by Example (350 pages). Right from the start, it teaches people to use STL containers and other C++ constructs, instead of teaching "C with classes" like many other books (including Thinking in C++). Unfortunately, it is outdated so you will have to learn about new features of the language. You can use A Tour of C++ for that(180 pages).
If you have the time and will to learn moder C++ from the start, then I would recommend C++ Primer. Similar in approach to Accelerated C++ but longer(970 pages).
Well, time to get a good C++ book then. Here's a decent one:
I am not even kidding here - programming is not something you learn in a day or two. It's a process that lasts hundreds of hours. Meaning you will need to practice and for that you need resources.
Well, to be fair - it really depends on your aptitude and a professor in question. If you were just told to have specific output but nobody has explained basic syntax ahead of the time then it's a shitty course. But if it was covered during the lecture and you just dozed off then it's on you. Well, one way or another it means you will need an extra time at home with a decent resource to work out your problems and learn programming.
Also - be a bit more specific. What kind of programs are you trying to write and what actually causes you problems? Literally not knowing how to write a line of C++? Or not being able to understand a problem and finding a solution to it?
C++ Primer 5th Edition by Stanley B. Lippman. After years of fooling around with C++, this book took my understanding to the next level. If you have the time, read it, take notes, and try the practice questions. It is long though, but worth it if you are serious about learning the language. Might be rough for people completely new to programming though.
Absolutely! You should always understand the simple features of a language before you move into more advanced measures.
This is how I first learned C++:
For the actual programming, there's the Juce C++ library which is pretty essential. If you spend a few minutes scouring the website, he recommends some good resources (both digital and print) for learning C++.
For DSP knowledge I would start with DSP Guide because it's just bloody incredible.
As far as books go, do you mean books on audio programming or C++? I started learning C++ with C++ Primer, but for audio programming both Designing Audio Effect Plugins In C++ and The Audio Programming Book have been invaluable.
Also check out the KVR Developer Forum!
I wouldn't recommend "The C++ Programming Language" as a learning resource, though it's a great reference for once you've got a decent understanding of C++. I've tried reading that, Accelerated C++, and C++ Primer, 5th Ed., and C++ Primer was by far the most useful, and once I finished it I finally felt like I had a fairly solid grasp of the basics of C++.
If you're very far already (using the language for over a year, for instance) you could try to fix the gaps by watching Going Native talks and reading A Tour of C++. If you're just starting out, I suggest either getting C++ Primer or The C++ Programming Language and working through that.
I wouldn't recommend any websites for C++ because most tutorial authors seem to be stuck in the 90s. Take a look at some good books.
A Tour of C++ is pretty short but gives you a good overview over the language and some STL-features.
Scott Meyers wrote some books about best practices.
If you have a bit more time to spend: C++ Primer 5th edition explains pretty much everything (except concurrency). I read the book (took me a month) and was then able to write solid C++11 code.
You will not learn C++ properly from internet resources, particularly from bad ones like learncpp. You will need a good textbook, and we recommend C++ Primer (not C++ Primer Plus). And read the FAQ.
Thanks for the review. Your high esteem of it concurs with its #1 recommendation on the C++ FAQ.
Here is the US Amazon link for the book:
You don't have to know anything about programming going in, as aixelsdi mentions. If you want to get ahead, here's some information which may help you do so. The rest is up to your own initiative. It can never hurt to know more about CS or more languages, as long as you don't waste time complaining about what's better in [insert language of choice].
I wouldn't recommend learning data structures and algorithm analysis before coming to UCI. Not because they aren't fundamental, they are. But because most people find it harder to learn those abstractions before learning the tools that utilize them (Python, C++, etc), which is why ICS 46 and CS 161 aren't the first classes taught. If you like math proofs more than math problems then maybe go that route, it could be helpful as iLoveCalculus314 mentions.
Languages: The CS introductory series (31-32-33) which you'll be taking first year is taught in Python. It switched to this because it's a good first language as a teaching tool. Right after you're done with Python, 45C will teach you C++ and 46 will use C++. The lower division systems core (51-53) generally use C or C++ but it differs by professor. Knowledge of Python will be useful in making your first year easier. Knowledge of the other two will make your next three years easier because they're common mediums for upper division courses. But you should be able to pick up a new language for a specific problem domain by the time you reach upper division.
Courses: If you want to get a head start on planning your courses, check the UCI Catalogue - Computer Science page. At the bottom it lists a sample of what your schedule over the 4 years might look like. That page is for the "Computer Science" major, for other majors in ICS see here.
Course Resources: You can actually view the Schedule of Classes without being a UCI student. Select a term (like Fall 2014) and a department (like I&C SCI) and it will list what classes were offered that term. Most lower div will be I&C SCI, most upper div will be COMPSCI. From the results you can go to the websites for those courses to see a syllabus, books used, etc. For example, here are the current websites for the introductory series ( ICS 31, ICS 32, ICS 33 ).
Your course professors and books and assignments will NOT be identical to those, but looking at what's currently taught will give you a pretty good idea of what the course entails so you can pre-learn anything that sounds difficult.
Books: If you have to pick one book to learn before coming to UCI, I would highly recommend C++ Primer, 5th Edition. It's very well structured as a self-teaching tool AND as a reference manual. You won't come away with any Python knowledge, but picking up Python as someone versed in C++ is easier than the other way around, and you'll find 45C much easier as well since you can focus on language quirks rather than fundamentals.
If you choose to learn Python first, Introduction to Computing Using Python: An Application Development Focus is the book currently suggested for ICS 31/32, and Learning Python (5th Edition) is suggested for ICS 33.
Another solid circlejerk book in the CS community is Code Complete, but I wouldn't recommend reading that until later on since it's more of a "best practices" book.
C++ Primer 5th Ed. is the recommended C++ book for beginners and is excellent. The Zyante thing they're doing is this interactive online book which is just kind of ok, although I didn't do it for CS10. Definitely talk to the TA and professor if you need help (it sounds like this is only online interaction? kind of sucks), the school also has SI (student instructor) sessions that you can attend for this course along with a tutoring office that has instructors for all types of courses. Keep in mind that the quarter system goes by quickly, and you don't want to fall behind.
I think if you start working through C++ Primer you'll be more than prepared for the course. Oh and welcome to UCR!
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.
Currently slated for end of the summer, but I'm sure Lippman's 5th edition of "C++ Primer" (not to be confused with Prata's "C++ Primer Plus") will be very good.
Looks like it's scheduled for end of the summer. I was hoping Lippman et. al. would put out a new version for C++11, but I wasn't sure until I saw it mentioned recently here on reddit.
https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996 (this one is a little more advanced, should be read when you are comfortable with c++)
Honestly, if I may, suggest that you use C++ Primer as a reference book (not C++ Primer Plus, two different books).
Also, your voice is REALLY quiet in the video. It really needs to be boosted, a lot. If I turn my speakers up to where I can hear you normally, and then start anything else, I'll be blown away.
And I hope that your video is just a "demo" video, because if you start teaching a beginner C++ using structs and functions and console output, you are going to confuse them. You need to start from the beginning.
I would also teach them the basics of the command line and how to invoke the compiler and linker manually, and show them batch files and a super basic makefile. These are things that are very helpful to know and they are always skipped over in tutorials. Here is a makefile that I made that is really simple to use, fairly simple to understand, and has a decent set of features. Feel free to use it or distribute it. https://pastebin.com/qDTM1WNC
People in that thread seem to recommend this book
If you want to learn C++, this book treated me well. C++ Primer
It only goes to C++11, but honestly the differences between 11 and 17 are small compared to the differences between 03 and 11.
Are you referring to C++ Primer 5th Edition or C++ Primer Plus 6th Edition ?
I had actually read that C++ Primer Plus wasn't as good as C++ Primer so I went ahead and bought C++ Primer 5th edition to learn C++ more in depth. The book has updates for C++11 so I was curious if you have a source for Sutter's claim that it's prehistoric.
My problem now is that the book is so big (~1000 pages), that I'm debating whether I should read through the whole thing page by page or just use it as a reference. I feel like if I skip one little detail of some feature, it could bite me in the ass later.
\ Found that info through stackoverflow's list of recommended C++ resources - search for "C++ Primer" and see the related footnote about C++ Primer Plus
I hope you meant this book. C++ Primer is a far better text than C++ Primer plus. The only thing I didn't like about C++ Primer is there were no solutions for the exercises. So when I was going through it, I couldn't compare my answers.
Also here's a stackoverflow post that helped me out in regards to C++ books.
Here's the thing: learning any language takes practice: fingers on the keyboard, brain engaged in solving problems. Any other resource that you use, whether books, classes, or whatever, will only be a guide to show you what and how to practice.
So ask yourself: when you tried learning with a book, did you do it sitting in front of a keyboard with an IDE up, and actually do the hands-on sections or the examples in the book? If you did and still had trouble, then sure, an MIT Open Courseware class might help you: maybe you just learn in a different way.
I myself learned Python partly by going through the MIT Intro to Programming OCW, and found it be a great resource. By contrast, I learned C++ by working through this book. In both cases, though, I had to actually do the homework, work my way through the practice problems, and get the hands-on time, in order to become comfortable with the language.
So, TL;DR: it depends entirely on whether you're willing to commit to putting in the work to practice.
Buy a quality C++ book suitable for your level (also pay specific attention to the C++ standard the book uses, you'd want one updated for C++11 standard) and painstakingly read the whole thing, all the while highlighting everything you think is of some importance. You'll really appreciate those highlights later on when you use the book as a reference. And there's just something about the act of highlighting that seems to increase memory retention. Also, it's a good idea to actually type out examples yourself, rather than cut&pasting from the supplemental resources. Much like highlighting, typing out the examples seemed to help me with retention. My book recommendation: http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113/ref=sr_1_7?ie=UTF8&amp;qid=1407455199&amp;sr=8-7&amp;keywords=C%2B%2B. I used the 3rd edition to learn C++, and found it to be an excellent learning book. The authors have an enjoyable writing style and the examples are clear, concise, and thought-provoking. I think it's a good match for you too, given you have light experience in other C-like languages.
One pertinent point I should mention. As far as I know, UE4 does not use the C++ Standard Template Library (STL). This should significantly ease your learning curve. STL is a massive component of the C++ standard and claims hundreds of pages in C++ books. Frankly I hate it anyway, the STL is clunky to say the least and can often be a portability nightmare (likely reason for Epic avoiding it entirely with the number of platforms UE4 supports). C++ without the STL is much like C but with a few, easily digestable additions. Here's a bit of info from the wiki on UE4's alternatives to the C++ STL: https://www.unrealengine.com/blog/ue4-libraries-you-should-know-about
I just bought it too. Learning c++ with C++ primer and YouTube since I’ll be having to take C++ courses for my degree. Also python for machine learning and web development stuff.
I can understand. My suggestion would be start high-level and once you're comfortable then go low. In fact, the practical advise also is to stay high-level as long as you don't have a need (like performance benchmark showing a bottleneck, etc.) to go low.
If you're a book reading person, C++ Primer is a good book.
Secondo me dovresti partire dalla programmazione base, prima di addentrarti nello studio degli algoritmi. Per il linguaggio, un buon compromesso è il C++ per iniziare, a mio parere. Un ottimo libro (in lingua inglese) è questo
Two book suggestions:
I'd strongly recommend getting at least the first book.
Since you're moving off MMF2, you might also want to have a look at Game Engine Architecture for something game-development specific. You'd eventually want to pick a game engine to use or write your own.
There may or may not be a very easily obtainable PDF if you google the book name. If you're serious about c++, I recommend buying it though, since it's cheap anyway.
Well, to begin with, learncpp is a discouraged resource in this subreddit's Recommended Resources. As mentioned previously, C++ Primer, 5e is hailed quite a bit on this subreddit.
As a side note: Check out this SO link on why
usingdeclarations are bad practice.
I heard good things about this book. It's awfully expensive, but I'm sure you could find a free copy somewhere.
Other than that, I understand how you feel. Learning programming for the first time can be a bit rough. For now, go through a book like the C++ Primer (or a similar one) and try to understand at least the basic syntax and key aspects of programming. (object oriented programming can come a little bit later!)
I also highly suggest, actually typing out a variety of C++ code related to a concept you're interested in, that is not straight from the textbook, then compiling and running it. For example, make an array of ints, then an array of doubles. Or write a function that multiplies two argument values and returns a double, then write a function that returns void, but also multiplies two argument values and instead prints the output. Or write a program that does a combination of things like loops, calling functions, iterating over an array. It doesn't have to be anything amazing.
All about C++: http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113
Doesn't come out until August 20th but from what I understand the C++ primer books are second to none.
This book is incredible. I picked it up at Barnes and Noble a few years back and it's fast paced but easy to understand. I highly recommend it if you're learning C++
For learning C++, personally I don't think youtube tutorials is the way. To this dayh I haven't seen any good beginner C++ tutorials on youtube that don't teach bad practices or have other notable flaws. Instead, in my opinion the best information available on C++ are various books. Since you aren't completely new to programming, I'd recommend C++ Primer 5th Edition, and for clarity, if you find a book called C++ Primer 5th Edition Plus it's the wrong one, and usually considered inferior to C++ Primer 5th Edition.
Visual studio in itself isn't a very complex thing to learn to use. You don't really need to spend a lot of time on trying to learn it to begin with, at least. You might want to check out some of their more advanced features when you've actually started to become more advanced in C++ though.
Since you have no experience programming I suggest you start with something other than C++, like Python. If you do want to use C++, get either Visual Studio Express or Code::Blocks and a good book like C++ Primer. Don't use online tutorials.
Read books. It might be boring, but a lot more informational than watching a youtube video.
If you already know how to program in another (preferably OOP) language there's The C++ Programming Language or C++ Primer if you want to learn C++11 (not to be confused with C++ Primer Plus, which is a different book 'series')
If you don't know how to program and you want to learn C++ for game development there's Beginning C++ Game Programming, which starts at the beginning (variables are one of the first things explained). After that book you should read up Introduction to Algorithms to make sure you're not writing horrible inefficient programs. Then there's Design Patterns: Elements of Reusable Object-Oriented Software to teach you more about certain patterns used in programs design (needed when using Ogre3D for example. Ogre3D was 90% magic to me until I read about Design Patterns. :p As alternative to DP:EoROOS there's Head First Design Patterns, but it's Java-centric which is a whole other beast than C++.
After those books there's this Stackoverflow thread. Read the first answer (the gigantic list of books). The thread used to be a ton of comments (with the most votes comments on top), but all anwers got copied to the first comment, so it's all sorted on votes. Code Complete (2nd edition) was the most upvoted one, The Pragmatic Programmer was the 2nd most upvoted one, etc.
Then there's this Stackoverflow thread, which is more C++ centric.
I hope this helps :)
Get a book and an idea what you want to do, the C++ Primer comes highly recommended, but it's only going to tell you how the language itself works.
Also, check out the FAQ from the sidebar.
C# has excellent tutorials on the official Help site for Visual Studio 2013. You can download Visual Studio Community for free here. It is fully-featured and allowed for personal use (both non-commercial and commercial); you just are not allowed to use it on a development team of more than 5 people. After you become experienced with C#, learning Java is as easy as going through a textbook (also available in a physical version) and/or study guide (the latter might be a little too toy-ish for you if you're looking for job skills). If you are opposed to C# due to not liking Microsoft etc, then I'd use the previously linked Sedgewick and Wayne book and download Eclipse. Fair warning, C#'s tutorials are excellent and I've never found a better way to learn to code using a language with significant real-world use... if you choose the Java route to begin with it may be hard if you're not using a formal class. Once you know how to program, I'd say going through the MIT OpenCourseWare Intro to CS class would be a good idea to learn a different kind of language (Python, which has more scripting elements to it). C++ would make a good language to learn third, the best resources I've found so far for that are here, the book can be found as a PDF here or as a physical version here... warning, not all the material is available at all times due to the fact that it's an actively running class. A class on algorithms (book here, you may need to learn more math... probability, calculus, set theory, and the like... first, not sure what your background is on that) would be a logical step to take somewhere down the line. After that you will pretty much have most of the skills that someone with a minor in CS would get, learning the HTML/CSS/PHP chain and building a website would be a good way to round out your skill set. You should be able to get through quite a bit of this in the next 18 months. Good luck! Also, as others have said, try not to spend too much money... most of what you need can be found on the Internet, and the rest should only be a hundred dollars or so for a textbook. If another topic in CS that I haven't mentioned interests you as well, there's probably an OCW course for it, the sky is the limit once you have a firm foundation (I'd say the bare minimum for that is knowing Java and C++ and thoroughly understanding the material in the Algorithms class I linked above... still I've found C# is far easier as a first language though so if you try to shortcut it you might struggle... once you know one language the rest come pretty easily, especially if they are as similar to your first as C# and Java are, so your first goal is to learn C# [or Java if you are still that adamant]).
You want this book https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113
First off I messed with a lot of languages before I think I really grasped the basics. I'll note that I used some Qbasic and Lua before starting my CS degree but I don't think they taught me good fundamentals because they are a little more "simple" and left me confused looking at lower level languages which is pretty much anything else.
I just started my CS degree recently and finished the first class which was in C#. I felt like this language really gave me a better grasp on the fundamentals.
More importantly than the language though I'd say get yourself a good book. For my C# class we used this book which is really good but kind of expensive. If you are interested in C++ many people recommend C++ Primer or The C++ Programming Language.
In taking my C# class I realized I thought I knew a lot about the basics of programming but actually didn't fully understand some very basic stuff, even things I had used a lot before.
There's a few resources. Ultimately it comes down to you sitting down and playing around with all this stuff. Sure you can watch courses, read books, etc but the best learning experience comes from using the programming languages, operating systems, setting up the server emulators, etc.
Keep in mind that you won't learn everything overnight. I started my time with all of it back in 2005. Wasn't until around 2009 that I had a firm grasp of most of these concepts and turned it into an actual career path. These are all skills that can be used outside of RO stuff.
The C++ Programming Language (4th edition) by Bjorne Stroustrup is the de-facto C++ reference and understanding book. Hands down. Take a quick tour in earlier chapters and in depth references later in the book. If you’re an experienced programmer, it should start making sense to you pretty soon.
If you want another practical and feature-driven C++11 book then C++ Primer (5th Edition) https://www.amazon.com/dp/0321714113/ref=cm_sw_r_cp_api_17Luzb7M0HRNV should do it.
The C++ Programming Language is a good reference. If you want something more beginner friendly, C++ Primer is good.
To learn C++ as someone completely new i recommend this series on youtube: https://www.youtube.com/playlist?list=PLAE85DE8440AA6B83
This will introduce you to the language and alot of the concepts that carry over to other languages as well. After you go through that whole series as boring as it may sound i really recommend you buy a textbook and read through it, doing whatever programming projects / exercises that interest you. My recommendation for a textbook would be C++ primer:
Edit: Also, I would recommend as your first language you start with Python. Its becoming more and more popular as an introductory language and its well suited to get you past the initial learning curve. I personally haven't worked with the language too much myself so I cant provide you with any recommendations. Good luck, comp sci is an incredibly interesting subject and is useful in so many aspects of work. :)
I just chose some books that looked good from this list and this one.
The one's I got:
Cracking the Coding Interview
Don't Make Me Think
Code (currently reading)
Regular Expressions Cookbook
Head First Design Patterns
Working Effectively with Legacy Code
Elements of Programming Interviews in Java
The Mythical Man-Month
The Design of Everyday Things
I figure that's enough reading material to last me until I graduate.
This book: https://www.amazon.co.uk/C-Primer-Stanley-B-Lippman/dp/0321714113
Don't bother learning C++ from online resources.
> Maybe now is a good time to step back and consider what kind of programming job you might want to target.
This is definitely something you should keep in mind. Try to become really awesome at one thing. That's not to say you shouldn't have a well rounded education in programming, just that someone who is simply ok at everything isn't getting a job anywhere.
Here are a few texts which I consider to be great for a novice programmer:
The C Programming Language : ANSI C
It's an older book, but it's still the best book to learn the language.
C++ Primer : C++
I used this book to get started with C++, and found it to be easy to follow and informative. Some say it's not a beginner book per-se, they may be right. I was already very familiar with C when I started.
Objective-C Programming: The Big Nerd Ranch Guide : Objective-C
If you're planning to write apps for Apple's iOS and OS X platforms, you're definitely going to need to learn this. Otherwise, don't bother.
Algorithms : Algorithms / Data Structures
This is not the be and end all authority on algorithms, but it's a great book. It's less theoretical and more concrete in my opinion.
I don't feel qualified to give recommendations for other topics like Java or web development, as those aren't really my strong suits. Happy hunting!
Hi, thank you. :)
You should learn C++ using C++ Primer by S. Lippman. (Not to be confused with C++ Primer Plus which was linked here before). Just be sure to learn modern C++, not "C with classes"! Then I recommend reading Effective C++ and Effective Modern C++ by Scott Meyers. Effective Modern C++ has some awesome examples of modern C++, but it also contains pretty hard edge-cases, so be aware of that.
The best way to learn Lua is by this book. It's very well written and I consider it to be not only the best book about Lua, but one of the best programming books ever!
Lua Users wiki is also very useful and contains lots of resources and sample code.
I also recommend checking out SFML Game Development book which is well written and contains some game programming patterns. You'll find it very useful even if you don't use SFML.
Oh, and Game Programming Patterns is a great read too.
Now, how much experience should you have with C++ to make games with it? That's a hard question! You should just start learning it and try making some small games with SFML or Corona. You'll see what you have to learn for yourself. :)
The gold standard in beginner C++ seems to be Lippman, Lajoie, and Moo's C++ Primer, and at < $40 USD on Amazon, why not just pay the money? It is a good book, and if you are serious about learning it, that is a great way to go about it. Plus the money spent might owrk as a little more incentive to actually do it.
I don't know about any good video tutorials, and haven't thought about the medium enough to comment on it. I don't do well with them, and in my experience, they tend not to have a lot of exercises, which will help make you a good programmer.
It is, but you want this one instead.
You'd have to forget nearly everything you know about Java. Most of the stuff doesn't apply (outside of some similarities with the class syntax). Programming Java style in C++ is one of the biggest mistakes people make when learning C++ from a Java background. My only strong recommendation is to avoid that mistake and realise that just because C++ has classes does not mean that the ways to do things in Java are the correct way to do things in C++.
With that out of the way, the best resource I can recommend would be a good book. I recommend C++ Primer as a good book to learn from. There are, unfortunately, not many resources teaching C++11 as it is relatively new but C++ Primer does a pretty good job.
I'm not sure the order they'll teach the courses, but from what I've seen generally, in computer/software engineering streams you start with C++. The book I'd recommend would be this one. It's a great book that goes into real depth. In my opinion, once you learn C++ well, you will breeze through Python, Java and C#. Although, you will most likely be using a different book for your course.
As far as laptops, it seems you've decided on Macbook Pro. One thing I'd check is what your school recommends. At one of the universities I attended they used software that was specific to Windows only; most students had Macs so they struggled. Although, you can technically use a VM.
if you could save up for C++ Primer, its really a good book on C++, I can't recommend it enough.
But for the 15 euro price range, perhaps the A Tour of C++ a book written by the language creator himself.
For the book list.
For the book. You'll want the 5th edition, as it is relatively updated.
Also pretty affordable for a textbook.
Note that Stroustrup's beginner book is also available-- however, I got it myself and I found the exercises too vague, and had to jump through a ton of hoops to even get the included code resources and programs to compile on Linux. The Primer is a little bit slower, but so far seems to be fantastic aside from a typo here and there.
Find a mentor, you need someone with experience to debug your programs and teach you how to write better code.
Learn from your mistakes, try not to make the same mistake more than once.
Remember to keep track of the scope of your variables, and remember to use a naming convention. Usually like adding a "g" to the start of global variables for example, "int" added to the front of integers, etc.
Michael D. Crawford is a friend of mine and here are some of his tips and tricks:
He is moving his website here: http://www.dulcineatech.com
He has a Software Problem Web Site here: http://www.softwareproblem.net/ where he talks about the ethics of a software engineer and the seven deadly sins of software engineering, programming, and business.
I know he seems a little crazy or eccentric, but it is important to follow a code of ethics when working as a programmer or software engineer. You need to learn more than just the programming language and technical skills.
Books to read:
C++ Primer (5th Edition)
Beginning Programming with C++ For Dummies (For Dummies (Computers))
Safe C++: How to avoid common mistakes
Sams Teach Yourself C++ in One Hour a Day
Its good to start with C++ it encompasses all the major programming concepts like pointers,polymorphism,inheritance,Object oriented programming. catch a good book i studied from Robert Lafore.
( http://www.amazon.com/Object-Oriented-Programming-C-4th-Edition/dp/0672323087 ) You can also try the C++ Primer ( http://rads.stackoverflow.com/amzn/click/0321714113 ) which is considered by far the best book for C++ by many programmers it delves deeply through the concepts all the best.
Obligatory C++ Primer (NOT Primer Plus) plug for one which has been updated for C++11.
This is my go-to link for any sort of C++ resources. You'll want to pay attention to the 'Beginner' section. The first book mentioned, C++ Primer is a great resource - especially since it has been updated to cover C++11, the new C++ standard. I highly recommend going through that book. You can either purchase it from the link above, or I'm sure you can find it somewhere else.
You should also know that C/C++ and C# are a little different. C/C++ languages are compiled to run natively on your computer. C#, however, is a Microsoft-developed language that compiles to something called bytecode. It's more like Java than C or C++.
It doesn't matter how old you are or whether you can afford classes or not, you can learn to program. There are tons of resources online for learning a programming language. If you're wanting a book you could buy the book from amazon or something or you could download an ebook from somewhere for free (hint hint)
Here's a few good books for different languages:
Learning Python - Python
Beginning Java - Java
C++ Primer - C++
If you don't like reading books then a lot of people like thenewboston although I've watched a few of his videos and he teaches some bad coding habits.
If you need any more help, feel free to PM me here on Reddit or email me @ [email protected]
btw, I'm 16 ;)
Yes! Here is another great introductory C++ book: https://www.amazon.co.uk/d/Books/Beginning-C-Through-Game-Programming/1305109910/ref=sr_1_4?ie=UTF8&amp;qid=1478724336&amp;sr=8-4&amp;keywords=C%2B%2B+game+development
Then move onto these.
This is a very good book if you haven't heard of it, it even has a glossary at the back which teaches you the basic english behind a lot of programming terms.
Even if you're not studying C++ it's still very useful for general coding.
The 5th edition isn't out yet (http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113/ref=dp_ob_title_bk) and the 4th was released in 2005 (http://www.amazon.com/Primer-4th-Stanley-B-Lippman/dp/0201721481/ref=sr_1_4?s=books&amp;ie=UTF8&amp;qid=1343148370&amp;sr=1-4&amp;keywords=C%2B%2B+Primer+%285th+Edition%29) So i guess it's better to wait for the 2012 edition.
Check out the FAQ. I've never read it, but they seem to suggest C++ Primer (5th Edition).
The C++ Primer has a great section on templates and template specializations. I used to code in C++ and did lots of templates. I highly recommend this book if you're going to continue coding in C++.
I personally like Primer Plus but some people on this subreddit dont like it because it talks about C. This is the one reddit loves
Stanley Lippman's book, https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113, is pretty good don't know what you did there.
[How am I doing?] [Want a bot?] [info]
What is your background? Do you have algorithms, data structures, linear algebra, vector Calculus under your belt? Yes you can get by without math. But for some people unless they have the math they will not be satisfied and feel they are doing syntax all day. You should check out "3D Math Primer for Graphics and Game Development" to get a taste of topics.
You are working at a very high level and should not expect everything under the hood to be exposed to you. If it was, it would actually be terrible design because you are not supposed to expose implementation in an API. If this isn't satisfying to you, you would have to go lower and lower until you reached a point that was satisfying to you personally. For example most gaming job ads don't want just high level knowledge of OpenGL and DirectX but more sophisticated knowledge down to the device driver and graphics card level (think CUDA and OpenCL).
Game programming is not supposed to be for novices and I would never recommend someone to "go learn Unity" as a first language/framework. You will get much more out of Unity if you become a seasoned C# or C++ developer first. The traditional text for C# is the Andrew Troelsen Pro C# series and for games I would use the latest revision (Pro C# 5.0 and the .NET 4.5 Framework). The traditional text for C++ varies, but I find the http://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1382501698&amp;sr=1-1&amp;keywords=c%2B%2B+primer to be excellent for beginners. Basically, you may have to shelve your aspirations to make a hit MMO for now and learn the language and standard library first.
The highest return on investment would be mathematics knowledge however, because that never gets stale. It might take a year or two before you go back to Unity, but at least you'll feel like you have a foundation for your career more than learning syntax.
Awesome! This is the book right?
Doing tutorials was just the very first steps, but I'm interested in learning it in much better detail, thanks a lot!
I thought the C++ Primer Plus by Prata was considered a bad book to learn from which is often mixed up with this one of a similar name (C++ Primer 5th Edition).
I'm currently reading C++ Primer, it's updated for the C++11 standard, it's also indepth and provides a lot of insight to the inner workings of C++. http://www.amazon.co.uk/C-Primer-Stanley-B-Lippman/dp/0321714113/
C++ Primer by by Stanley B. Lippman, Josée Lajoie and Barbara E. Moo is most likely what you are looking for.
Edit: Note that C++ Primer Plus is not the same book and is not as commonly recommended.
You might want to check out C++ Primer
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!
C++ Primer is the only one I have experience in. If you want to learn a pointer language, I would again direct you to CS50.net.
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.
What kind of jobs are you applying for? Low-level stuff is typically applicable for things like engine work, graphics, optimization, networking and audio. Okay, that covers a lot of the game development process, but there are certainly jobs that aren't deep into that, like peripheral tooling (making tools for developers to use) or working on stuff like the webservices that powers the online community.
However, if your goal really is core game development, then you need to be a lot more targeted in how you learn. I have interviewed for and was hired by a game company that worked in C++, and have also worked in distributed, networked military simulations (think of it like boring, more realistic Starcraft), so here is how I gained the various knowledge I had in getting through those types of interviews (including a 90-minute written test for the game company where I had to debug C++ code on paper, answer various gotchas, etc.).
I don't know how far you have covered, but this is how I would approach the learning now, were I to start over again.
It covers low-level concepts like CPU pipelining, memory, and how code interacts with the machine. I read this years after I started my job building simulations, and it reinforced a lot of what I learned previously and in college. I also recommended this book to a friend of mine who credits it with giving him an edge over his fellow college grads (he's years younger than I am) in low-level knowledge. If you don't know concepts like cache locality, cache lines and how memory is allocated, this book will cover that and more.
std::deque- The C++ implementation of a double-ended queue.
std::setis typically implemented with a red-black tree behind the scenes)
The above covers the 'core' stuff you'd have to learn. If you wanted to get into stuff like network programming or graphics programming rather than just core gameplay development, I can expound further.
For Java, I'd highly recommend Khalid Mughal's books. For instance, https://www.amazon.com/Programmers-Guide-Oracle-Certified-Associate/dp/0132930218 is for Java 8. Disclaimer: I learnt Java from his book way back in the day when Java was still in version 1.4. However, I find his style unobtrusive and pithy without being dry.
For C++, forget about Stroustrup and Meyers for some time. Stanley Lippman's book, https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113, is pretty good.
I don't know this subreddit's policies, but in case you want to try out the ebooks first, gen.lib.rus.ec is a good site to find the books.
actually, yeah maybe I do. I was referred to this. but assumed this one was a newer edition.
so is the one I just linked a good book then?
DON'T use K&R C as another poster suggested.
The main thing is to practice. At the intro level, I know there isn't a whole lot to practice with if you don't have an idea of something you'd like to implement. I do have a series of 4 homework problems for a class I TA'd a couple of semesters ago - problems were due every 2 weeks and each assignment built on the previous one in order to encourage good object-oriented behaviour. PM me if you'd like them. I will try to dig up the solutions, but not sure if I still have them.
After that you'll need a DS&A course, but this is probably in your program anyway.
I feel it is my duty to point out that there are two C++ Primer books and one of them is the not so great book, and the other is very very good. The one being linked is the mediocre book.
You want this one:
i think sicp or i guess intro lin alg. One more book would be a general programming book, something like: c++ primer
I guess I'd start with c++ primer or sicp. I don't know if c++ primer is the best first programming book. To be honest I started with C for dummies. People will probably laugh at you if you tell them you learned to program from C for dummies but it worked for me.
C++ Primer 5th edition is C++11, and uses it idiomatically throughout. Recommended. http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113
Check this link, I had it saved: https://old.reddit.com/r/gamedev/comments/6pakgb/c_game_development_books/
If you wanted to learn about C++, this book is often recommended: https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113
Believe it or not, reading textbooks is quite helpful. I purchased [Primer's C++ 11] (https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113). I didn't do all of the practice problems (that would take me forever), but I picked up a lot of really helpful syntax for writing cleaner and more efficient code. They also go over C++'s basic components. Some of it might be a refresher for you, but Primer has a lot of insight into the language.
You should have a look at the following book:
From what I've heard it seems to be the book for C++ beginners.
There's is no 6th edition of C++ Primer, only a 5th. I think you might be mixing up with C++ Primer Plus, which I don't think is recommended.
Edit: The review I linked for C++ Primer Plus was for 4th edition not 6th.
I found the books C++ Primer ( https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ ) and C++ Primer Plus ( https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ ), no relation, to be great resources for learning C++. They are a little older now, so covering C++11, but if you are just starting out that is fine, since most of the core concepts have not changed in the last few years (and most of the new features are more advanced anyway).
Completely agree. I'm currently trying to get through C++ Primer myself. I tried to find a "Learn C++ the Hard Way" tutorial, but turns out, that's the only way.
EDIT: Woops, you guys are right. Link fixed.