C++ Praxisschulungen

TU Kaiserslautern Bundesamt für Seefahrt und Hydrographie PTB Smart Commerce Turck Siemens Bayerische Oberlandbahn Saab

Maßgeschneiderte C++ Schulungen

Arbeitet Ihr Team regelmäßig mit der Programmiersprache C++? Falls ja, haben wir genau das Richtige für Sie! Schulungen nach Maß auch für C++ User und Programmierer. Holen Sie das Beste aus Ihren Projekten heraus. Dank einzelner Module, kann Ihr Entwicklerteam individuelle Schulungen erhalten.

Wir finden sicher die optimale Kombination für die Bedürfnisse Ihres Teams. Bringen Sie alle Fragen mit. Wir nehmen uns gerne die Zeit, Sie individuell zu beraten.

Alle Kurse live

In der Academy oder online

Ihre Team-Vorteile auf einen Blick

  • Maßgeschneiderte Themen

  • Flexible Termine und Formate

  • Erfahrene Trainer mit Lehrdidaktik

  • Zertifikat bei einer aktiven Teilnahme

  • Didaktisch durchdachtes Lernmaterial

  • Praxisorientiert, kompakt und lebhaft

C++ Themen und Module

Kurz vorweg: Jedes Themengebiet kann auf Wunsch vertieft werden. Ihre Bedürfnisse haben Vorrang. Sie entscheiden, was Ihr Team benötigt. Wir erstellen das Konzept. Falls Ihr Team nur einen Überblick haben will, dann können Sie relativ viele Themen auswählen. Allerdings wird es dem Team danach wahrscheinlich relativ schwer fallen, das Gelernte in der Praxis umzusetzen.

Wenn Sie also mit C++ ernsthaft und seriös arbeiten möchten, dann ist es unserer Erfahrung nach besser, wenn Sie wenige Themen auswählen und wir diese dafür in der Schulung tiefgehend und gründlich besprechen und ausreichend viele Praxis-Workshops machen. Hier gilt in der Tat „weniger ist mehr!“. Am besten können wir gemeinsam in einem Beratungsgespräch identifizieren, welche Themen für Ihr Team und Ihre Projekte zielführend sind.

Wir predigen keine Theorie, wir lösen Probleme! Holen Sie das Maximum an Wissen für Ihr Team heraus. Stellen Sie die Themen gemäß Ihrer Vorkenntnisse und Bedürfnisse, je nach Projekt, zusammen. Denn individuelles Lernen bringt den gewünschten Erfolg!

C++ Grundlagen

Diese Themen bilden das Fundament von C++. Jeder, der mit C++ arbeitet muss den Inhalt dieser Module beherrschen, unabhängig davon, wie komplex die Programme sind, an denen man arbeitet.

Folgende Schwerpunkte beinhaltet das Modul: C++ Grundlage

  • Datentypen und Operationen
  • Variablen und Initialisierung
  • Werte-Semantik, Konstruktion, Destruktion
  • Pointer, Referenzen, Smart Pointer, RAII
  • Funktionen und Kontrollfluss
  • Überblick über grundlegende Datenstrukturen in C++: String, Vector, Map
  • Entwicklungsumgebungen und Build-Systeme für C++
  • Vererbung und abstrakte Klassen
  • Polymorphie und Interfaces

Intermediate und Fortgeschrittene C++

C++ ist eine enorm mächtige Sprache, die zahlreiche fortgeschrittene Features bietet. Die folgenden Module sind nur eine kleine Auswahl davon; wir können in einem persönlichen Gespräch klären, welche Themen für Sie besonders relevant sind.

Folgende Schwerpunkte beinhaltet das Modul: Intermediate und Fortgeschrittene C++ Themen

  • Lambdas und Funktions-Objekte
  • Move-Semantik, rvalue-Referenzen und move
  • Allokatoren, Polymorphic Memory Resources (PMR)
  • Nebenläufiges Programmieren (Threads, Atomare Operationen, Futures)
  • Performance-Optimierung
  • Networking in C++
  • Datenbanken in C++

Die C++ Standardbibliothek

C++ bietet eine reichhaltige Bibliothek an Datentypen, Algorithmen und sonstiger Funktionalität. Durch den weit verbreiteten Einsatz von Templates kann die Standardbibliothek oft sehr effizient arbeiten, allerdings lauern dadurch auch einige Fallstricke auf den Programmierer. In diesen Modulen zeigen wir, wie Ihr Team den maximalen Nutzen aus der Standardbibliothek ziehen kann.

