Professional C++

Pages: 123
I am currently thinking of reading a new book, to improve my coding skills, is Professional C++ by Nicholas A. Solter and Scott J. Kleper a good book for my intents and purposes.
Not too bad on the first glance, but the more I look at the preview pages, the more more issues i see, from general unfocusedness and uneven depth and scope from chapter to chapter to straight-up deal-breakers like "arrays are pointers" or "as a rule of thumb, always store dynamically-allocated objects in stack-based instances of shared_ptr".
What book is recommended for my intent and purposes?
To improve skills? "Effective" and "Exceptional" series, if you haven't read them already.
closed account (zb0S216C)
^ Excellent books - I learnt a lot from them.

Wazzak
These aren't books, but the year isn't 1500 either.
http://c-faq.com/
http://www.parashift.com/c++-faq-lite/
http://yosefk.com/c++fqa/
http://c-faq.com/

That's not about C++ (and is both a website and a book)

http://www.parashift.com/c++-faq-lite/

That's also both a website and a book, although I agree that it's more useful as a website (the book is old!)

http://yosefk.com/c++fqa/

That's a stupid trolling website. Why bring it up?
Last edited on
closed account (z05DSL3A)
https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637
That's not about C++

For as long as there's a C subset in C++, parts of that FAQ will implicitly be of interest to C++ coders, too.

they're also in printed form

I only said websites aren't made out of printed paper.

That's a stupid trolling website. Why bring it up?

Give examples why it's a "stupid trolling website".
closed account (S6k9GNh0)
Catfish2, forums such as these consistently have issues with making the distinction between C and C++. C++ is a superset of C, but C is not C++ and vise versa. There are many differences between the two, including what's considered conventional and traditional. Thus, someone who is asking to learn C++ should *not* be handed a book about C.

C++ has quite a few "defects" and the site (http://yosefk.com/c++fqa/ ) points them out but they're rather biased in some of their claims.
Last edited on
If you want to learn C++, learn C++. I'm tired of this whole "Well learn C, because you know it's just the simpler C++". It's unfortunate that many textbooks follow this idea.
Is Microsoft's Code Complete any good? A friend bought it for me and it has been collecting dust on the shelf since.

I agree though, too many people say that you should learn C before C++, but you will have to unlearn the bad programming habits that you learn while learning C and train yourself to think in objects after learning C. Though it scares me that a lot of people say if you learn C++ then you end up learning C, which may be partially true, but they both were designed for different reasons.
I agree though, too many people say that you should learn C before C++, but you will have to unlearn the bad programming habits that you learn while learning C and train yourself to think in objects after learning C. Though it scares me that a lot of people say if you learn C++ then you end up learning C, which may be partially true, but they both were designed for different reasons.


I notice that a lot of Colleges teach you C in your first programming course, and in your second they teach you JAVA. Maybe this is actually a good idea, because with JAVA your forced to be object oriented.
closed account (z05DSL3A)
BHXSpecter wrote:
I agree though, too many people say that you should learn C before C++, but you will have to unlearn the bad programming habits that you learn while learning C and train yourself to think in objects after learning C.
Too many people think that learning C will teach you bad habits.
Too many people think that Object orientation is the only way.
Too many people think that C++ is only about object orientation.
Too many...
Give examples why it's a "stupid trolling website".

Any part of it, it keeps repeating over and over that c++ should not be used (consistent with the started purpose of the website) and it suggests the most atrocious approaches to programming instead of every language feature the author declares bad. One or two of those could pass as someone just being ignorant and stubbornly refusing to open a textbook, but entire website of anti~ practices is just trolling. Needles to say, anyone who follows FQA recommendations will quickly find c++ unusable, and the website would achieve its stated goal.
I've not been programming in C++ for all that long (only a few months), but if you want my opinion, the best way to improve your skills is to go back to the place you started. C++ All In One For Dummies (written by John Paul Mueller and Jeff Cogswell) is (in my opinion atleast) a great book not only for beginners, but also to hone the skills for seasoned veterans.
I notice that a lot of Colleges teach you C in your first programming course, and in your second they teach you JAVA. Maybe this is actually a good idea, because with JAVA your forced to be object oriented.

My college did C# as the intro, C++ as the advanced and then torque script and C++ in the rest.

Too many people think that learning C will teach you bad habits.
Too many people think that Object orientation is the only way.
Too many people think that C++ is only about object orientation.
Too many...

Any language will teach you bad habits, so in that regard any bad habits C teaches you that C++ improved on will force you to forget it and learn the better way of doing it. People think OO is the only way is because of how many languages support OOP, just a poor assumption. Any positive and negative light C++ has is because of how poorly C++ is represented in tutorials and sites. Most sites skim over C++ basics and then focus on OO features as though it is the most important thing in the language.

I've not been programming in C++ for all that long (only a few months), but if you want my opinion, the best way to improve your skills is to go back to the place you started. C++ All In One For Dummies (written by John Paul Mueller and Jeff Cogswell) is (in my opinion atleast) a great book not only for beginners, but also to hone the skills for seasoned veterans.


Generally speaking, any book from the "For DUMMIES" is a poor choice. If you want a book I'd recommend the Teach Yourself series of books (though they have their flaws too).
I'd recommend the Teach Yourself series of books (though they have their flaws too)


Read this:
http://norvig.com/21-days.html
closed account (z05DSL3A)
BHXSpecter wrote:
Any language will teach you bad habits
It is not the language that teaches bad habits.
Read this:
http://norvig.com/21-days.html

Read it a long time ago. Only said that Teach Yourself is better quality than the For DUMMIES series, but not by much. What do you expect for the price though?

It is not the language that teaches bad habits.

Depends on how you look at it, some languages may not have features in it to achieve what you want so you make a hack. Then you go to another language that has a better feature for doing it, but you keep using your hack (bad habit). I've read where some consider C style strings to be one such bad habit between C and C++ (so if that is a bad habit, then I'm guilty of it as I feel there is a time and place for C strings over C++ string data type).
Pages: 123