The Ladder of Abstraction, and so much more....

http://worrydream.com/LadderOfAbstraction/


This subtitle of this post is "A systematic Approach to Interactive Visualization", but I think it's much more conceptual and interesting than that suggestions. It's a critique of the tools we have for building systems, and, even better, is full of suggestions for how they can be improved. It explains the use and benefit of design patterns, algorithms and abstraction in the most interesting and insightful way I've ever come across. To top it off, it's full of super cool interactive examples of what he's talking about that you can play with. 

The author, Bret Victor, seems to be that rare person who not only understand but can explain the most basic principles of both programming and design and how they inform each other. He has a master's degree in Electrical Engineering from Berkeley, has designed over 40 software titles, worked on the interface for the original iPad, and says his short term goals is to revolutionize how people learn understand and create. 

Bring it on!