I am wondering how someone that is not exclusively interested in mathematics (but nevertheless aims to become a decent applied mathematician), but for example, a theoretical computer scientist, should go about learning higher level mathematics?
Would it be optimal to learn some interesting topics in mathematics that they think they may need ahead of time (in isolation to their field) or would it be better to just learn their field (theoretical CS for example), and dive into learning the relevant math only when encountering some topic that needs it.
I think that learning mathematics "just in time" would be the way to go, since the practicality of the subject is known beforehand and the concepts can be applied immediately, thus reinforcing the learned material. For example, if one takes 2 semesters of advanced linear algebra without practicing it much after that, a year (months even!) later most of the material is forgotten. However, when one only learns linear algebra thoroughly when he discovers that he needs it to complete a project in machine learning, he might learn the mathematics more optimally.
The question arose because I'm considering if I should just take a lot of advanced math courses this semester or concentrate on CS subjects (for example cryptography), and learn the required math individually (for example number theory) when the relevant concepts are encountered.
PS. Mind you, the question really isn't about learning just enough mathematics to understand the CS concepts in hand. It is more about how a computer scientist should go about learning mathematics, when he ALSO aims to become a decent mathematician.