• Advertisement
Sign in to follow this  

C++

This topic is 762 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey guys,

 

I'm looking for some of the best online courses (paid of course) as well as books for learning C++ game programming. We are talking for a complete noob.

 

Any other efficient ways of learning are also appreciated.

 

Thanks a lot!

Share this post


Link to post
Share on other sites
Advertisement

Any other efficient ways of learning are also appreciated.

 

In addition to @servant's great advice ....

 

As you go through the books or online tutorials (or both) make sure you don't get lazy in coding through ALL the examples. Maybe you could even get a bit more adventurous, use some imagination and intuition and extend/experiment/change parameters in the examples of the current chapter before you leave it. That way you are maximizing your understanding and use of the resource. Also the deeper you work through problems the more the knowledge sticks...  and who knows in a couple of years you could be giving solutions to other people's c++ questionssmile.png

Share this post


Link to post
Share on other sites

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.

Scott Meyers books are also good to learn C++ but again these assume you can already program and want to know more about C++ under the hood.

Edited by NightCreature83

Share this post


Link to post
Share on other sites


Personally, I'd get two books: One heavy one to heavy textbook to read when sitting at the computer, and one more "fun" reference book to flip through while relaxing on the couch. I'd then supplement that with online tutorials and articles and by asking specific questions on these forums. As you grow (say, after six months or more), I'd pick up two more abstract books like Code Complete 2nd Edition and Pragmatic Programmer. But I wouldn't get those until after you finish you first two books.

 

And then I look at the books sitting on my desk: The C++ Programming Language reference book from Stroustrup and Code Complete 2nd Edition. I guess this is sound advice. Haha!

Share this post


Link to post
Share on other sites
I also recommend anything by Scott Meyers, he's fantastic at taking complex idea's and explaining them in simple terms without losing sight of the overall picture.

Share this post


Link to post
Share on other sites

Before I moved to the far cry team I needed to learn C++.  I went to learncpp.com and spent 2 months on there, I also bought the book "Jumping into C++" by Alex Allain.  This was everything that I needed to handle C++ by myself.  The rest you will learn by actively working with the language, things you will never learn from a book no matter which book you buy.

Share this post


Link to post
Share on other sites

Do you know any other programming languages?

 

C++ is awful to learn as a first programming language. I tried and failed when i was 14 (bear in mind, this was back in 1993 when the language was not even standardized and half of the standard template library, as it was known back then, was still in the air, the only compiler available to me being borland turbo C++ for windows)

 

I failed miserably, but by the time i tried again when i was 19 it all just made perfect sense. Of course, by then i'd learned BASIC, 6502 assembler, x86 assembler, turbo pascal 7, and a bit of perl. Having more language experience under my belt and understanding object oriented design and inheritence etc helped a lot with understanding C++.

 

If this is your first programming language my advice is steer clear for a few years and learn some other languages first such as Python, javascript, etc. Possibly, even C. Then, and only then, dip your toes in that caustic pool of pain known as C++.

 

Good luck!

Edited by braindigitalis

Share this post


Link to post
Share on other sites

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).

Edited by samoth

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

 

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).

Edited by Ravyne

Share this post


Link to post
Share on other sites

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 

Edited by !@#

Share this post


Link to post
Share on other sites

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.

Edited by BHXSpecter

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

 

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 

Share this post


Link to post
Share on other sites
!@#, 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++?

Share this post


Link to post
Share on other sites

!@#, 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]

Edited by Ravyne
Please remember this is For Beginners.

Share this post


Link to post
Share on other sites

Hey guys,

 

I'm looking for some of the best online courses (paid of course) as well as books for learning C++ game programming. We are talking for a complete noob.

 

Any other efficient ways of learning are also appreciated.

 

Thanks a lot!

 

Hello Ballistix,

 

Although you have not asked for books the experienced members here have provided you some great advise and recommendations. Here is an online paid course I would recommend, you might find it interesting as it using C++ and developing games. I own the course and although some of the content is old it is good quality and useful. https://www.gameinstitute.com/ (looks like they are doing an overhaul on the website and some elements are not displayed correctly for me)

 

P.S Looks like it is currently 50% as well, although the payment model has changed since I bought it. All new content provided is using c# and unity but you will still have access to the c++ content.

 

Kirk

Edited by Kirkkaf13

Share this post


Link to post
Share on other sites

I've removed some personal attacks and issued some warnings to a few individuals.

 

Insults and personal attacks will not be tolerated. Please keep it classy.

 

