Programming

Fundamentals

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