C++ Practical courses

C++ trainings à la carte!

Tailor-made C++ practice courses for your team

(company exclusive trainings from 3 employees)


Thanks to Dennis Ritchie and Bjarne Stroustrup we use one of the fastest programming languages in the world! C ++ focuses here on software development. 

The C++ training can be tailored to the needs of your team. 

We offer:

  • Basic training
  • New Features in C++
  • Advanced training
  • Library access
  • Clean Code and Clean Unit Test
  • Clean Software Architecture
  • Working with C++ Legacy Code
  • Utilities: (pair, tuple, optional, variant, move)
  • Best Practice Portfolio

Book your free consultation now! Bring all your questions with you. We'll be happy to take the time to consult with you individually.

WHAT C++ TOPICS CAN YOU CHOOSE FROM?

The following list includes the most common C# topics, however, the training can be customized to the level of your team. Based on this, our trainer will adhere to the individual objectives of the course.

If your team just wants an overview, then you can select a relatively large number of topics. However, the team will probably find it relatively difficult to put what they have learned into practice afterwards. Some of the modules above will take a day (or even longer) on their own if the content is to be really thoroughly discussed and your team doesn't already have prior knowledge!

So if you want to work with C++ seriously and seriously, then in our experience it is better if you choose few topics and we discuss them in depth and thoroughly in the training and do enough practical workshops. Indeed, "less is more!" applies here. The best way for us to identify together which topics are target-oriented for your team and your projects is in a consultation.

We don't preach theory, we solve problems! Get the maximum knowledge for your team. Compile the topics according to your previous knowledge and needs, depending on the project. Because individual learning brings the desired success! Topics you click here will be automatically referred to us as soon as you send a request form!

C++ Basics

These topics form the foundation of C++. Anyone working with C++ needs to master the content of these modules, regardless of how complex the programs you are working on are.

The C++ Basics module includes the following focus areas:

Intermediate and Advanced Topics

C++ is an enormously powerful language that offers numerous advanced features. The following modules are only a small selection of these; we can discuss which topics are particularly relevant to you in a personal meeting.

The C++ Intermediate and Advanced module includes the following focus areas:

The C++ Standard Library

C++ offers a rich library of data types, algorithms, and other functionality. Due to the widespread use of templates, the standard library can often work very efficiently, but this also means that some pitfalls lurk for the programmer. In these modules, we show how your team can get the maximum benefit from the standard library.

The C++ Standard Library module includes the following focus areas:

Templates and compile-time programming

One of the special features of C++ is the ability to perform compile-time calculations and thus generate highly efficient code. Traditionally, templates and template metaprogramming were the means of choice for this. Often one had to apply the so-called SFINAE rule (Substitution Failure is Not An Error), which often leads to code that is difficult to read. However, in more recent C++ standards, features for compile-time calculations that are not based on templates have been introduced as well as the capabilities of templates have been extended with so-called concepts and constraints.

The C++ Templates and compile-time programming module includes the following focus areas:

Error handling in C++

There are more practically relevant options for handling exceptional situations in C++ than in most other programming languages: While C++ offers a powerful exception mechanism, it cannot be used in many situations: whether safety-critical software, real-time applications, or libraries that are to be integrated into other languages, in many cases one must resort to another error handling strategy.

The Error handling in C++ module includes the following focus areas:

Effektive C++: Clean Code & Clean Unit Test in C++

The modules in this topic do not deal primarily with individual language features of C++ but with the question: How do I use the features of C++ to write program code that has as few errors as possible and is easy to understand, change and extend. The modules in this section are mainly limited to relatively "local" program components like single functions and classes.

Of course, we also go into how to use the relevant language constructs well in the modules that introduce them; the modules in this section delve further into the techniques and also cover aspects that there is no time for in a typical basic or advanced C++ course.

Agile Programming: Agile techniques help to keep "technical debt" low and to keep the software flexible enough to allow the incorporation of new features throughout the life of the project.

The Clean Code / Clean Unit Test in C++ module includes the following focus areas:

Object Orientation, Design and Architecture

These modules cover the full spectrum of object-oriented programming and show how your team can use a variety of techniques and patterns to better structure programs. Both the fundamentals of object orientation, which are independent of any particular programming language, and many of the unique features of C++, which often go far beyond what other programming languages offer, are discussed here.

The Object Orientation / Clean Design and Architecture in C++ module includes the following focus areas:

Working with legacy code in C++

Every programmer likes to work on modern, well-structured code that is thoroughly documented and tested. Unfortunately, the practice often looks different. If your team has to maintain a codebase characterized by structural issues, insufficient documentation, and no or poor testing, then unfortunately we can't promise you that any of our courses will solve the problem overnight. But in these modules, your team will learn many proven techniques that they can use step by step to get their code into a shape that makes it fun to work with again

The Working with legacy code in C++ module includes the following focus areas:

Working effectively as a team

These modules cover techniques that help make teamwork more productive and improve the quality of the resulting software.

The Working effectively as a team module includes the following focus areas:

Example courses

The following examples show how courses can be structured for typical customer requirements.

Introduction to modern C++

You are starting a C++ project, but some of the team members have knowledge of Java or C#, but not C++. To get these team members to a level where they could productively work on the code base, a course with the following modules would be appropriate:

  • Data types and operations

  • Variables and initialization
  • Value semantics, construction, destruction
  • Pointers, references, smart pointers, RAII
  • Functions and control flow
  • Overview of basic data structures in C++: string, vector, map
  • Development environments and build systems for C++
  • IDEs and Build-Systems for C++
  • Strings
  • Memory Management (unique_ptr, shared_ptr)
  • STL Containers: (array, vector)

Object-oriented software architecture in C++

