Describir: How to Think Like a Programmer.