Reference CPU: Multicore AVX 2 capable
- Compiler / compile units / linker.
- Setup makefile
- Imperative algorithm
- Understand our processor
- bit/byte/word/dword/qword
- registry
- ISA
- Types
- complement 2
- Variables / Constant
- Comments
- Good comments, bad comments
- Naming variables
- Arithmetic operation
- Bitwise operation
- Boolean operation
- Variable scope
- Flow control
- if else
- conditional operator
- switch
- loop
- for
- do while
- while
- c++11 for
-
type promotion / downgrade
-
structs, class
-
array
-
Basic SFML
-
Include header
-
libraries
- Floating point
- float / double
- Functions
- Declaration definition
- Function overloading
- Recursive functions
- Operator function
- Compiling time
- inline function
- constexpr
- enum
- MACROS / DEFINE
- namespace
- typedef / using
- auto
- Memory type, heap, stack
- Pointers / reference
- * & -> operator
- nullptr
- Page fault / pagination and virtual memory
- malloc / free
- new / delete / new[] / delete[]
- Memory leaks
- Ownership / Smart pointer
- Raw pointer usage
- Pointer aliasing
- constructor, destructor
- copy operator, move operator
- Rule of 3, 5, 0
- operator overloading
- inheritance
- Operator overload
- member function
- virtual function
- vtable
- Sorting
- Insertion
- Bubble
- Shell
- Merge
- Quick
- std::sort
- Radix
- List / Heap / hashmap / tree / red black tree
- vector, string, string_view
- iterators
- views
- Debug performance, sad stl libraries
- Memory buffer
- Scratch array
- Metaprogramming templates
- type traits
- Concepts
- Exceptions
- Error code
- std::optional
- asserts
- log
- Behaviour
- Observer
- Singleton
- Let's see our processor more deeply
- Benchmark
- Find bottleneck
- Instruction dependency
- Alignment / Struct Packing
- Review if
- Branch prediction
- conditional operator
- SIMD / AVX
- Cache
- Prefetch
- Memory access pattern
- Data oriented programming
- Threads
- Mutex
- Semaphore
- Conditional variables
- System call
- Atomics
- Spin lock
- Pre-emption
- Thread-local storage
- Light weight threads
- Job scheduler
- Lock free structures
- ring buffer
- message queue
- OOP
- Encapsulation
- Internal consistency
- Inheritance
- Composition
- RAII
- Single responsibility principle
- Safe, fast? Why not both?
- Divide et impera
- Design an ECS