Yes, but most of the time, just learning a language is often quickly a chore if you're not learning useful things for future projects, and doing something you like helps a LOT to learn a language.
So yes, I'd say C# is probably a good candidate. F# if you want something different (functional programming) and can live with more troubles when turning your code into actual apps (I'd argue learning at least a functional language is really useful, and fun, but that may not be your first objective).
I must say that Java probably fits the bill as well, but since I'm allergic to the language, I can't decently back it, even if I'm honest to recognize it's a possibility
Python (3k
) is nice, easy to learn, and has a bunch of modules, so it's suitable to apps (with doesn't require performances) but will fail for phone apps. I'm not that fond of Python for huge projects, but you won't probably tackle 10k+ lines project at first...
I wouldn't advise to go C++ first, but should you go C++, I'd strongly advice you find a good modern C++ book (like C++ x14). Try to directly jump on the more recent, sanest syntax, so you directly get good habits (though that means finding examples online trickier)
Well, in programming, academic degrees don't mean much, short ones even less. I've seen people from the best CS schools that are awfuly bad.
The kind that try to convert an int (containing a decimal value) into an int (containing an hexadecimal value) by using printf to a buffer, doing the conversion in the string, and reading the hex string (true story, and yes, that's the identity function, but unfortunately, it was buggy as hell on top of it... And they were 2 or 3, and worked two days on this)
No degree will comme anywhere close to a portfolio... I'm not recruiting people, but I'd guess it can be seen as filling for someone with very little actual experience. But I may be as old-school as cpp_is_king...