A series of questions worth being able to answer, and the material that answers them. Originally published in parts.

The machine and the network

Required reading:

  • The Pragmatic Programmer
  • Refactoring
  • Extreme Programming
  • Working Effectively with Legacy Code
  • The Mythical Man-Month
  • Designing Data-Intensive Applications
  • Algorithms
  • Design Patterns

Data structures and algorithms

Data structures: why does the way something is stored completely change the way it is found?

Algorithms: knowing what to do, or how to do it? Would you rather have a fast solution or a correct one? What happens if you repeat the same simple action a million times?

  • How does a programming language work?

There are a good few months of study in this section alone.

Databases, version control and types

  • How does a database work? (Database Internals, How Relational Databases Work)
  • How does Git work?
  • How does a type system work? (awesome-type-theory)

Infrastructure


Do not stop studying.