Skip to main content
GameDev.net gamedev.net
🔒 Locked

C++ Books?

Started by BenBowen Apr 8, 2011 at 4:21 AM 14 replies 4.5k views
Original Post
BenBowen
BenBowen
[font="Verdana"]I understand that my 16th birthday is coming soon, on the 19th of April. I'm pretty spoiled about this.. Of course, I want [s]a ca[/s]r programming books. I was wondering if I could get some suggestions, based on this:

[/font]
  1. [font="Verdana"] I'm looking for hands-on, thorough books that teach the essentials to skillful usage of C++. Maybe something from Bjarne Stroustrup, or likewise ? http://www2.research.att.com/~bs/homepage.html[/font]
  2. [font="Verdana"] I want to get into modern computing (threading/concurrency), and learn information about the 'latest-and-greatest' practical C++ programming. C++0x? Boost?[/font]
  3. [font="Verdana"] It would be extremely handy to have books about low level craft. They should explain essential knowledge about parsing, compiling, linking etc. I want to write a special resource compiler which is compatible with GCC/MinGW object files.[/font]
[font="Verdana"]
If you also know of good online resources about these, please let me know!

Thanks in advanced.[/font]
Servant of the Lord
Servant of the Lord
This doesn't quite fit in the categories you requested, but I'd recommend Code Complete [size="1"](2[sup]nd[/sup] Edition). It's one of the books that I really feel took me across the vast chasm from a beginner to a intermediate programmer. It's a great book and teaches proper coding practices, with examples in C++, Java, and SmallTalk - I only know C++, but I understood all the examples perfectly fine. It's a very valuable book - quite probably the most important programming book I've read.
You can go through the book skipping around to the parts that interest you - it's mostly non-linear. I just wouldn't call it 'hands-on', but I would call it a treasure trove of valuable knowledge and wise advice that almost instantly enhances your code as you choose to apply it bit by bit. It is a programming goldmine.
BenBowen
BenBowen
@Servant of the Lord
Okay, I started reading reviews about that book. Thank you for showing me this! It's not at a high price, and it looks great. I'll definitely buy a copy.
the_edd
the_edd
For C++:


  • "Accelerated C++" by Koenig and Moo is an excellent first book IMHO. I would recommend this to anyone that wants to really understand what C++ is all about.
  • Followed by stuff from Scott Meyers and/or Herb Sutter.
  • Josuttis' "The C++ Standard Library" is usually the first reference I reach for.



    Stroustrup's "The C++ Programming Language" is also a valuable reference, but it might be worth holding off until the new edition comes out as I imagine will it contain content on C++11 features.

    For concurrency and threads:


    • "Programming with POSIX Threads" by Butenhof is very good for the learning the ins and outs of nitty-gritty threading primitives. The boost threads API is rather similar to POSIX threads, so it's possible to play along even on Windows, I imagine. But it's probably easier to work through it on Linux or Mac OS X.
    • For higher level concurrency, "Patterns for Parallel Programming" by Mattson et al is rather good, even if it tends to repeat itself a bit.
    • Shavit's "The Art of Multiprocessor Programming" is also good, I'd say. It's rather heavy on theory at the start, but I don't think that's a bad thing necessarily.
sgt_barnes
sgt_barnes
edd² already mentioned most of the books that came to my mind when reading your post. You should definitely go for Scott Meyers, "Effective ..." series.

Some further suggestions:

"The C++ FAQ" may be interesting as a further read when you have already learned the basics of C++.

Herb Sutter has kind of a regular column at Dr. Dobbs about threading and concurrency, "Effective Concurrency". Much (if not all) of it is available on the Web. Start here, for example.

The standard read for compiler design is of course Aho, Sethi, Ullmann: "Compilers: Principles, Techniques, and Tools", aka "The dragon book".

Have fun!
BenBowen
BenBowen
Okay, this is what I have chosen so far:

Code Complete 2
http://www.amazon.co.../dp/0735619670/

Effective STL
http://www.amazon.co.../dp/0201749629/

I'm not so sure about the "Dragon" book, but it does look like a good option. I'm also considering this:

A Retargetable C Compiler
http://www.amazon.co.../dp/0805316701/

I don't have Linux on my PC, so the POSIX book wouldn't be the best choice for me. What about edd's second suggestion:

Patterns for Parallel Programming
http://www.amazon.com/Patterns-Parallel-Programming-Timothy-Mattson/dp/032122811

I also looked into Thread Building blocks, but I'm most likely not going to buy it.

Now as I've been browsing amazon.com for good books, I saw plenty of GPU books. nVidia seems to have set a trend with GPU Gems. There's also Game Programming Gems, Game Engine Gems .etc I guess I should pick a game oriented book as well? The first volume of Game Programming Gems looks very comprehensive.

http://www.amazon.co.../dp/1584500492/

EDIT:
I can't be believe this! I forgot to add my regards --

