@7
I want to be clear that i (and others) are happy to answer questions, but with the entirety of Google at your fingertips and also being in a stage where typing your exact question into Google is likely to give you an answer in the first result or two , it is probably more fruitful for you to just run a search there.
@8
C# is in demand, but I do still maintain all of my previous voiced objections around how it ties you to a set of tools that has a very bad track record of accessibility, in such a way that you do have a very realistic chance of waking up one day 5 years from now to find out that too bad, all your tools are going to stop working, and there's nothing to be done.
If Microsoft hadn't dropped the ball to a ridiculous degree with Visual Studio 2010, I could perhaps recommend it to people without reservation, but they did and those of us who were using 2008 fine woke up to a world in which things didn't work with screen readers for several years.
I liked C#. I was starting college, before I had really put a lot of programming in. VS 2010 happened. That was the end of C#. it is very easy to shrug this stuff off and say "well it's been good for a while", but when a platform ties you tightly to their tools and half those tools are UI only for one reason or another, you are at their mercy and they don't always care. It puts you one UI rewrite without thought to accessibility away and though Microsoft does pretty good these days that's only until the people who are in charge of it change. But my main point is this isn't hypothetical. It did actually happen once already.
The second worst for this is java, but people in Java land already use multiple IDEs so there are fallbacks, and the tooling is documented enough that you can work out how to do it from the command line (whereas with Microsoft that means reverse engineering literally thousands of lines of MSBuild XML that encode domain specific knowledge). Fortunately most (indeed almost all) languages don't have this problem.
So if I was going to be planning to put the next 5 years into becoming a professional programmer, no, I wouldn't go C#. There's a ton of other options and that's a very big time investment if you're going to run the risk of it going to waste.
@9
The value in haskell is that it teaches you some very deep ways of thinking about stuff that follow you elsewhere, but I've never done a full project in it, nor do I think I ever would. But Rust, Scala, Elixir, and quite a few other languages look to Haskell for inspiration, and they have a lot of very interesting type system stuff that you can't play with in anything else.
I like Kotlin, but unless I tried to do an Android app or suddenly had months of time for audiogame MMO backend beyond what anyone's ever done, I doubt I'll use it. The downside of the JVM is that it makes horrible desktop apps: massive startup times, lots of ram eating, weird UI accessibility bug issues, and surprisingly an even worse story for binding to C than Python.
@10
Though languages are tools, I don't think that languages are tools at the lowest levels of programming experience: your first language or two, you're kind of stuck. Languages become tools once you can handle something that I don't have a good name for, but calling it the learning meta-skill would be a pretty apt way of putting it.
So I do think it's reasonable to expect to spend months at least in your first and maybe also your second language. After that it seems to pick up for people though. But the first few...not so much.
My BlogTwitter: @ajhicks1992