Recommended Books

One important thing: if you stop studying you will end up being obsolete. Always learn new things for yourself, not for your grades. This is perfectly explained in the book "The Clean Coder: A Code of Conduct for Professional Programmers", one of the best books you can read for your profession.

The following is a list of books that students asked me to write in my courses. It comprises a series of books that I've found useful or interesting, and so I recommend reading for your own personal and professional interest.



Game Development

  • Game Engine Architecture, by Jason Gregory
  • Videogame Storytelling, by Evan Skolnicl
  • The Game Narrative Toolbox, by Heussner et al.
  • Foundations of Game Engine Development, by Eric Lengyel
  • Elevating Game Experiences with Unreal Engine 5, by Marques et al.
  • Blueprints Visual Scripting for Unreal Engine 5, by Romero et al.
  • Multiplayer Game Development with Unreal Engine 5, by Secchi
  • The Advanced Game Narrative Toolbox, by Heussner (ed.)
  • Interactive Stories and Video Game Art, by Solarski
  • Game Physics Engine Development, by Millington
  • The Art of Game Design, by Schell


Computer Graphics

  • Fundamentals of Computer Graphics, by Marschner et al.
  • Foundations of Multidimensional and Metric Data Structures, by Hanan Samet
  • Physically Based Rendering: From Theory to Implementation, by Matt Pharr, Wenzel Jakob, and Greg Humphreys
  • The Finite Element Method Linear Static and Dynamic Finite Element Analysis, Thomas J. R. Hughes

Jobs Interviews

  • Cracking the Coding Interview, by Gayle L. McDowell
  • The Clean Coder: A Code of Conduct for Professional Programmers, by Robert C. Martin

Programming

  • The Algorithm Design Manual, by Steven S. Skiena
  • Advanced Data Structures, by Peter Brass
  • Numerical Recipes (The Art of Scientific Computing), by W. H. Press, et al.
  • Handbook of Data Compression, by David Salomon and Giovanni Motta

Languages

  • The C++ Programming Language, by Bjarne Stroustrup
  • The C Programming Language, by Brian W. Kernighan, and Dennis M. Ritchie
  • Effective Modern C++, by Scott Meyers (and all of his books)
  • Thinking Functionally with Haskell, by by Richard Bird
  • Introduction to 80x86 Assembly Language and Computer Architecture, by Richard C. Detmer
  • Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX, by Daniel Kusswurm
  • ARM Assembly Language: Fundamentals and Techniques, by William Hohl and Christopher Hinds
  • Programming Massively Parallel Processors: A Hands-on Approach, by David B. Kirk, and Wen-mei W. Hwu

Architectures

  • The Intel Microprocessors, by Barry B. Brey
  • Inside the Machine, by Jon Stokes

UI & UX

  • Don't Make Me Think, Revisited, by Steve Krug
  • UX Strategy: How to Devise Innovative Digital Products that People Want, by Jaime Levy
  • The Non-Designer's Design Book, by Robin Williams
  • The Elements of Typographic Style, by Robert Bringhurst
  • Thinking with Type: A Critical Guide for Designers, Writers, Editors, & Students, by Ellen Lupton