Advertisement

C++

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

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!

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.


I wouldn't pay for online courses. There's plenty of free resources online to supplement whatever books you pick up.

I'm very dubious about paid online courses. I see enough paid crap online that I tend to avoid the entire mess of it. Additionally, some major universities like MIT and Harvard put video-recordings of some of their full courses online for free.

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.

This process worked well for me - in addition to actually programming, and lots of trial and error, and plenty of aggravation, and badgering this community for help. tongue.png

What two books you should get, I can't recommend, seeing that the books I used are now literally a decade out of date. All I can say is this: Any beginner C++ book you get really should be written within from within the past three years.

One thing you need to know now, different from when I started, is the difference between C++ in general, and "modern" C++. Modern C++ makes use of newer programming habits, and newer C++ features. You should be learning C++11 and later features (C++11, C++14, C++17), and be sure you are turning on those features in your compiler/IDE of choice.
There is alot of bad coding practices taught by older books that are just way out of date. Ofcourse, whatever code you learn, you'll write poor code for several years, and you'll get better gradually. Still, try to avoid getting poisoned by bad knowledge. I know this is hard, because you don't yet know what bad knowledge looks like. laugh.png
But by keeping to books written after 2011, that takes a great step forward in reducing your risk.
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

can't help being grumpy...

Just need to let some steam out, so my head doesn't explode...

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.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion


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!

Scott Meyers "Effective" books are great http://www.aristeia.com/books.html

Also have a look at Modern c++ design https://books.google.ca/books?id=GPL1r8rQU6wC&printsec=frontcover&dq=c%2B%2B+programming+book&hl=en&sa=X&ved=0ahUKEwii0NiH67XKAhUDu4MKHVRrCJEQ6AEIXjAJ#v=onepage&q=c%2B%2B%20programming%20book&f=false
Advertisement
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.

Although I've never tried it myself there's: http://www.programmr.com/practice/

-potential energy is easily made kinetic-

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!

This topic is closed to new replies.

Advertisement