C++ Course Advanced

Valtech Turck SG Service IT AUSY IT Ebit Systems PTB Sahlberg Versicherungskammer

C++ advanced course: practical course for programmers and advanced

Are you a C++ programmer looking to take your skills to the next level? Do you want to gain knowledge in object-oriented programming and advanced C++ topics to be able to implement demanding projects?

Then this course is the right one for you and you need not look any further. Learn more about our advanced C++ course here.

All courses live

In the Academy or online

Your benefits at a glance

  • Lots of practice and immediately applicable knowledge for your projects

  • Certificate for active participation

  • Small groups with max. 8 participants

  • Your trainers are experts with years of teaching and industry experience

  • Comprehensive learning materials

  • Compact, lively, and sustainable

What do you learn

  • Writing sophisticated C++ programs
  • Using advanced C++ language features
  • Ability to write simple C++ programs with multiple classes
  • Using the STL: Data structures, algorithms, ranges
  • Object-oriented programming with C++
  • Efficient C++
  • Using templates, template metaprogramming

Content

The course covers a selection of the following topics:

  • Types and value categories, move semantics
  • Custom data types with classes and structs
    • Constructors and destructors, Rules of 0/3/5
    • Inheritance and polymorphism
    • The C++ data model: memory model, vtables, etc.
  • The STL:
    • Iterators, iterator categories
    • Data structures: Vectors, lists, maps, sets, etc.
    • Algorithms: Sorting, searching, etc.
    • Ranges
  • Error handling
  • Templates and template metaprogramming
    • Function and class templates
    • Variadic templates
    • SFINAE and metaprogramming
    • Concepts: Modern templates and template metaprogramming

Prerequisite

This C++ course is designed for you if you have solid basic knowledge in C++, for example, if you have attended our Basic C++ course or have comparable knowledge.

Description

Unlock the power of advanced C++ with our practice-oriented advanced course! Our comprehensive training program is designed to guide you through complex techniques in C++ and make the learning process easy and structured.

Experience a truly interactive, engaged, and in-depth insight into advanced C++ programming, and turn complex theories into practical know-how. Whether you want to expand your knowledge to handle complex projects, or you want to elevate your programming skills to an expert level, this course provides the perfect platform for your C++ mastery journey.

Learn from experienced professionals who demonstrate advanced techniques and applications of C++ and help you to successfully implement challenging projects. Use this course as a springboard for your career and position yourself at the forefront of C++ development. Unleash your full potential with our Advanced C++ Practical Course!

Schedule

In this course, we assume that you already have solid basic knowledge of C++. Therefore, we won't revisit these foundations but dive directly into more advanced topics.

We start with a discussion on types and value categories such as L-values and R-values, and the move semantics enabled by them. Building upon this, we will discuss the concepts of classes and structs and learn about options to control copy and move operations. Another essential topic in this context is inheritance and polymorphism in C++. We will see how virtual functions are realized in C++ and what impact this has on object-oriented programming in C++. In doing so, we will also look at many of the pitfalls that can occur when using inheritance hierarchies in C++.

In the next step, we will get acquainted with the Standard Template Library (STL). First, we discuss iterators, which enable the decoupling of data structures and algorithms. We talk about various data structures provided by the STL, such as vectors, lists, maps, and sets, and learn about the associated algorithms. In this context, we also discuss lambda functions, which often simplify working with algorithms. Lastly, we will get to know ranges, which were introduced in C++20 and further simplify working with algorithms.

Another important topic in C++ is error handling with exceptions. We will see how exceptions work in C++ and how they can be used to handle errors and transmit error information. However, in many applications of C++, the use of exceptions is not possible. Therefore, we will also discuss what alternatives there are to handle errors without exceptions.

In the end, we will deal with templates and template metaprogramming. We will see how function and class templates can be used to implement generic algorithms and data structures. We will also get to know variadic templates, which make it possible to work with an arbitrary number of template parameters. Furthermore, we will explore the possibilities of template metaprogramming, which allows programming at compile-time. We will see how SFINAE (Substitution Failure Is Not An Error) can be used to control template specializations.

Certificate

Of course, as a participant in the Advanced C++ course, you will receive a certificate. The prerequisite for this is complete participation in all course units and programming tasks.

Where do we go from here?

If you are interested in learning how to write "good" software - that is, software that is easy to maintain and extend, and on which you can rely to function as it should - our courses: C++ Clean Code and Test, as well as C++ Clean Software Architecture, are the right courses for you. In these courses, you will learn various techniques to improve the quality of your software.

We are very much looking forward to welcoming you in this and future courses at the Coding Academy!

Course formats

3-day on-site course

The course takes place in our modern and top-equipped training rooms. We provide each participant with a modern laptop during the training. Drinks are provided by the Coding Academy. Access to the material will be provided at the latest on the first day of the course

3-day online course
The course takes place online. You only need a computer with Internet access; however, for some courses it is necessary to install the software used; this is specified in the description of the respective course. Access to the material will be provided at the latest on the first day of the course.

4-week program

A new and innovative learning concept. More information about the 4 weeks program can be found here.

YOUR TRAINERS

The Advanced C++ course is conducted by one of the following trainers:

Dr. Matthias Hölzl
Dr. Matthias Hölzl

Expert: Python, C++, Clean Code, Unit Test, Clean Design

Dr. Stefan Behnel
Dr. Stefan Behnel

Expert: Python, Pytest, Clean Code, Fast Python, Cython

Dr. Max Meier
Dr. Max Meier

Expert: .NET/C#, Software Architecture, Microservice

Customer testimonial

We thank our customers for their trust

Thomas Christl

I can absolutely recommend the Coding Academy. I attended an introductory course on programming with Python. The training materials were top notch and very comprehensive. In addition to the clear explanation of the theory, there were many exercises a...

Show full testimonial

Thomas Christl,
Innovation Manager Mobility TÜV SÜD

Astrid Elbe 02 lrg web

My joint projects with the Coding Academy have been very successful and absolutely reliable. The course catalog includes the programming languages that are currently most relevant in companies. The courses on improving software quality and productivi...

Show full testimonial

Dr. Astrid Elbe,
Vice President Aviat Networks und ehemalige Managing Director Intel Labs Europe

Request