Abstraction is a tool that magnifies the force of the human mind. The use of abstraction to make complex ideas manageable is fundamental to our work as programmers and to human culture as a whole. That's why mathematics — the study of abstraction — is so important and powerful.
This is a talk about abstraction: where it comes from, what it's for, and how we can use it to make our programs better.