If you are spending significant time in your programming career modifying text. Not just code, but structural editing of text, heavy lifting text. You are making repeated modifications that confirm to a pattern, learning vim macros are something you must absolutely consider, they can make > O(n) editing steps happen in O(1) steps.
Certainly both. SLiSW was eye-opening. At the time, all I knew was PHP and JavaScript. For the past several years I have been writing Haskell almost exclusively.