1) If you are a programmer, you don't need to know how to mark art. That's the artist's job. You should know how to make poor quality temporary placeholder art, though. It is important to be able to convey the general idea of what you are looking for - but then to leave the creative work to the artist or musician or whatever without being too micro-managing.

2) You start with the language you know: in this case, C#. It really really does not matter what language you begin with, as long as you stick with it for several good years - plan to stick with it for 3-5 years to really understand programming at a deep level.

If your a C# developer carry on using C#. If your only concerned about windows the SharpDX is the tool of choice (directX for .net). Monogame is also excellent for cross platform but is a little higher level (somewhat like XNA just more upto date). OpenTK is another cross platform choice (OpenGL for .net/mono).
As for art. That depends on if your going solo or part of a team. If your part of a team then it is easy enough to mock up artwork that will do temporarily until the actual artists have done their thing, even if a car ends up being a simple cube and your lovely brick wall is just a smooth orange surface. If your going solo then yeah, your going to need some good quality assets in order to get a half decent game.