Study the fundamentals
A series of questions worth being able to answer, and the material that answers them. Originally published in parts.
The machine and the network
- How does computer architecture work?
- How does the internet work?
- How does the HTTP protocol work?
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.