Folgende Schwerpunkte beinhaltet das Modul: Die C++ Standardbibliothek

  • Strings
  • Input/Output
  • Memory Management (unique_ptr, shared_ptr)
  • STL Containers: (array, vector, deque, list, map, set und unordered_*-Varianten)
  • Iteratoren
  • Algorithmen
  • Ranges

Templates und Compilezeit-Programmierung

Eine der Besonderheiten von C++ ist die Möglichkeit Berechnungen zur Compilezeit auszuführen und damit hochgradig effizienten Code zu generieren. Traditionell waren Templates und Template-Metaprogrammierung dafür das Mittel der Wahl. Oftmals musste man dazu die sogenannte SFINAE Regel anwenden (Substitution Failure is Not An Error), die oft zu schwer zu lesendem Code führt. In neueren C++ Standards wurden jedoch sowohl Features für Berechnungen zur Compilezeit eingeführt, die nicht auf Templates basieren, als auch die Fähigkeiten von Templates mit sogenannten Concepts und Constraints erweitert.

Folgende Schwerpunkte beinhaltet das Modul: Templates und Compilezeit-Programmierung

  • Verwenden und Schreiben von Templates
  • Compilezeit-Evaluierung von Code: constexpr, consteval und constinit
  • Type-Traits
  • Concepts und Constraints
  • Klassische Template Metaprogrammierung: SFINAE und die Konsequenzen

Fehlerbehandlung in C++

Zur Behandlung von Ausnahmesituationen gibt es in C++ mehr praktisch relevante Möglichkeiten als in den meisten anderen Programmiersprachen: C++ bietet zwar einen leistungsfähigen Exception-Mechanismus an, der aber in vielen Situationen nicht genutzt werden kann: ob sicherheitskritische Software, Echtzeitanwendungen oder Bibliotheken, die in andere Sprachen eingebunden werden sollen, in vielen Fällen muss man auf eine andere Fehlerbehandlungsstrategie ausweichen.

Folgende Schwerpunkte beinhaltet das Modul: Fehlerbehandlung in C++

  • Möglichkeiten der Fehlerbehandlung in C++, Vor- und Nachteile
  • Ausnahmebehandlung (try-catch)
  • Seams und ihre Besonderheiten in C#
  • Basic, strong und no-fail Exception-Garantien
  • Schreiben von Exception-Safe Code: RAII, Rule of Zero, …
  • Andere Möglichkeiten der Fehlerbehandlung (C-Kompatibel, Boost-LEAF, …)

Clean Code / Clean Unit Test in C++

Die Module in diesem Themenkomplex beschäftigen sich nicht primär mit einzelnen Sprach-Features von C++ sondern mit der Frage: Wie verwende ich die Features von C++ um Programm-Code zu schreiben, der möglichst wenige Fehler hat, und leicht zu verstehen, zu ändern und zu erweitern ist. Die Module in diesem Abschnitt beschränken sich dabei hauptsächlich auf relativ “lokale” Programmbestandteile wie einzelne Funktionen und Klassen.

Natürlich gehen wir auch in den Modulen, die die entsprechenden Sprachkonstrukte einführen darauf ein, wie man sie gut verwendet; die Module in diesem Abschnitt vertiefen die Techniken weiter und gehen auch auf Aspekte ein, für die in einem typischen C++ Grund- oder Aufbaukurs keine Zeit bleibt

Agile Programmieren: Agile Techniken helfen “Technical Debt” gering zu halten und die Software so flexibel zu halten, dass der Einbau neuer Features über die gesamte Lebensdauer des Projekts möglich bleibt.

Folgende Schwerpunkte beinhaltet das Modul: Clean Code / Clean Unit Test in C++

  • Code Styles in C++
  • Tools zur Verbesserung der Code-Qualität (Linter, Statische Analyse)
  • Clean Code: Namen, Kommentare, Funktionen
  • Member-Funktionen vs. freistehende Funktionen
  • Testen mit Catch2
  • Test-first Development Techniken
  • Test Driven Development (TDD)
  • Behavior Driven Development (BDD)
  • Ausführbare Spezifikationen (cucumber/behave)
  • Test Double und Mocking Frameworks
  • Refactoring Patterns und Best Practice in C++

Objektorientierung, Design und Architektur

Diese Module decken das komplette Spektrum der objektorientierten Programmierung ab und zeigen, wie Ihr Team eine Vielzahl von Techniken und Patterns einsetzen kann um Programme besser zu strukturieren. Hier werden sowohl die Grundlagen der Objektorientierung besprochen, die unabhängig von einer bestimmten Programmiersprache sind, als auch viele der Besonderheiten von C++, die oft weit über die Möglichkeiten, die andere Programmiersprachen bieten, hinausgehen.

