Learning More CS, Physics, or Math on side as a Physics and Electrical Engineering major Background and Context: I'm a rising sophomore double majoring in physics and electrical engineering. My research interests lie in quantum computing, theoretical physics, energy (renewable energy and grid-scale energy storage, robotics &amp; AI, and space exploration and tech. I'm just interested in physics and engineering and doing really cool, impactful research. Currently, I spend my time doing robotics and AI/neuroscience research full time at my university. I'm slated to take classes like Advanced Linear Algebra, Intermediate Electrodynamics (uses the Griffiths book), and some electrical engineering classes this upcoming Fall.
Question: My dilemma lies in how I'm spending time on the side to learn more. Physics, Math, CS, etc. are all very interesting to me. In the time outside my robotics research, I'm stuck between deciding whether to advance my mathematical problem solving skills by working through books like the Art and Craft of Problem Solving and learning more combinatorics and graph theory, advance my physics problem solving by working through Morin's Mechanics (if I were to go to advance my physics problem solving skills on the side, should I get a head start on E&amp;M by going through Purcell/Griffiths or advanced mechanics like in Morin Mechanics), or advance my CS skills by doing some more low level programming and learning more in depth about CS like working through the Structures and Interpretation of Computer Programs book and some algorithms or data structures or operating system stuff. What would you guys recommend in order for me to maximize the utility of my learning in my free time and maximizing my chances to gain more intuition in what I'm learning and the research I'm interested in? All seem fun to me, so I'm not sure how to decide. I feel like the CS one would still be relevant to physics because I think it might arm me with a new kind of perspective in physics research (even theoretical physics). I've been trying to go about this with the perspective of doing on the side what I will not learn later in my classes, but I don't know if that's a good way to look at it because I'm not sure if I'm going to be learning mathematical problem solving like in the Art and Craft of Problem Solving book (which goes over olympiad math topics and problems), and maybe if I work more on my physics problem solving now, then when I take those classes later, I can understand the topics a lot deeper/understand it better and go into other related topics. I want to be able to gain the most fundamental skill that will have ripple effects on my other skills, abilities, and research.
Edit: My goal is to prioritize the time I spend on the side learning new things -- rather than splitting up the time on the side for all three of physics, CS, and math as I described in my question, I would want to focus on one area that will serve as the best use of my time compared to the others. All three are equally interesting to me. I am having trouble choosing which to pick. Ideally, I would choose the subject that would serve as best use of my time (I'm talking about perhaps 1-2 hours on the side per day or spending my weekends on it) and improve my skills as a whole -- I guess I'm asking which skills are the most transferrable.
If you want the most fundamental skill, Math is surely the most fundamental as the other sciences are built on top of it to some degree. However, whether the math you learn will impact your future research is debatable. I had a friend with your passion for self study who went off the deep end for about a semester on Group Theory. To my knowledge he hasn't used an ounce of it in his current work, but of course that doesn't mean it was a waste of time.
There is a point after which &quot;getting a head start&quot; has diminishing returns. It's like if you're running a race, but you don't know the course layout, your ability to predict where you should go rapidly diminishes once you leave the starting line. In this case, getting too much of a head start could work against you as you might have fully left the racetrack.
In that case I would simply spend your free time studying what seems most interesting to you in that moment, and let the future take care of itself. If, down the road, you start to think you really do need to brush up on your fundamental CS (or whatever), you can always take the time to study that at that time. The good news is that in most roles you will fill in the future as a scientist or engineer (and many other career paths, too), your job is not to know all the answers, your job is to know how to learn what the answer is.