CUSTOMISED
Expert-led training for your team
Dismiss
Transforming Software Engineering Capabilities through Expert C++ Training

16 October 2023

Transforming Software Engineering Capabilities through Expert C++ Training

Overview

An American semiconductor supplier company, a leader in the industry, wanted to provide their software engineering team based in London with expert C++ training. They partnered with JBI Training, a technical training company, to deliver a comprehensive 4-day C++ course tailored to their engineers' experience levels.

The goals were to expand the engineers' knowledge of modern C++ development techniques, equip them with skills to write more robust and efficient C++ code, and provide best practices for avoiding common C++ pitfalls. Given the critical systems the team builds, having a deep understanding of C++ would allow them to fully utilize its capabilities while minimizing bugs and security flaws.

The carefully designed course curriculum covered a wide range of topics:

  • C++ data types, operators, variables, functions
  • Pointers, arrays, strings, references
  • Memory management, RAII, smart pointers
  • Classes, inheritance, polymorphism
  • Templates, STL containers and algorithms
  • Exception handling, error management
  • Multi-threaded programming techniques
  • I/O streams, file handling
  • Debugging with GDB
  • C++ standard library features
  • Modern C++17/20 features

The training was led by  senior C++ expert and instructor with over 15 years industry experience. His engaging and humorous teaching style combined with deep technical knowledge delivered a rewarding learning experience.

Hands-on Exercises and Feedback

A key aspect of the training was the hands-on coding exercises after each module. These allowed the engineers to immediately apply what they had learned to write, compile, and debug C++ programs.

The exercises gradually increased in complexity, building real competence. One example was using smart pointers like unique_ptr to manage dynamically allocated memory rather than raw pointers, a common source of bugs. Another was practicing RAII by writing a class that acquired and released a system resource in its constructor/destructor.

The engineers shared their solutions and discussed them with the instructor and each other to reinforce concepts. He provided expert feedback and tips for improvement.

To facilitate the coding exercises, the team used the onlineGDB site. This browser-based IDE allowed them to quickly write, compile, run, and debug C++ code without any environment setup. It was easy to share code snippets and provide live debugging assistance.

Outcome and Benefits

The intensive 4-day training was highly effective at expanding the software engineers' C++ skills. The layered curriculum structure built their knowledge incrementally while drilling key concepts through practical exercises.

In their feedback forms, the engineers rated the training 10/10 on all aspects - instructor, presentation, content, and structure. They praised the instructors outstanding teaching abilities and knowledgeable explanations of complex topics. The hands-on nature kept them continuously engaged.

Here are some of the benefits and outcomes highlighted:

  • Greatly expanded C++ knowledge to utilize its full capabilities
  • Learned modern C++ techniques to write more robust code
  • Better understanding of memory management and preventing leaks/crashes
  • Can identify and avoid common C++ pitfalls and anti-patterns
  • Improved skills for writing high-performance multi-threaded code
  • Confidence using advanced C++ features like templates effectively
  • Familiarity with the standard library to reduce reinvention
  • Techniques for debugging and testing C++ code thoroughly

The software team lead was very pleased with the training's impact. He noticed engineers applying what they had learned right away in their current projects. Code reviews also showed increased use of smart pointers, RAII, and other modern practices.

The lead planned to continue leveraging JBI's experts to provide follow-on advanced C++ courses. Potential future topics included:

  • Multi-threading - synchronization, locks, atomics
  • C++20 features - modules, coroutines, concepts
  • Optimization - caches, branch prediction, data-oriented design
  • Graphics - Vulkan, Direct3D, OpenGL ES
  • Games development - Unreal, Unity, Cocos2d

In addition, the engineers suggested these other JBI courses would be valuable: Python, Professional Code Practices. They also recommended advanced or follow-up C++ training on more complex topics as well as courses in  Information Security, Python Machine Learning, DevOps Introduction, and more.

By investing in continuous C++ training, he aims to build one of the most skilled and capable software engineering teams to create performant systems powering their cutting-edge products.

Conclusion

This case study showed the significant benefits of partnering with training experts like JBI for technical upskilling. Their well-structured C++ course delivered an excellent learning experience that greatly expanded the software engineers' skills.

The company is now empowered to develop software assets that fully leverage C++ capabilities. Their talented engineers can craft robust, high-performance systems to help the semiconductor company continue delivering innovative solutions to customers worldwide.

CONTACT
+44 (0)20 8446 7555

[email protected]

SHARE

 

Copyright © 2024 JBI Training. All Rights Reserved.
JB International Training Ltd  -  Company Registration Number: 08458005
Registered Address: Wohl Enterprise Hub, 2B Redbourne Avenue, London, N3 2BS

Modern Slavery Statement & Corporate Policies | Terms & Conditions | Contact Us

POPULAR

Rust training course                                                                          React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                            C++ training course

Power Automate training course                               Clean Code training course