Thank you so much. Keep up the suggestions, and God bless you all,
Ben

EDIT:
Woah.. Game Programming Gems is too expensive. I'm definitely keeping it off the final list. I can ask for about $150 dollars worth of stuff.

current finals ($59) + current considerations ($71) = total of $130

Also, I need to keep in mind that I have limited time to read, so there's no way I'm going to consider everything. However, I'm going to try keeping this topic going until I reach at least $125 of final choices.

EDIT:
Never mind Code Complete as a definite choice. I carefully over-viewed it's content again. I really don't think it's my level. I probably won't get it.
the_edd
the_edd

Now as I've been browsing amazon.com for good books, I saw plenty of GPU books. nVidia seems to have set a trend with GPU Gems. There's also Game Programming Gems, Game Engine Gems .etc I guess I should pick a game oriented book as well? The first volume of Game Programming Gems looks very comprehensive.

http://www.amazon.co.../dp/1584500492/


There's nothing particularly special about games programming. It just happens to be more performance orientated than a lot of other software. You can look up many algorithms as the need arises, often on the web, so while I wouldn't want to discourage you from getting something like Games Programming Gems, I'd say your money (or your parents' money ) could be better spent elsewhere. For instance, the first three editions (maybe more?) of GPU gems are now available for free online.
BenBowen
BenBowen
All I'm getting is this:

http://www.amazon.com/Engineering-Compiler-Second-Keith-Cooper/dp/012088478X/

And possibly new computer parts.
Cheers!
zee_ola05
zee_ola05
How much programming experience/knowledge do you have? And what kind of programming are you interested in (e.g. gaming, web, software apps). These considerations may help. smile.gif
BenBowen
BenBowen
zee_ola05, don't worry. I've been programming since I was eight. age 16 - age 8 = 8 years of experience. I checked your profile, and I guarantee that I know much more than you do. Don't take that lightly.
TheTroll
TheTroll

zee_ola05, don't worry. I've been programming since I was eight. age 16 - age 8 = 8 years of experience. I checked your profile, and I guarantee that I know much more than you do. Don't take that lightly.


The person was trying to help, by trying to find out what you know so they can recommend books that fit your experiences and you get all indigent. You really should check that attitude at the door because in the end it will not do you any good. If you are really 'all that and a bag of chips" then why are you not writing the books instead of looking to buy some?
BenBowen
BenBowen
I have nothing to lie about. What other age 15 people ask their parents for a book about compiler design on their 16th birthday? In precision, I do not own a mistake. All of the mistake here belongs to zee_ola05.
TheTroll
TheTroll

I have nothing to lie about. What other age 15 people ask their parents for a book about compiler design on their 16th birthday? In precision, I do not own a mistake. All of the mistake here belongs to zee_ola05.


Got a bit of a chip on your shoulder for a 15 year old huh? I never said you lied. What I said is that you didn't understand what zee was saying and because you have a chip on your shoulder you took it the wrong way. I don't can't if you can write an advanced OS in assembly, that attitude of yours is just going to get you in trouble. If you ever do get a job in the dev world and you walk into a shop with that chip on your shoulder, it is going to get knocked off pretty darn fast.

See people that work in the real dev world, try to find out what people really want before going to work, they don't assume they know what the person wants or needs. So they ask questions, because we don't know it all. And that is what Zee did, he asked. Instead of answering those questions so he might be able to answer your question better, you get all upset, not because he attacked you, but because you seem to be an insecure little punk. Now that may be wrong, but that is how you are acting.

You owe Zee an apology for attacking him with not a reason. You owe the board one for your attitude.
BenBowen
BenBowen
Please, Calm down. I'm treated like a bag of crap everywhere else in life, so I enjoy talking cocky every rare once in a while. Sorry.
Domx
Domx
I'm surprised no one has mentioned (unless I've missed it, in that case apologies!) Effective C++: 55 Specific Ways to Improve Your Programs and Designs by Scott Myers. It's not a tutorial, though - it targets people with intermediate knowledge in C++ and helps in improving your code in many (55 actually) ways. It's a definite must read for C++ programmers. I was first told to read it by my colleagues at my first game dev job - I've been a better C++ coder ever since
ChaosEngine
ChaosEngine

I'm surprised no one has mentioned (unless I've missed it, in that case apologies!) Effective C++: 55 Specific Ways to Improve Your Programs and Designs by Scott Myers. It's not a tutorial, though - it targets people with intermediate knowledge in C++ and helps in improving your code in many (55 actually) ways. It's a definite must read for C++ programmers. I was first told to read it by my colleagues at my first game dev job - I've been a better C++ coder ever since


Seconded, just make sure you get the 3rd edition. And tbf, edd[sup]2[/sup] did mention books by Meyers.

As to the OP, you need to lose that attitude pretty quick. Your programming experience as an 8 year old means exactly nothing, any more than an architect would care if you played with lego as a kid.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.