Also, remember that this is the For Beginners form, where additional rules apply:  "This forum is for beginners to ask questions without being harassed because somebody more experienced thinks the answer should be obvious. Make sure your replies are helpful and guiding the beginner in the right direction, not taunting or flaming or insulting them."

Share this post


Link to post
Share on other sites

I wanted to thank you all for your input. I ordered a bunch of books and will try to get to them in the right order, right after I am done with my Python stuff - which as many suggested, was the best bet for me to start before getting into C++.

 

Thanks a lot guys!

Share this post


Link to post
Share on other sites

Also, one more thing...

 

Here is a list of all books you guys recommended. I try to place them into the right tier (T1, T2 and so on...)

 

Can you help me with the rest of the books I didn't place yet? Just quote and add a T1, T2 and so on, depending on which book you think should be in whatever tier. Also, if you feel as some books are redundant, please mark! Let's remember, we are talking about game programming.

 

Thanks a lot.

 

Bjarne's Programming: Principles

Practice in C++ 2nd ed.

[T1] Jumping into C++" by Alex Allain

Bjarne's The C++ Programming Language 4th ed.

Jossuttis' The C++ Standard Library

Code Complete 2nd Edition

Pragmatic Programmer

The C++ Programming Language reference book

[T2] Lippman's C++ Primer 5th edition

Scott MeyersEffective Modern C++, 2014

[T1] Programming: Principles and Practice Using C++ 2nd Edition 

[T3] The C++ Standard Library: A Tutorial and Reference

[T4] The C++ Programming Language (as a reference)

Scott MeyersEffective C++

Scott MeyersMore Effective C++

Scott MeyersEffective STL

Scott MeyersEffective Modern C++

Share this post


Link to post
Share on other sites

Pragmatic Programmer and Code Complete is for after you get a solid understanding of any programming language (they aren't language specific). Design Patterns (by the "gang of four") is another "after you get the basics down solidly" book.

 

Can you help me with the rest of the books I didn't place yet? Just quote and add a T1, T2 and so on, depending on which book you think should be in whatever tier. Also, if you feel as some books are redundant, please mark! Let's remember, we are talking about game programming.

 

You really don't need a bajillion books.

 

Since alot of those books have major overlaps, you get heavily diminishing returns for each additional book you buy on the same subject matter. 

 

After you work through two of those books, you'll have a better understanding of what you've learned and what you haven't yet understood. The things you have trouble understanding would then best be learned through questions and discussion on these forums, and sub-topics and new topics you haven't yet explored can be recommended, and books targeting those new topics/subtopics can be recommended.

 

Even if someone offered you all those books for free, I wouldn't bother reading more than two of them before re-evaluating. You'll likely find that after you read two or three of them, 90% of the remainders will not be worth purchasing, and not even be worth the time it takes to read them, because it merely re-covers material you already understand well.

 

Basically, the books you listed fall into three categories: Beginner C++, Intermediate C++, and intermediate general programming.

 

The three I mentioned are important books to read irregardless of what languages you know - the information applies to dozens of different languages (but is irrelevant for some other languages).

 

Intermediate General Programming books:

  • Code Complete 2nd Edition
  • Pragmatic Programmer
  • Design Patterns

(Another commonly mentioned is Mythical Man-month, but that's more team-focused, and I wouldn't recommend it as any kind of priority. It teaches more programming-team management rather than programming itself)

 

 

Then you have all these C++ ones. Which ones are "beginner" and which ones are "intermediate", I don't know.

 

Beginner or intermediate C++-focused books:

  • Bjarne's Programming: Principles and Practice Using C++
  • Bjarne's The C++ Programming Language 4th ed.
  • Practice in C++ 2nd ed.
  • Jumping into C++" by Alex Allain
  • Jossuttis' The C++ Standard Library
  • The C++ Programming Language reference book
  • Lippman's C++ Primer 5th edition
  • Programming: Principles and Practice Using C++ 2nd Edition 
  • The C++ Standard Library: A Tutorial and Reference
  • The C++ Programming Language (as a reference)
  • Scott Meyers Effective C++
  • Scott Meyers More Effective C++
  • Scott Meyers Effective STL
  • Scott Meyers Effective Modern C++
  • Scott Meyers Effective Modern C++, 2014

 

Of this second list, I'd suggest getting two beginner ones, and after reading them, re-evaluate what gaps you still have in your knowledge, and which gaps should get priority in being filled.

And even while reading these books, you still need to practice actually coding, and ask questions on the forums, and read other peoples' discussions even on questions you didn't ask.

Edited by Servant of the Lord

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement