Lisp lets you to see your source in different light. Haskell makes you rethink expressions. C lets you know how it all works under the hood. Factor makes you think both directions.
There are also languages that set the bar high for you. Ruby for elegance. Prototype or jquery for making complex ugly thing a paradise. Even Perl's CPAN shows you the value of cooperation and modularization.
Even bad languages teach you a lot about ugliness, bad decisions and denial.
The same can be said about quite a few frameworks or even tools. strace makes programs transparent, for example, while tcpdump makes you see, you realize you were blind.
As for math and algorithms, you suddently know enough of them, they're pretty finite.