I am in the exactly same situation than OP. I tend to think advanced calculus is key to think well: domains, limits, restrictions, functional math. Is that accurate?
Limits are a calculus/Geometry concept. A special case are Cauchy-sequences which model approximations.
Domains (as I know the term) are more of a set theory idea. Not that that matters.
Algebra also seems to be part of thinking well, however, calculus exposed me to patterns that I hadn’t seen in programming all that much. Many of the Algebra patterns I had already been familiar with from programming.