Learning odyssey

Learning odyssey

I can confidently say that learning is my strongest skill. I’ve self-taught on a vast array of subjects. Here are the materials I’ve employed on my learning odyssey.

Books

Programming

  • How to Design Programs, Second Edition
  • Programming: Principles and Practice Using C++ by Bjarne Stroustrup
  • C++ Primer by Stanley Lippman (In Progress)
  • C++ High Performance by Bjorn Andrist, Viktor Sehr
  • Beautiful C++ by J. Guy Davidson, Kate Gregory
  • The Rust Programming Language by Steve Klabnik, Carol Nichols
  • Crafting Interpreters by Robert Nystrom
  • The C++ Standard Library by Rainer Grimm
  • Embracing Modern C++ Safely by John Lakos

Computer Graphics

  • Game Engine Architecture by Jason Gregory (In Progress)
  • Foundations of Game Engine Development, Volume 2: Rendering by Eric Lengyel
  • WebGPU

Software Engineering

  • The Pragmatic Programmer by Andy Hunt and Dave Thomas
  • Game Programming Patterns by Robert Nystrom
  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann
  • Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
  • Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C. Martin
  • Algorithms Hardcover by Robert Sedgewick
  • 97 Things Every Programmer Should Know: Collective Wisdom from the Experts

Maths and Physics

  • 3D Math Primer for Graphics and Game Development by Fletcher Dunn (In Progress)
  • Game Physics Engine Development: How to Build a Robust Commercial-Grade Physics Engine for your Game by Ian Millington
  • Foundations of Game Engine Development, Volume 1: Mathematics by Eric Lengyel
  • University Physics with Modern Physics, Global Edition by Hugh Young, Roger Freedman

Networking

  • Computer Networks and Internets by Douglas E. Comer

Journals I follow

  • overload
  • C VU


Courses

  • Introduction To Computer Science And Programming In Python, MIT
  • The Missing Semester of Your CS Education, MIT
  • UBCx: How to Code: Simple Data
  • UBCx: How to Code: Complex Data
  • Programming Languages, Part A
  • Programming Languages, Part B
  • Programming Languages, Part C
  • Object-Oriented Design
  • Professional Game Development in C++ and Unreal Engine by Tom Looman
  • CS 4600 Introduction to Computer Graphics
  • 3D Computer Graphics Programming (In Progress)
  • CS/ECE4795 GPU Programming for Video Games
  • Build a Modern Computer from First Principles: From Nand to Tetris
  • Build a Modern Computer from First Principles: From Nand to Tetris Part II
  • Raycasting Engine Programming
  • C++ Game Engine Programming
  • Game Physics Engine Programming