I have a few questions that I would like answered from people who have either taught themselves CS subjects or who were physics majors for UG and then went on to grad school in engineering. For reference, I am a rising sophomore physics major in the US, with plans to go to grad school in engineering. My questions are: - I will be required to take at least 2 introductory CS courses as part of my major. Beyond that, would self-studying additional programming languages and taking on small projects through work/internships/volunteering suffice to demonstrate my knowledge beyond those two courses to grad schools or employers? - As a more specific question, the courses taught at my school will be taught in Java and Fortran, but I'd like to teach myself basic programming concepts in C++ over this summer. Would it be alright to write something like "self-taught C++" on my resume, particularly when applying for REUs and the like next summer when I am a rising junior? - Will I have to take a lot of catch-up courses when transitioning from UG physics to graduate engineering, and will it hinder me from receiving my graduate degree on time? - When pursuing a graduate degree in engineering, is there a difference between pursuing a degree for professional engineering certification and a degree more geared towards academic-style research? If so, is it difficult to switch between the two?