If you want to start with understanding the fundamentals, this may be a good place start: https://ocw.mit.edu/courses/1-124j-foundations-of-software-engineering-fall-2000/
Don't fixate on what language to learn. I would find a teaching resource that works for you and follow whatever it is telling you to use. Once you have a specific project in mind is an appropriate time to worry about which language to use.