Skip to content

A practical, to-the-point guide to modern C++ with examples using Docker DevContainers (Linux) to become a proficient C++ Engineer. πŸš€

License

Notifications You must be signed in to change notification settings

BenjaminYde/CPP-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

The Modern C++ Guide πŸ“š

πŸ‘‹ Welcome!

This repository is a practical, to-the-point guide for developers looking to master modern C++. Whether you're a beginner taking your first steps or an experienced programmer leveling up, you'll find extensive documentation, best practices and runnable code.

The core philosophy is simple: learn by doing. I get straight to the point so you can spend less time reading and more time programming.

This guide is Markdown, so it is easily opened using Visual Studio Code or Github. It contains extensive documentation, code examples and best practices to help you become a proficient C++ programmer.

πŸš€ Execute Code Examples

Explore the πŸ“ examples directory for interactive C++ code examples, easily executable inside a Docker DevContainer within Visual Studio Code.

This setup ensures a consistent and streamlined coding environment, ideal for learning and experimentation.

πŸ—‚οΈ Table of Contents

πŸ› οΈ CMake & Tooling

πŸ“¦ Containers

πŸ›οΈ Object Oriented Programming (OOP)

πŸ“œ Strings

🧠 Memory Management

🎭 Functions

πŸ”— Typing, Casting & ConstExpr

⚑ Concurrency

🎨 Design Patterns & Idioms

🚧 Todo

  • Design patterns
  • Templates
  • Error handling

πŸ“ References

General

  • CPP Reference
    • This is more of a reference but contains examples and explanations that can serve as a learning resource.
    • Link here
  • Online C++ Compiler
  • C++ Core Guidelines
  • Google C++ Style Guide

Tutorials

  • LearnCpp
    • Devoted to teaching you how to program in C++. Whether you’ve had any prior programming experience or not, the tutorials on this site will walk you through all the steps to write, compile, and debug your C++ programs, all with plenty of examples.
    • Link here
  • GeeksforGeeks
    • Offers a variety of tutorials and exercises ranging from basic to advanced topics.
    • Link here

Interviews

  • C++ Interview Questions and Answers (geeksforgeeks.org)

Books

  • Software Architecture with C++ (Paid)
    • Design modern systems using effective architecture concepts, design patterns, and techniques with C++20. By Adrian Ostrowski & Piotr Gaczkowski, April 2021.
    • Link here
  • Professional C++ (Paid)
    • Professional C++, 5th Edition raises the bar for advanced programming manuals. By Marc Gregoire, Feb 2021.
    • Link here
  • Modern CMake for C++ (Paid)
    • Write comprehensive, professional-standard CMake projects. By Rafal ŚwidziΕ„ski, May 2024.
    • Link here
  • CMake Best Practices (Paid)
    • Write comprehensive, professional-standard CMake projects. By Dominik Berner & Mustafa Kemal Gilor, Aug 2024.
    • Link here
  • Advanced C and C++ Compiling (Paid)
    • Understand the structure and purpose of the binary files produced by the compiler.
    • Link here
  • Learning C++ (Free)
    • Free unaffiliated eBook created from Stack Overflow contributors.
    • Link here
  • More C++ Idioms (Free)
  • C++ Programming: Code patterns design (Free)
  • C++ Notes for Professionals book (Free)