>>11518162Mathematics, always. Computer science is fundamentally about solving problems - code and software skills is exercising your experience as a developer or engineer, but it’s fundamentally not going to teach you how to solve new classes of problems or tackle unstudied problems altogether. Learning languages is not itself a meaningful skill since
1) knowing 1 language from each paradigm gives you familiarity with basic features
2) syntax is something you get acclimated to easily and can be looked up - there are websites like
https://learnxinyminutes.com/ dedicated to this, so you will find that you are left with way too much free time given how trite it is to start learning a language.
2) learning a language in a vacuum doesn’t teach you how to solve problems
3) simply devoting a majority of your time learning languages is not computer science. Solving classes of problems with using combinatorics, algebra, analysis, number theory, optimization theory, etc. is the basis of a foundation in CS. The list goes on as the problems you tackle get more nontrivial, but this is a good base.
A classroom can and should teach you how to do the above, since the only meaningful code experience aside from a personal project or two is done on the job or during an internship for SWE. If you want code experience, I’d say you should look into optimization theory and run tests to see if you implemented sophisticated algorithms correctly.