I'm starting my undergraduate degree in physical/mathematical sciences at the University of Toronto in the fall. My long-term goal at this point is a career in academia, probably theoretical physics, but I don't want to close any doors on the experimental side. Other than coursework, I would like to volunteer with a research group. Are there any programming languages that I should self-study before I get there? U of T's physics curriculum doesn't seem too heavy on computational physics but I want to be well-prepared. Also - tangentially related - are there any software programs with a steep learning curve that I should start learning now?