Description
Who Should Attend
This course is designed for developers who already have experience with C++ and want to deepen their capability, including:
• Software Engineers working with C++
• Embedded and Systems Developers
• Developers maintaining or modernising legacy C++ codebases
• Technical Leads and Senior Engineers
Learning Objectives
By the end of this course, participants will be able to:
• understand and apply key C++20 language features
• write safer and more expressive code using modern C++ techniques
• improve code quality through better abstractions and patterns
• use new features to enhance performance and efficiency
• modernise existing codebases effectively
• apply best practices for maintainable and scalable C++ development
Course Content
Modern C++ Foundations and Evolution
Participants begin by understanding how C++ has evolved and why modern approaches are important.
Topics typically include:
• evolution from legacy C++ to modern C++
• benefits of adopting modern language features and patterns
• common issues in older C++ codebases
• principles of writing clean, maintainable C++ code
Key C++20 Language Features
Participants explore the most impactful features introduced in C++20.
Topics typically include:
• concepts for clearer and safer templates
• ranges for more expressive data handling
• coroutines for asynchronous programming
• improvements to lambdas and compile-time programming
• other enhancements that simplify and modernise code
Writing Safer and More Expressive Code
This section focuses on improving code clarity and correctness.
Topics typically include:
• reducing complexity through clearer abstractions
• improving type safety
• avoiding common pitfalls in C++ development
• writing code that is easier to understand and maintain
Performance and Efficiency
Participants learn how modern C++ can be used to optimise performance without sacrificing readability.
Topics typically include:
• balancing performance and maintainability
• efficient use of modern language constructs
• avoiding unnecessary overhead
• writing high-performance code in real-world scenarios
Modern Design Patterns and Practices
This section explores how modern C++ supports better design approaches.
Topics typically include:
• applying modern design patterns
• structuring code for scalability
• improving modularity and reuse
• aligning design with modern C++ capabilities
Working with Legacy Code
Participants learn how to introduce modern C++ into existing systems.
Topics typically include:
• identifying opportunities for modernisation
• refactoring legacy code safely
• introducing new features incrementally
• balancing risk with improvement
Practical Application and Exercises
The course includes hands-on exercises to reinforce learning and build confidence.
Participants will:
• apply modern C++ features to realistic scenarios
• refactor and improve existing code examples
• explore different approaches to solving problems
• gain experience with real-world development patterns
Delivery Approach
This is a hands-on, developer-focused programme designed to deliver practical value.
It includes:
• instructor-led technical sessions
• guided coding exercises
• real-world examples and scenarios
• discussion of best practices and trade-offs
Duration
3 Days (adjust if needed)
Delivery Options
This course can be delivered as:
• a public scheduled course
• a private team programme
• virtual delivery
• on-site classroom training
Outcomes
After completing this course, participants will be able to:
• use C++20 features confidently in real-world development
• write cleaner, safer, and more maintainable code
• improve performance using modern techniques
• modernise existing codebases effectively
• apply modern C++ principles to complex software systems
Additional Notes
This programme is ideal for teams looking to modernise their C++ development practices and take advantage of the capabilities introduced in recent language standards.
Participants are encouraged to bring examples from their own codebases where possible, allowing the learning to be applied directly to their work.
Senior Software Architect & Development Instructor
Microsoft MVP | 30+ Years Engineering Experience
This course is presented by Peter
Peter brings more than 30 years of experience in software architecture, development, and technical training, helping engineering teams design, modernise, and improve complex systems across enterprise, cloud, embedded, and data-driven environments.
He has been exploring the role of AI in software engineering since the early wave of modern AI tooling, focusing on how development teams can use AI productively while maintaining strong engineering standards, governance, and architectural discipline.
Alongside his engineering background, Peter has a Master’s level background in Mathematics and is currently working towards a PhD, bringing deep analytical insight into how AI systems behave and how engineers should evaluate and integrate them responsibly.




