Skip to content

lavis0/learncpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

C++ Fundamentals

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:

  1. there are several similar, and popular, languages such as C, C# and Java
  2. there is plenty of documentation and educational resources
  3. it's a compiled language that can have low latency
  4. it's relationship with many hardware components (drivers, FPGAs, etc.)

Methodology

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.

Chapter Summaries

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

Supporting resources

Along this journey, I have discoverd many valuable resources.

Language Specific

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

Programming Concepts

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

About

Learning C++ Directory

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages