To compensate for my lack of care when initially understanding coding languages (such as Java and C) in the past, I aim to use learncpp as a tool to cover a programming language in detail.
C++ was chosen under the following criteria:
- there are several similar, and popular, languages such as C, C# and Java
- there is plenty of documentation and educational resources
- it's a compiled language that can have low latency
- it's relationship with many hardware components (drivers, FPGAs, etc.)
Firstly, I will read and note each chapter summary. Once a given chapter summary is copied, I will work through the chapter, adding to the summary where I feel is necessary. In this step, I may produce additional documents or pieces of code, which shall be stored in a corresponding folder for future reference.
For convenience, chapter summaries can be accessed below:
Chapter 1 - Basic Syntax
Chapter 2 - Functions and Files
Chapter 3 - Debugging
Chapter 4 - Fundamental Data Types
Chapter 5 - Constants and Strings
Chapter 6 - Standard Operators
Chapter 7 - Scope, Duration and Linkage
Chapter 8 - Control Flow
Chapter 9 - Assertions and Error Handling
Chapter 10 - Type Conversions, Aliases and Deduction
Chapter 11: Function Overloading and Templates
Chapter F: constexpr
and consteval
The following are incomplete:
Chapter 12: Value Categories and References
Chapter 13: Structs and Classes
Chapter 14: Class Features
Chapter 15: Advanced Class Concepts
Chapter 16: std::vector and Arrays
Chapter 17: C-style Arrays
Chapter 18: Optimization Techniques
Chapter 19: Resource Management
Chapter 20: Advanced Functions
Chapter 21: Operator Overloading
Chapter 22: Move Semantics
Chapter 23: Object Relationships
Chapter 24: Inheritance
Chapter 25: Polymorphism
Chapter 26: Template Programming
Chapter 27: Exception Safety
Chapter 28: Input/Output Streams
Along this journey, I have discoverd many valuable resources.
Language guidelines, with sound reasoning:
C++ Core Guidelines
For C++ language reference:
C++ Reference
For active quizzing up to C++23:
C++ Quiz
GetCracked
In depth compiler/compilation info:
Compiler Explorer
C++ Insights
For DSA:
NeetCode's DSA for Beginners
NeetCode's Advanced DSA
LeetCode
For OOP:
NeetCode's Design Patterns
For OOP-style questions:
NeetCode's OOP Design Interview