Motivated by the need to cope with floods of data, algorithm design is undergoing profound changes. Self-improvement, online property-preserving filtering, uncertainty, sublinearity and property testing are all parts of the story. I will discuss some of these exciting developments with an emphasis on its geometric aspects.