I think young programmers tend to be focused on the details of the technology of the day. Everything you learn about the specifics of a particular technology is going to change, and technologies will move along. So I think the main advice I have is to focus on principles and ideas, and less so on specifics, because the specifics will change. Spend your time and mental energy on understanding concepts and ideas and focusing on problems.
What I’d add to your list is computer science, which is to say math. One example which comes to mind is how word2vec tells us a fundamental truth about language, because at heart neural networks are applied statistics, which is to say math. Algorithms and data structures are remarkably churn-averse.
Depending on your area of interest, other “forever disciplines” like science, or philosophy may be relevant as well. For instance, most programmers can ignore computer hardware most of the time, but maybe you can’t or don’t want to. That would lead you to electrical engineering, which is to say physics. Maybe this point falls under the umbrella of Rich’s advice to focus on problems. I’m thinking also about design, in the sense of Rich’s talk Design, Composition and Performance: architecting systems and the art of deciding how the human/computer interaction layer should be.
I would look into APL (for instance Dyalog). If lisp is list-based, APL is array-based. There is a of interesting programming techniques here, for instance endless ways of working with indexes as bit-masks, for sorting etc.