views:

387

answers:

8

Should every C++ programmer read the ISO standard to become professional?

+1  A: 

If they're getting paid to write C++, then they are already a professional :)

But I don't think it should be required of any language to get respect. I'm sure there are plenty other uses of such time that might benefit your skillset more.

frou
+4  A: 

I think a lot of things like, "is this ok to do?" are only really answered by looking at the standard.

You can learn a lot of things by reading the standard, because it includes all the tiny details people tend to skip out on.

Having standard on hand also helps you back up your statements, because if someone says, "This is okay to do", you can say, "Actually, according to the standard, it's not okay because..."

I think in conclusion, I'll repeat what I've said before:

Knowing it can't hurt you, but you don't need to have it memorized to be a good C++ programmer.

GMan
+1  A: 

Should every driver memorize the DVM laws to become professional? It might help, but it would also a ton of work that they probably don't have the time for. Maybe reading a book like Code Complete might be more beneficial.

asperous.us
A: 

No. That's not how people learn effectively, and most people won't retain information after reading a spec. You need practice for information to sink in, and there's no way to get that without implementing things. Also, a lot of programmers only need to use a subset of C++, and can page-fault new information in as-needed.

Rather than reading specs, Your time is better spent learning generally how to program, how to write documentation, how to implement algorithms, and learn the more detailed facets of the C++ as you go.

James Thompson
+1  A: 

I'd answer with a few questions:

  • how much value does it provide to the developer to read the ISO standard?
  • Are employers demanding this attribute of their developers?
  • How will it make a developer's code more maintainable, and readable?
  • Will the reading of the ISO standard help the developer make the developers around him/her any better?

(This sounds like a wiki question.)

p.campbell
+1 This is an interesting point: there are many qualities that the standard will not help you with. To become more 'professional' you should first write better more maintainable code (not helped by the standard) while at one point in time, only the standard will answer some of your questions about corner cases, or strange situations.
David Rodríguez - dribeas
To answer the 3rd bullet: A good knowledge of the standard should help avoid undefined, unspecified, implementation defined behaviuor and so the code *should* be more portable and maintainable.
Richard Corden
+23  A: 

No. C++ standard is more like a dictionary - something where you look up specific things that concern you at any given moment. It doesn't make a good (or useful) reading if you treat it as a simple book to read from beginning to end.

If the question were whether every professional C++ programmer should have an ISO standard at hand, and use it for reference as needed, then I'd say "yes".

Pavel Minaev
I like the dictionary analogy.
GMan
+9  A: 

I think that every professional C++ programmer should have a copy of the standard to refer to. But a sit down and slog through it, cover-to-cover read would be pretty numbing. It's mostly written for implementers (compiler writers), and it has next to no explanation of rationale for why the standard requires certain things.

So, I'd say it's more important for a professional C++ programmer to have and read:

  • Stroustrup's "The C++ Programming Language"
  • Meyer's "Effective..." series and/or Sutter's "Exceptional..." series
  • Lippman's "Inside the C++ Object Model"
  • Stroustrup's "Design and Evolution of C++"

Or at least some decent subset of them. If you have a chunk of those books under your belt, you'll only be going to the Standard for minutiae or to settle arguments.

By the way, see this answer for pointers on how to get the standard documents:

Michael Burr
+1 I like you statement 'you'll only be going to the Standard for minutiae or to settle arguments' especially the latter part. If anyone has been reading comp.lang.c++.* (even SO offlate, ya i am also to be blamed :-) ) for a while knows that the C++ Standard has a final say no matter what the discussion :-)
Abhay
A: 

Understanding how and when to read the standard are more important than just reading to to cure insomnia. Of course this applies to all the standards out there that are related to whatever you are doing. There is defiantly a skill to reading and understanding a standard. And knowing when to read them rather than just throw questions to Stackoverflow or any other random web site is a skill that is missing in many programmers (new and old). But I agree with Michael Burr and asperous.us... there are other books that should be read first.

beggs