Folgende Schwerpunkte beinhaltet das Modul: Objektorientierung, Design und Architektur

  • Grundkonzepte der Objektorientierung
  • Klassen und Structs
  • Vererbung, abstrakte Klassen und Interfaces
  • Virtuelle Vererbung und Mehrfachvererbung
  • Praxis-relevante Software Architektur
  • Entwurfsmuster (Design Patterns) in C++
  • ☐ Entwerfen, Strukturieren und Umsetzen von großen Projekten:
  • SOLID
  • GRASP
  • Architekturstile, hexagonale Architektur

Arbeiten mit Legacy Code in C++

Jeder Programmierer arbeitet gerne an modernem, gut strukturiertem Code, der gründlich dokumentiert und getestet ist. Leider sieht die Praxis oft anders aus. Wenn Ihr Team eine Codebasis pflegen muss, die durch strukturelle Probleme, unzureichende Dokumentation und keine oder schlechte Tests gekennzeichnet ist, dann können wir Ihnen leider nicht versprechen, dass einer unserer Kurse das Problem über Nacht lösen kann. Aber in diesen 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.

Folgende Schwerpunkte beinhaltet das Modul: Arbeiten mit Legacy Code in C++

  • Absicherungstests
  • Inkrementelle Verbesserung von Code und Tests
  • Seams und ihre Besonderheiten in C++
  • Refactoring Patterns für Legacy Code

Effektives Arbeiten als Team

Diese Module behandeln Techniken, die helfen die Arbeit im Team produktiver zu machen und die Qualität der resultierenden Software zu verbessern.

Folgende Schwerpunkte beinhaltet das Modul: Effektives Arbeiten als Team

  • Versionskontrolle (Git)
  • Docker
  • Continuous Integration (CI)
  • Workflows: Issue Tracking, Pull/Merge Requests
  • Beispiel: Arbeit mit einer lokalen GitLab Instanz in Docker
  • Kubernetes
  • Elasticsearch/Kibana (OpenSearch/Dashboards)

Beispiele: Maßgeschneiderte C++ Kurse

Diese Beispiele zeigen, wie einige Kurse für typische Kundenanforderungen aufgebaut sein können.

Beispiel 1: Einführung in modernes C++

Sie starten ein C++ Projekt, aber einige der Teammitglieder haben zwar Kenntnisse in Java oder C#, aber nicht in C++. Um diese Teammitglieder auf einen Stand zu bringen, mit dem sie produktiv an der Codebasis arbeiten könnten, wäre ein Kurs mit folgenden Modulen geeignet:

  • Datentypen und Operationen
  • Variablen und Initialisierung
  • Werte-Semantik, Konstruktion, Destruktion
  • Pointer, Referenzen, Smart Pointer, RAII
  • Funktionen und Kontrollfluss
  • Überblick über grundlegende Datenstrukturen in C++
  • String, Vector, Map
  • Entwicklungsumgebungen und Build-Systeme für C++
  • Strings
  • Memory Management (unique_ptr, shared_ptr)
  • STL Containers: (array, vector)

Beispiel 2: Objektorientierte Softwarearchitektur in C++

Sie sind ein Team aus erfahrenen Entwicklern, für die weder die Programmiersprache C++ selber noch die Grundlagen der Objektorientierung Neuland sind. Aber Sie wollen das große Software-Projekt, an dem Sie gerade arbeiten besser strukturieren und auf zukünftige Anforderungen vorbereiten. Dann könnten die folgenden Module die Richtigen sein:

  • Praxis-relevante Softwarearchitektur
  • Entwurfsmuster (Design Patterns) in C++
  • Entwerfen, Strukturieren und Umsetzen von großen Projekten:
  • SOLID
  • GRASP
  • Architekturstile, hexagonale Architektur
Dr. Matthias Hölzl
Dr. Matthias Hölzl

Expert: Python, JavaScript, C++ , Machine Learning,

Dr. Stefan Behnel
Dr. Stefan Behnel

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

Dr. Max Meier
Dr. Max Meier

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

Fragen und Antworten zur C++ Schulung

Welche Kursformate gibt es?

3-tägiger Kurs vor Ort bei der Coding Academy

Der Kurs findet in unsern modernen und top ausgestatteten Schulungsräumen statt. Wir stellen jedem Teilnehmer während der Schulung einen modernen Laptop zur Verfügung. Getränke werden von der Coding Academy zur Verfügung gestellt. Zugang zum Material bekommen Sie spätestens am ersten Tag des Kurses.

3-tägiger Inhaus-Schulung vor Ort bei Ihnen

