Recommended readings

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 the Mobile Computing course. 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.

Ethics & Interviews

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

Algorithms & Data Structures

  • The Algorithm Design Manual, by Steven S. Skiena
  • Advanced Data Structures, by Peter Brass
  • Numerical Recipes (The Art of Scientific Computing), by William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery
  • Foundations of Multidimensional and Metric Data Structures, by Hanan Samet
  • Game Engine Architecture, by Jason Gregory
  • Handbook of Data Compression, by David Salomon and Giovanni Motta
  • The Finite Element Method Linear Static and Dynamic Finite Element Analysis, Thomas J. R. Hughes
  • Physically Based Rendering: From Theory to Implementation, by Matt Pharr, Wenzel Jakob, and Greg Humphreys


  • 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
  • Programming Massively Parallel Processors: A Hands-on Approach, by David B. Kirk, and Wen-mei W. Hwu


  • Corona SDK Mobile Game Development Beginners Guide, by Michelle M. Fernandez
  • Corona SDK Application Design, by Daniel Williams
  • Xamarin Mobile Application Development: Cross-Platform C# and Xamarin.Forms Fundamentals, by Daniel Hermes
  • Mastering Xamarin.Forms, by Ed Snider


  • 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


  • The Intel Microprocessors, by Barry B. Brey
  • Inside the Machine, by Jon Stokes
  • 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