I agree with everyone here that maths is the frontier of abstraction but here's my two cents: delving into a humanities or social studies discipline you are interested in. I'm a self taught programmer and studied a history major. I was pretty good at history and got to learn a lot in there, but the most important skill I learned there was to manage abstract thoughts and complexity through reading and writing history essays.
I can really see a difference here with my peers in the sense that it takes them a lot more to understand each other's lines of reasoning both in verbal and written speech, and it takes them a bit more to string together complex ideas when they are too far away from what they were taught (this last bit even affects the way
code is written).
I guess any discipline that cares for truthfulness or sound reasoning is useful for this. The most important thing is you enjoy studying it and it conveys complex thoughts. Some other areas besides maths and history I can think of are philosophy, political science, economy and even architecture.
Of course this is N=1, so I'd take this with a grain of salt.
I can really see a difference here with my peers in the sense that it takes them a lot more to understand each other's lines of reasoning both in verbal and written speech, and it takes them a bit more to string together complex ideas when they are too far away from what they were taught (this last bit even affects the way code is written).
I guess any discipline that cares for truthfulness or sound reasoning is useful for this. The most important thing is you enjoy studying it and it conveys complex thoughts. Some other areas besides maths and history I can think of are philosophy, political science, economy and even architecture.
Of course this is N=1, so I'd take this with a grain of salt.