latest standard of C and C++

Started by
27 comments, last by mattnewport 17 years, 9 months ago
Quote:Original post by kickkick
Quote:Original post by SiCrane
Quote:Original post by kickkick
Any book on the subject?

Books on what subject?

Read my first post. It's what this thread is all about.

Read the whole thread. Books don't teach the standard; they teach the language. Good books teach up-to-date implementations of the language standard.

A highly recommended book is Accelerated C++. Personally, it's been years since I read a language instruction book for C++; most of my reading deals with software engineering, software design and other language-agnostic concepts.

Also read your compiler documentation. There's no point in focusing on a feature defined by the standard if your compiler doesn't support it.
Advertisement
OK, let me ask the question correctly.
What is a good book that teaches Standard C++? Please recommend only books you compared to other books, because the people that read only one book always say that it's good.
Actually, since I've read a C++ book, I know the language. But googling shows that this book doesn't make you a pro, and I still have something to learn after that. I need a book that makes you a professional programmer.

// should I edit my first post?
Quote:Original post by kickkick
OK, let me ask the question correctly.
What is a good book that teaches Standard C++? Please recommend only books you compared to other books, because the people that read only one book always say that it's good.
Actually, since I've read a C++ book, I know the language. But googling shows that this book doesn't make you a pro, and I still have something to learn after that. I need a book that makes you a professional programmer.

// should I edit my first post?

There is no such thing as a book that will make you into a professional anything, especially not a programmer. Programming takes experience, books don't teach experience. The best way for you to get experience is to program, not waste time trying to learn everything from textbooks.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

Let's say I've read a good book on C++, and I have talent and great interest in programming, I learn fast and bla bla. Can we say that from now on am I on my own to become a pro?
If no book can teach me more then that's just it...
What should I continue with? MFC?
I highly doubt you know the C++ language in its entirety. You may know tidbits of it, however, but that does not mean you know the language in its entirety. C++ has far too many special cases for anyone to know the whole thing, not even those who sit on the standard committee.

Programming is a process of learning. It has little to nothing to do with what language you prefer to use, but more with your mindset and how you solve problems. All the books in the world cannot teach you how to become "professional" because the typically accepted definition of what a "professional" is, is someone who is employed in a particular field, or having shown a great deal of skill in that area. The only way to obtain skill is to practice.

Books on patterns don't teach you to recognize patterns, nor do they teach you when and how to use patterns. They can give hints, and show some patterns that the authors have encountered, but that does not mean they are all of the patterns you will find, nor does it mean that those are the only places that those patterns can be or will be used. They are just hints, the rest is for an experienced programmer to figure out, because that's what programmers do: Figure things out. Solve problems by finding solutions.

Books on design can't teach you how to design any application you want. They are guideposts that give you hints and clues as to steps you can take to design applications that are extensible and easy to maintain. That does not mean that the application will end up being either, just that they (the authors) have found that more often than not, those techniques documented in the book resulted in better applications.

That does not make either of those two final arbiters on the subjects at hand. The authors, while experts in their own right, have not encountered every concievable problem, and as such do not have all the answers. But they do know how to GET the answers, by performing research in various manners. Either through use cases, prototyping, through asking their peers, or just by some good old fashion logic.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

Right. Thx.
So practice makes perfect.

Currently I'm interested in programming applications in Windows that have a GUI. What technology should I use? MFC? I've heard that's old/deprecated or something. The .NET?
Some good intermediate C++ books once you've mastered the basics of the language:

- Effective C++ - Scott Meyers
- More Effective C++ - Scott Meyers
- Effective STL - Scott Meyers
- C++ Coding Standards - Herb Sutter and Andrei Alexandrescu (good if you want to learn a bit about 'professional' programming where you have to work in a team and follow the team's coding standards)
- The Design and Evolution of C++ - Bjarne Stroustrup (explains some of the historical reasons why C++ is the way it is, helps you understand some of the design tradeoffs involved)

A couple of more advanced books you might want to read later on:

- Modern C++ Design - Andrei Alexandrescu (read this when you think you understand C++ and templates to discover that you didn't really understand templates at all)
- Large Scale C++ Software Design - John Lakos (goes into the kind of physical design issues that you only start to face on large scale projects with multiple programmers)

General programming books:

- The Pragmatic Programmer - Andrew Hunt and David Thomas
- Design Patterns - Erich Gamma et. Al
- Working Effectively with Legacy Code - Michael Feathers (another good one introducing you to some of the issues you'll have to face working on real projects)

To answer your question about GUI development, for Windows GUI development .NET / Windows Forms is definitely the way to go right now. Make sure you use Visual Studio 2005 though, it's a big improvement over 2003 if you're going to be using C++/CLI and if you go with C# that's improved as well. The Express editions of Visual C# 2005 and Visual C++ 2005 are free to download from MS so there's no reason not to use them.

Game Programming Blog: www.mattnewport.com/blog

Quote:Original post by mattnewport
Some good intermediate C++ books once you've mastered the basics of the language:

<snip>


"C++ Common Knowledge" by S. Dewhurst is worth buying before any of Meyers's. "Modern C++ Design", while eye-opening, isn't immediately useful. I second "C++ Coding Standards" and "The Design and Evolution of C++". I haven't read "Large Scale C++ Software Design".
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
Quote:Original post by Fruny
"C++ Common Knowledge" by S. Dewhurst is worth buying before any of Meyers's. "Modern C++ Design", while eye-opening, isn't immediately useful. I second "C++ Coding Standards" and "The Design and Evolution of C++". I haven't read "Large Scale C++ Software Design".


Not read C++ Common Knowledge, don't think that was out when I was reading the Effective C++ books. I've seen it on the shelves though, might have to give it a read. Yeah, Modern C++ Design and Large Scale C++ Software Design are probably advanced rather than intermediate books, interesting stuff to know but probably not immediately useful unless you're dealing with the sort of things they talk about.

Game Programming Blog: www.mattnewport.com/blog

This topic is closed to new replies.

Advertisement