>>10956079This is more
>>>/g/ material, but the best thing to do is think about the type of tasks you want to solve. For your first language, I'd suggest getting something good for general purpose and then quickly follow it up with C and a crash course in architecture (berkeley usually has good courses up for this). After picking up the basics to your desired level of specificity, I suggest doing practice problems in SICP just to wrap your mind around how to build software systems and solve problems with limited sets of tools. After doing that for a while, read through Programming Language Pragmatics, which should teach you how the different paradigms work, call structures, and the basics of compilers. This should equip you to pick up any language you desire in the future.
This is purely for ease of learning how to use a language. Problem solving capabilities, mathematics, physics, proof writing, systems level tricks, etc., are all something you'd put under a proper CS education (I mean your own curriculum, programs vary from great to not great). I include physics as I believe a working knowledge of physics up to around classical rigorous mechanics and maybe another topic of your choice is important for any stem student.
t. math + CS double, phys minor