Having worked only with relatively high-level programming languages so far in my career (Python, MATLAB), I wanted to learn more about the underlying mechanics of how these programmes were interacting with the underlying computer. I decided C++ would be a good language to learn because it teaches me a lot about what is going on 'under the hood', how memory allocation and management works, how algorithms are designed, and what the data structures and functions I had been using until this point were actually doing. I also hope that learning these things will help me write faster, more efficient code and help me when learning other programming languages in the future.
The subfolders within this repository contain the different ways I have been learning C++.
For an introduction to how C++ works, I have been following the excellent and in depth online tutorials found at https://www.learncpp.com/
To practice writing in C++, I am learning how to implement some of the most common data structures (Linked Lists, Heaps, Stacks, ...)
For more practice, I am also learning how to implement various common sorting algorithsm in C++ (Selection, Insertion, Bubble, Quick, ...)
- Big-O Complexity Cheat Sheet - list of common data structures, sorting algorithms, and their complexity
- C++ Tutorial - Excellent thorough introduction to C++