Skip to content

Latest commit

 

History

History
96 lines (67 loc) · 6.57 KB

File metadata and controls

96 lines (67 loc) · 6.57 KB

Fundamentals of Programming


Languages from Scratch

  • Learn C++
    Get a firm grasp on C++ (one of the primary languages for GameDev).

  • Learn C#
    Get a basic understanding of the language of choice for Unity Development.

  • Learn Java
    Get a full understanding of the primary language of Androids and devices everywhere.

  • Learn Kotlin
    The modern language of Google and the Android platform. Secure, Short, and Advanced.

  • Learn Swift
    The new modern language of choice from Apple.


Problem Solving

  • Programming Problems: vol 1
    A Primer for the Technical Interview by Bradley Greene. Close to Fundamentals of Programming 1/2 + Data Structures (and much more). Learn C++ before cracking open this series! Uses “book-friendly” C++, and often code that would not pass a professional review; however the purpose of this book is not to teach C++, but instead to teach problem solving.

  • Programming Problems: vol 2
    Advanced Algorithms by Bradley Greene. Covers Algorithm Analysis, and then much more to provide the tools to pass most whiteboard interview problems presented in Game Development interviews.


Software Engineering and Architecture

Primary References

The SOLID Principle

Cohesion and Coupling

  • Notes by Robert Martin
  • REP - The Release Reuse Equivalency Principle
    • The granule of reuse is the granule of release.
  • CCP - The Common Closure Principle
    • Classes that change together are packaged together.
  • CRP - The Common Reuse Principle
    • Classes that are used together are packaged together.
  • ADP - The Acyclic Dependencies Principle
    • The dependency graph of packages must have no cycles.
  • SDP - The Stable Dependencies Principle
    • Depend in teh direction of stability.
  • SAP - The Stable Abstractions Principle
    • Abstractness increases with stability.

Extended Readings