-
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.
-
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.
- SRP - The Single Responsibility Principle
- A class should have one, and only one reason to change.
- OCP - The Open Closed Principle
- You should be able to extend a classes behavior, without modifying it.
- LSP - The Liskov Substitution Principle
- Derived classes must be substitutable for their base classes.
- ISP - The Interface Segregation Principle
- Make fine grained interfaces that are client specific.
- DIP - The Dependency Inversion Principle
- Depend on abstractions, not on concretions.
- 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.
-
Object-Oriented Software Engineering: A Use Case Driven Approach, Ivar Jacobson
-
Structured Analysis and System Specification, Tom DeMarco, Yourdon Press Computing Series
-
Object Oriented Software Construction, Bertrand Meyer, Prentice Hall
-
Design Patterns: Elements of Resuable Object-Oriented Software, Gamma, et. al. Addison Wesley
-
Concrete Mathematics: A Foundation for Computer Science, Donald Knuth, et. al Addison Wesley
-
Structure and Interpretation of Computer Programs, Gerald Jay Sussman, Hal Abelson, MIT Press
-
Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin, Pearson Education
-
The Clean Coder: A Code of Conduct for Professional Programmers
-
Growing Object-Oriented Software, Guided by Tests, Steve Freeman, Nat Pryce
-
Domain-Driven Design: Tackling Complexity in the Heart of Software, Eric Evans
-
Refactoring: Improving the Design of Existing Code, Martin Fowler, Kent Beck, Addison-Wesley
-
Extreme Programming Explained: Embrace Change, Kent Beck, Addison-Wesley
-
BDD in Action: Behavior-Driven Development for the Whole Software Lifecycle, John Ferguson Smart