Gerne kommen auch unsere Trainer zu Ihnen, wenn dies von Ihrer Seite ausdrücklich erwünscht ist und Sie für die Schulung einen guten Schulungsraum und die notwendige Infrastruktur haben.

3-tägiger Onlinekurs

Der Kurs findet Online statt. Sie benötigen lediglich einen Computer mit Internet-Zugang; für manche Kurse ist es allerdings nötig, dass Sie die verwendete Software installieren; das ist in der Beschreibung des jeweiligen Kurses angegeben. Zugang zum Material bekommen Sie spätestens am ersten Tag des Kurses.

4-Wochen Programm

Ein neues und innovatives Lernkonzept. Mehr Infos dazu hier.

Wie läuft der formale Prozess ab (Bestellung, Schulung, Rechnung)?

  • Wenn Sie sich für eine Schulung interessieren, kontaktieren Sie uns am besten, damit wir die fachlichen Themen abklären können.
  • Falls Sie die Schulung bei uns absolvieren möchten, lassen wir Ihnen gerne ein unverbindliches Angebot zukommen.
  • Falls das Angebot Ihnen zusagt, nehmen Sie dieses an (eine kurze Zusage per E-Mail reicht aus).
  • Sollten Sie eine Auftragsbestätigung benötigen, schicken wir sie Ihnen gerne zu.
  • Danach finden wir gemeinsam einen Termin, der für Ihr Team gut passt.
  • Bei Online Schulung stellen wir Ihnen den Link zur Verfügung: MS-Teams, BBBServer oder Zoom.
  • Ein paar Tage nach der Schulung erhalten Sie eine Rechnung mit einem Zahlungsziel von zwei Wochen.
  • Bei aktiver Teilnahme an der Schulung erhalten die Teilnehmer ihre Zertifikate nachträglich per E-Mail.

Erhalten Absolventen der C++-Kurse ein Zertifikat?

Selbstverständlich erhalten Sie als Teilnehmer an einem C++-Kurs ein Zertifikat. Voraussetzung dafür ist die komplette Teilnahme an allen Kurseinheiten und Programmier-Aufgaben und die erfolgreiche Programmierung eines kleinen Abschlussprojektes. Das allerdings wird Ihnen nach einem intensiven C++-Kurs mit Sicherheit mehr Freude als Stress bereiten.

Was zeichnet Kurse bei der Coding Academy aus?

  • Individuell: wir gehen gezielt auf Sie ein und berücksichtigen Ihre Vorkenntnisse, Wunschthemen und Schwerpunkte
  • Von Experten nach der RAED-Lehrmethode® entwickelt
  • Kompakt, lebhaft und unterhaltsam
  • Strukturiert und leicht verständlich
  • Viel Praxis: Sie können die im Kurs erlernten Kenntnisse sofort anwenden
  • Theorie auf das Wesentliche optimiert
  • Viele Beispiele und Aufgaben, deren Schwierigkeitsgrad linear ansteigt
  • Kleine Gruppen: max. 8 Teilnehmer im 3-Tages-Kurs; max. 15 Teilnehmer im Online-Coaching
  • Hochqualifizierte Trainer mit bis zu 30 Jahren Erfahrung in Industrie und Lehre an deutschen Hochschulen und Universitäten
  • Bei vor Ort Schulungen stellen wir den Teilnehmern moderne Laptops ohne Zusatzkosten zur Verfügung

Kundenstimmen

Wir danken unseren Kunden für ihr Vertrauen.

Astrid Elbe

Meine gemeinsamen Projekte mit der Coding Akademie verliefen sehr erfolgreich und absolut zuverlässig. Der Kurs-Katalog umfasst die momentan in Unternehmen am meisten relevanten Programmiersprachen. Vor allem die Kurse zur Verbesserung der Softwarequ...

Ganzes Testimonial zeigen

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

Wenn mich unsere Mitarbeiter/innen bezüglich Schulungen im Coding- und Clean Code- Bereich ansprechen, gibt es mittlerweile nur noch einen Ansprechpartner und das seid natürlich Ihr: die Münchner Coding Akademie! Bei Euren Kursen habt Ihr mit einer s...

Ganzes Testimonial zeigen

Herr Tim Stuckmann,
VW

Hier bleibt keine Frage offen!

Wir nehmen uns sehr gerne Zeit für Sie. Nutzen Sie unser Kontaktformular für eine schriftliche Kontaktaufnahme. Unser Team antwortet rasch und spätestens innerhalb von 24h. Bei fachlichen Fragen und zur Klärung der Schwerpunkte, die für Ihr Team zielführend sind, vereinbaren Sie einen Termin für ein unverbindliches Beratungsgespräch!