I just had a 3 day course about Advanced C++ programming.
It was pretty cool, and I enjoyed every second of it.
I already knew most of the C++ language itself, but I've never taken any course about the different ways of programming, and which way suits best each solution. This was exactly what I wanted to learn, and I feel much more professional now
The course talked about the following things, and we had to write also real C++ code for most of the ways we just learned and compile and run it. It was organized pretty smart, as many topics built upon a previous topic, and the code we wrote earlier. That was fun also:
- different models and their usage
- GoF-models (GoF=Gang of Four: http://en.wikipedia.org/wiki/Design_Patterns )
- Abstract Factory
- Factory Method
- Chain of Responsibility
- Template Method
- usual problems in class design
- solutions to problems
Each of those topics exposed a different way of programming in C++, and it was pretty amazing what kind of features are hidden in C++, of which most people probably never thought of before.
I had no idea how powerful and easy C++ really is, when you use it the real C++ way. Basically it was like, you should use classes for everything, and never do big if() constructs and other hardcoded and procedural logic.
Doing things right in C++ gives also a huge speed boost in execution and programming time, and makes code really reusable, as they explained why each const, virtual, static, volatile, mutable, stack, heap, algorithm, etc... is useful.