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

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

May 27, 2015 at 3:35am
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 May 27, 2015 at 5:30am
May 27, 2015 at 5:57am
A software engineer can be quite successful without ever looking at C++ code.
May 27, 2015 at 6:34am
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 May 27, 2015 at 6:37am
May 27, 2015 at 8:13am

-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.
May 27, 2015 at 9:05am
I agree with that list but I'd add RAII into it.
May 27, 2015 at 9:32am
COMPUTER software engineer
There's a different kind of software engineer?
May 27, 2015 at 2:28pm
Interaction with data structures. Something I believe is imprtant across virtually all languages.
May 27, 2015 at 3:12pm
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.
May 27, 2015 at 5:03pm
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.
May 27, 2015 at 7:17pm
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 May 27, 2015 at 7:20pm
May 27, 2015 at 9:23pm
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.
May 27, 2015 at 11:29pm
By templates, do you mean the standard template library?
May 28, 2015 at 12:58am
No, he means generic interaction with a datatype.
Topic archived. No new replies allowed.