As someone who studied maths before programming, I think the only real predictor is whether you are comfortable with discrete mathematics.
I don't find most mathematics I learned (undergrad + stats/EE at graduate level and above) very useful for programming. There are commonalities of course, in the sense that people who do mathematics understand the notion of abstraction, etc... But what most "real" programming is about boils down to things where mathematics can actually be harmful at first: everything related to the difference between science and engineering. For example, I still have to fight my will to understand most aspects of a problem before solving it. Not that programming should be done without thinking, but you need a much more iterative approach in programming to be successful. The whole notion of prototyping does not really match anything in mathematics, I think.
What makes functional programming interesting nowadays is more linked to those engineering issues. Unless you do very theoretical stuff, functional programming has little to do with maths, and more to do with the typical practial matters of programming.
I don't find most mathematics I learned (undergrad + stats/EE at graduate level and above) very useful for programming. There are commonalities of course, in the sense that people who do mathematics understand the notion of abstraction, etc... But what most "real" programming is about boils down to things where mathematics can actually be harmful at first: everything related to the difference between science and engineering. For example, I still have to fight my will to understand most aspects of a problem before solving it. Not that programming should be done without thinking, but you need a much more iterative approach in programming to be successful. The whole notion of prototyping does not really match anything in mathematics, I think.
What makes functional programming interesting nowadays is more linked to those engineering issues. Unless you do very theoretical stuff, functional programming has little to do with maths, and more to do with the typical practial matters of programming.