Purpose + Audience
New C/C++ programmers, or developers with past experience with C/C++ but who are looking to refresh their knowledge. I pulled this together to share with some co-workers ramping up on C++, but it’s a rather general set of resources, and is useful more broadly.
C Basics Videos
Class/struct layout
Pointers
Pointers + memory -
Casting -
C++ Basics Videos
Const -
Special member functions (Copy + Move constructors + assignment operators) -
See “Basic” properties here - https://en.cppreference.com/w/cpp/named_req
RAII + Rule of Zero -
Value categories (lvalues vs. rvalues) -
Move semantics -
Smart pointers -
Overload resolution -
Pre-processor -
Class and function templates (basics) -
C++ Advanced Videos
Thinking like an optimizer -
Low latency trading system techniques -
Design for performance -
C++ abstract machine -
Undefined behavior -
Class design -
Class design pt 2 -
Lockless MPMC queue -
Debugging theory -
Compiling + linking -
Books
Effective C++ - https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876
K&R C Programming - https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628
Expert C Programming: Deep Secrets - https://www.amazon.com/Expert-C-Programming-Deep-Secrets-ebook-dp-B00E0LASCU/dp/B00E0LASCU
Tools
Compiler Explorer - godbolt.org
Useful for understanding if a piece of code compiles, and what assembly is generated
This is so good 💯.