Skip to content
Fundamentals
- Variables (declaration, scope, lifetime)
- Operators (arithmetic, comparison, logical)
- Control Flow (
if
, else
, switch
, case
)
- Loops (
for
, while
, do-while
, foreach
)
- Functions / Methods (params, return, overloading)
Object-Oriented Programming
- Classes & Objects
- Encapsulation
- Inheritance
- Polymorphism
- Interfaces vs Abstract Classes
- Composition over Inheritance
- Access Modifiers (
public
, private
, protected
)
Advanced Flow Control
- Recursion
- Coroutines / Async
- Callbacks & Delegates
- Events & Event Dispatching
- Exception Handling
- State Machines
Memory & Performance
- Garbage Collection
- Memory Allocation & Pooling
- Stack vs Heap
- Value vs Reference Types
- Profiling & Optimization
Data Structures
- Arrays & Lists
- Dictionaries / HashMaps
- Stacks & Queues
- Graphs
- Trees / Binary Trees / Tries
- Linked Lists
Programming Tools / Concepts
- Enums
- Structs
- Lambdas & Anonymous Functions
- Properties vs Fields
- Serialization / Deserialization
- Reflection
Game Design Patterns
- MVC / MVVM / ECS (Entity-Component-System)
- Singletons (when to use and when not to)
- Service Locator Pattern
- Observer Pattern
- Command Pattern
- Factory Pattern
- Dependency Injection
Multithreading & Async
- Threads / Tasks
- Async/Await
- Locks, Mutexes, Semaphores
- Race Conditions
- Thread-safe Design
Game-Specific Systems
- Input Management
- Scene Management
- Physics / Collision Detection
- Animation Controllers
- Networking & RPC
- Object Pooling
- Save/Load Systems
- Scriptable Objects (Unity-specific)
Math-Focused Concepts
- Vector Math
- Matrices & Transforms
- Dot & Cross Product
- Quaternion Rotations
- Slerp / Lerp
- Raycasting / Line Intersections
- Collision Volumes (AABB, OBB, Spheres)
Modular & Reusable Code
- Generic Programming
- Reusable Systems & Components
- Custom Editor Tools
- Scripting APIs for Mods
Version Control & Code Quality
- Git & GitHub/GitLab
- Branching / Merging / Rebase
- Clean Code Principles
- Unit Testing
- Integration Testing
- Debugging Strategies