blog

home • APR 25, 2019

banner

Programming is Resource Management

Premature optimization is the root of all evil.
Donald Knuth

We manage four critical fundamental resources when we program computers.

Time

We like to do things as fast as possible. Given that hardware operations take fixed time, the way to increase speed is to come up with algorithms that use the least number of operations.

Space

We have random access memory, internal permanent storage and external permanent storage. We can employ strategies that allow us to optimize computing speed via efficient storage and retrieval.

Labor

The labor inside a computer is represented by the processors. Better labor management includes asking less of each processor and employing strategies for optimal processor collaboration.

Knowledge

We manage the knowledge that we store in our computers. We decide what to keep and how to organize it. The algorithms we use are themselves knowledge.

We need to manage the same resources at a much higher level and at greater sophistication in real life.