I think it's important to remember that there's a lot of different ways to engage with a given paradigm. So for instance, in object oriented programming, there's the untyped object style C++, there's Java, there's Small Talk, there's all of these different languages that give a different perspective on what it means to be object oriented. And the same thing is true in functional programming is there are many, many different people inspired by the idea of a functional programming paradigm, and it's not a crisp definition of what is functional programming. There's a lot of different attitudes and ideas on what it means. And so you explore and play around with a lot of different languages and ways of looking at functional programming.
Like, you can do Scheme, you can do Clojure, you can do Elixir, you can do Haskell, you can go in through all of these other approaches. You can go very high theory, or you can get to very practical cases, like looking at how Lambdas and other things are used in C++. You start somewhere playing around with those ideas and just practice and play with it and just go incrementally and pick one little thing to figure out and then go to the next. And maybe it turns out that Scheme or one of these other languages is a lot more accessible to you. And if it is more accessible, then you'll pick up the ideas a little bit faster, and then you can play with one of the others so you don't have to do whatever is the most popular right now.
Just begin playing with functional programming. The big value you're going to get first is trying to understand the aesthetic, understand the experience and the change in how you engage with problems that can come with a functional paradigm and how that is a tool of thought for your work and then move on from there. Then you'll have skills to be ready to maybe tackle that thing that was confusing to you before I actually did that. Scheme as a language helped me to become a better C programmer because I had tried to learn C before, and I just couldn't figure it out. But when I started practicing with Scheme, suddenly little ideas percolated over.
I started understanding the use, and then I could go back to C and I was like, oh, okay, I've got it. So maybe you just have to flip around a little bit first.