• Forum
  • Lounge
  • What aspects of c++ do you think EVERY s

 
What aspects of c++ do you think EVERY software engineer should know?

In your opinion.

What aspects of c++ are the most important overall? Do you think some libraries are more important than others? (in c++)

By "important", i really mean what aspects of c++ will a software engineer mostly use throughout their career.
Last edited on
A software engineer can be quite successful without ever looking at C++ code.
I guess i should rephrase the question..

What aspects of c++ are the most important to know overall for a COMPUTER software engineer? (in your opinion)
Last edited on

-How to use inheritance and or composition wisely/effectively
-Operator overloading
-Templates
-Iterators
-Exceptions/Error Handling
-Good understanding of containers, their tradeoffs, running times for different operations, etc.
I agree with that list but I'd add RAII into it.
COMPUTER software engineer
There's a different kind of software engineer?
Interaction with data structures. Something I believe is imprtant across virtually all languages.
The principles listed by htirwin just about cover it. These are not unique to C++ though, one should simply understand the principle itself. If you can do that, then you can use them properly in any language, which is far more valuable. Besides just understanding general language concepts, however, any good software engineer should be very good at problem solving and thinking creatively. You could understand every programming language ever made and all of your knowledge would be useless if you hadn't a clue as to how to actually apply it to real problems.
One aspect I would like to add that no one ever seems to mention it enough (Even though it takes up at least 50% of a programmers time) is debugging. Learn how to use debugging tools and learn how to use them effectively. These include standard debuggers, profilers, etc.

These should be learned as soon as possible in my mind (Should be taught in the first course in college imo), and every single programmer should at least know how to use a debugger.
I just want to add Pointers: In every language there is some sort of mechanism (except in really, really high-level languages, but even Java has this feature) to reference an object from another. Even if functionality is limited to being able to have more than one reference, it's still critical to understand how pointers work. All too often I've heard Java devs say stupid things like "In C++ you have to 'manage' your memory, but in java you don't have to!", but that's not true at all. It just tells me that they have no clue how pointers work, and that they don't understand RAII or automatic variables, even though they obtained a bachelor's degree.
Last edited on
One of the most powerful aspects of C++ is the ability to apply new language features when using old C code or libraries. Like wrapping pointers into smart-pointers, using vectors/RAII, etc.
By templates, do you mean the standard template library?
No, he means generic interaction with a datatype.
Topic archived. No new replies allowed.