Professional C++
1312 pages
English
PDF
4.5

Professional C++

Professional C++

Author:

Year:

Summary:

Introduction

The book "Professional C++" (5th Edition) by Marc Gregoire is not just another textbook on the language. It is a fundamental work that is deservedly considered one of the best books for those who have already mastered the basics of C++ and want to move to a professional level. Published in 2021, the book covers the C++17 and C++20 standards, making it as relevant as possible at the time of writing. The volume of 1312 pages may scare a beginner, but for an experienced developer, it is a real treasure trove of knowledge.

What is this book about?

The book is divided into several logical parts that consistently immerse the reader in the world of professional C++ development. The author does not simply list the capabilities of the language, but teaches you to think like an engineer designing reliable and efficient systems. The main topics include:

  • Modern C++ (C++17/20): a detailed breakdown of new features: structured bindings, if constexpr, concepts, ranges, coroutines, modules.
  • Memory Management: smart pointers, RAII, move semantics, allocators.
  • STL (Standard Template Library): deep dive into containers, algorithms, iterators, and functors.
  • Multithreading and Asynchrony: threads, mutexes, futures, async, atomic operations.
  • Software Design: design patterns, C++ idioms, SOLID, testing (unit tests, TDD).
  • Network Programming: working with sockets, the Boost.Asio library.
  • Optimization and Performance: profiling, cache efficiency, inlining.

Who is this book for?

The book is aimed at intermediate and advanced programmers who already have experience with C++ (at least a year or two) and want to systematize their knowledge, learn modern standards, and master best practices. For beginners just starting to learn C++, the book will seem too difficult — it is better to start with Lippman's "C++ Primer" or Stroustrup's "The C++ Programming Language". However, after gaining basic knowledge, this book will be the ideal next step.

What will the reader learn?

  • How to write code that is easy to maintain and extend.
  • How to effectively use smart pointers and avoid memory leaks.
  • How to apply move semantics to improve performance.
  • How to work with multithreading and avoid data races.
  • How to use the latest C++20 features (concepts, ranges, coroutines).
  • How to design classes and hierarchies considering SOLID principles.
  • How to write unit tests and integrate testing into the development process.
  • How to optimize code at the level of algorithms and data structures.

Strengths of the book

The first thing that catches your eye is the structure. Each chapter begins with a brief introduction and ends with a summary and exercises. The author uses many code examples that can be tried out immediately. The second is depth. Gregoire is not afraid to delve into the details: he explains not only "how" but also "why" a particular mechanism works. The third is relevance. The book covers C++20, which is rare in such voluminous guides. Finally, practical orientation: the author constantly gives advice on code style, debugging, and profiling.

Who is it recommended for?

I strongly recommend this book to everyone who wants to become an expert in C++. It will be useful for game developers and embedded systems engineers, as well as engineers working on high-load servers or financial applications. If you are preparing for an interview at a major technology company that requires deep knowledge of C++, this book will be your best assistant. The only caveat: do not try to read it in a week. It is better to study one chapter a day, while simultaneously doing the exercises and experimenting.

Recommendations