Must-Reads


  • Johnson, R., & Vlissides, J. (1995). Design patterns. Elements of Reusable Object-Oriented Software.
  • Evans, E., & Evans, E. J. (2004). Domain-driven design: tackling complexity in the heart of software.
  • Vernon, V. (2013). Implementing domain-driven design.
  • Beck, K. (2003). Test-driven development: by example.
  • Beck, K. (2000). Extreme programming explained: embrace change.
  • Hofstadter, D. R. (1979). Gödel, Escher, Bach: an eternal golden braid.
  • Aaronson, S. (2013). Quantum computing since Democritus. Cambridge University Press.
  • Deutsch, D. (1998). The fabric of reality.
  • Minsky, M. (1988). Society of mind.
  • Gregory, J. (2018). Game engine architecture.
  • Donal Knuth (1968-2011) - The Art of Computer Programming
  • Kernighan, B. W., & Ritchie, D. M. (2006). The C programming language.
  • Joe Armstrong (2003) - Making reliable distributed systems in the presence of sodware errors (PhD Thesis on Erlang)
  • Liu, C. (2014). The three-body problem (Vol. 1-3).
  • Frank Herbert (1965) - Dune
  • Gibson, W. (2015). Neuromancer (Vol. 1-3).
  • Philip K. Dick (1968) - Do Androids Dream of Electric Sheep?