People sometime say that learning Lisp/Scheme has made their thought process better as a programmer. They can solve problems easily or differently because of that.<p>Did you experience something like that after learning any specific programming language? How was it like? What exactly is this mindshift?
I got into functional programming by programming in Scala.. this allowed me to begin to decompose problems that I would have normally used a bunch of hacky loops using the type system and transformations like flatmap, fold, map, etc. This really becomes useful when dealing with async compositions.. which Scala has excellent support for. I'm not an 'expert' at Scala (or anything for that matter), but this also helped me greatly when moving into Rust (which also has excellent functional capabilities and is similar to Scala in that way, IMO).
Learning Lisp in college taught me two things about programming: decomposition and generalization. The language's features (functional programming, first-class functions) made these concepts concrete and practical.<p>And of course the first time you see recursion it's like a magic trick.