You are a team of experienced developers for whom neither the C++ programming language itself nor the basics of object orientation are new territory. But you want to better structure the large software project you are currently working on and prepare it for future requirements. Then the following modules might be right for you:

  • Practice-relevant software architecture
  • Design patterns in C++
  • Designing, structuring, and implementing large projects:
  • SOLID
  • GRASP
  • Architectural styles, hexagonal architecture

Your Trainer

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

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

Dr. Willhelm Berghorn
Dr. Willhelm Berghorn

Expert: C++, C#, JavaScript, ReactJS, Clean Code

Dr.-Ing. Lait Abu Saleh
Dr.-Ing. Lait Abu Saleh

Expert: Python, C++, C#, Embedded System

Course formats

We offer different course formats: 3-day programs, 4-week intensive programs, and online training videos.

    The 3-day program

    In 3 days (8 hours/day) you will be guided to the next level by an expert: Participate on-site at the Coding Academy Munich or online from anywhere in the world. With a practical exam for the certificate.

    3-Day Online Course

    The course takes place online. All you need is a computer with internet access. For some modules it is necessary to install specific Python packages or additional software. We will clarify details when compiling the course content. You will get access to the material on the first day of the course at the latest.

    3-Days on-site at the Coding Academy

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

    3-days on your premises

    If you wish, one of our experts will hold the course at your premises. Then you provide the technology, e.g. computers with the software needed for the course. With this format, there are additional costs for travel and accommodation.

    The 4-week intensive program

    In 4 weeks to the next level: You get 2-3 hours of teaching and video material on Mondays and take part in our online live training for 2 hours on Fridays. Here, all open questions can be discussed and clarified with the trainer. With a practical exam for the certificate.


    This is a combination of online and offline training, sometimes referred to as "blended learning".

    Schedule

    • We always start on a Monday! You will get high quality learning videos, learning material and sample solutions on the first day. The videos are only available exclusively from us and were recorded by Coding Academy experts.
    • You will study for about 2 hours a day with the videos and study materials. Our courses include many workshops that you work on independently during this time. This engagement with the material and the exercises is essential for success! Because in the online sessions we answer questions about the material learned and discuss the solutions of the workshops, we do not re-explain what was covered in the Learning Video!
    • In the first week we meet online for 2 hours on Wednesday. You can ask questions here, we discuss your solutions to the tasks and explain further topics if necessary or solve additional tasks together.
    • On Friday we will meet again online for 2 hours. Just like Wednesday.
    • From the second week we repeat steps 1, 2 and 4, which means that on Monday you get learning videos and material, you deal with the topics offline and on Friday we meet for 2 hours.
    • We repeat the program for a total of 4 weeks.

    Great extra: Our online forum. All course participants can get help from our teaching assistants at any time.

    Online-Training Videos

    The videos pick up the topics from the live trainings and show real programming examples from practice.

    We also offer the courses as online-only training videos. You have access at any time and can access the modules at your pace. This way, you can benefit from our high-quality learning videos at a very affordable price. In our online forum you can discuss with other participants and get help from our Teaching Assistants in case of problems.

    Contact us about the availability of the course you want.

    Questions and answers about C++ training

    Which format is right for me?

    The content that is taught is the same whether you take the course online, on-site, in a 4-week program, or as a training video. We have had very good experiences with all formats.

    Online or on-site training?

    The online and on-site training courses teach the material in a compact, intensive form. You can reserve a block of time that is 100% dedicated to learning, which typically has a positive effect on the learning curve.


    On-site trainings are often a little easier to discuss in a group than online trainings, but online trainings eliminate the time spent traveling to the training and allow you to work in your familiar environment.

    4-week program and training videos?

    With the 4-week program and video-only courses, learning is spread out over a longer period of time. This allows you to flexibly divide your time, learn in a more relaxed way and offers more opportunities to try out the concepts you have learned in practice.


    Another advantage of these formats is that the team does not have to be completely removed from project work for several days. In addition, each participant can complete the video learning units and practice exercises at their own pace and does not have to wait for other participants or complete the assignments under time pressure.

    In the 4-week program, you are responsible for completing the designated learning units and exercises each week to stay on track with the material.

    What is the formal process (order, training, invoice)?

    • If you are interested in training, it is best to contact us so that we can clarify the professional issues.
    • If you would like to complete the training with us, we will be happy to send you a non-binding offer.
    • If you like the offer, accept it (a short confirmation by e-mail is sufficient).
    • If you need an order confirmation, we will be happy to send it to you.
    • Then, together, we will find a date that works well for your team.
    • For online training, we will provide you with the link: MS Teams, BBBServer or Zoom.
    • A few days after the training you will receive an invoice with a payment term of two weeks.
    • In case of active participation in the training, participants will receive their certificates subsequently by e-mail.

    What distinguishes courses at the Coding Academy?

    • Individual: we specifically address you and take into account your previous knowledge, desired topics and focal points

    • Developed by experts according to the Raed Teaching Method®

    • Compact, lively and entertaining

    • Structured and easy to understand

    • Lots of practice: you can immediately apply the knowledge you learn in the course

    • Theory optimized to the essentials

    • Many examples and tasks whose level of difficulty increases linearly

    • Small groups: max. 8 participants in the 3-day course; max. 15 participants in online coaching

    • Highly qualified trainers with up to 30 years of experience in industry and teaching at German colleges and universities

    • For on-site training, we provide participants with modern laptops at no additional cost

    Do the participants of the C++ courses receive a certificate?

    Of course, as a participant in a C++ course you will receive a certificate. The prerequisite for this is the complete participation in all course units and programming tasks and the successful programming of a small final project. However, after an intensive C++ course, this will certainly give you more pleasure than stress.