A rabbit hole full of Lisp
Learning the concepts and ideas behind lisp really expanded my horizons as a programmer. For me, that all started with emacs. Though elisp isn't very fast and has some pain points, emacs as a whole gave me an extremely established customizable code base that I could play around and learn in.<p>Though it's cliché and often listed as a negative, emacs really gives the user more than just a program to edit text.