This is kind of a weird question, but in your education as a programmer were you ever taught anything that you would describe as a "dimensional shift" in your thinking and if so, what was it?
By "dimensional shift", I mean something deeply profound and different that completely changed the way in which you looked at things.
Not programming, but I'd offer thinking in infinitesimals from math as example.
@dabeaz Functional programming, Haskell style