About that C# free course. It sounds interesting but it sounds like it's not as professional as C++ or Java. If one was to learn it and go through with it would it then greatly help to learn C++ after?
There isn't any level of "professionalism" when it comes to programming language. It's more about what you ultimately want to create with the language, target platforms, system constraints and so on. As you are just starting out, you're not going to have a basis for that yet so it's not something I would worry about. The important thing is to pick a language, pick your learning materials, and start writing and compiling code.
I've only just started learning C# myself (taking that very course I linked), but I have previously learned C++ and Java. I wouldn't recommend C++ as a first language; as others have mentioned you get a lot more control with it at a lower level, but it's also much easier to make mistakes. This is especially when it comes to memory management. When I learned Java after C++, not having to worry about all the usual memory management stuff was a breath of fresh air. And C# is more akin to Java in that way.
When you first start learning there are a couple things to keep in mind:
1) A lot of the basic programming knowledge isn't specifically to any given language. For example, learning how to structure a program, how to think in terms of programming logic, and good documentation habits are all things you need to learn but will apply to any programming language you use.
2) Just because you start out with one programming language doesn't mean you are forever locked in to using it. You could spend a few months or longer learning C#, then maybe move on to Java or C++. Or even try learning languages in parallel (although I would NOT recommend that if you are just starting out).
The key is to pick something and just start learning.