I'm not unfamiliar with programming, as I've taken multiple (worthless) classes during high school at the local liberal arts college and during my time at my university as well. But in general I'm a noob like yourself, but I've done a shocking amount of time researching this.
For my first real language, I'd choose between Python and Ruby personally. Dabbling in both I'm going forward with Python. Not sure I'll ever devote serious time to Ruby or RoR since Python's environment is the same interpreted, very-high abstraction level as Ruby.
Probably move onto learning a little more about being closer to the iron (C), Java (or ObjC).
I wish I could understand why they came up with C#... too many languages.
C#/.Net = Microsoft's copy of Java.
Any particular reason you want to learn C#?
I've found the beginners resources for Java to be better (especially since its often taught at schools as a beginners language). Plus, its cross-platform.
I would agree, C# is tainted by Microsoft (and this is unfortunate because C# is generally universally liked). You can use C# crossplatform but if I were to take on C# I'd do the official thing (not Mono) or nothing. Unless you have a job lined up to use C#/.Net I wouldn't bother.
It's generally in your best interest to lean towards more 'open source' platforms (not that C# isn't open- but being related to MS it isn't quite as embraced as other choices).
C for lowlevel->Java for intermediate (Java7 performance appears stunning)->Python for rapid application development (high level, slower performance)
If I could snap my fingers and know any two languages and be a master at them, I'd pick Python and C.
Regarding Python, from my work in it so far seems very broad. You can create webapps, use it for scripting (systems or game), crossplatform GUI apps, it's used for hardcore computation by NASA, Youtube is built on it, essentially anything can be done with it. If you're mostly a systems guy like me that has to wear many hats- it's hands down the best choice IMO.
If you're going to be looking at someone elses code, Python is the easiest to read so it's ideal for collaborative work. If you've ever taken a programming class you learned about pseudocode, it's like that but it runs. Just because it's GOOD doesn't mean it's not a noob language or disrespected by programmers though, it's for real. Some professionals view the forced indentation and 1 statement per line as a waste of a developers time. That's fine, as long as I don't have to look at your work or be expected to maintain it. Experts probably have no issue with reading someone's random code, but I do, and I wouldn't want to maintain something I can't easily decipher. Nor would I want to pass on a project I developed, that was hard to understand. To me, that's pretty important and a very nice-to-have for a rapid development language.
Regarding C, it is the basis for most, C++ is more object oriented and thus they had to add two pluses to show how amazingly awesome it is. That said, there's not a lot of uses for C/C++ for those of us who are not career programmers. I have a friend who uses C to program embedded microcontrollers.. that or hardcore game programming in OpenGL or something similar might make it useful.
I'm going to give C a shot sometime, but overall Python and Java should probably be on your shortlist.
Java's a monster, to be respected- holding 16% of all code ever written-
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
You'll see on that list C, Java, C++ and ObjectiveC are the most popular languages in the world. For high level scripting languages, PHP (from my research and every professional developer at my company suggests to avoid) and Python are neck and neck. I'd have to give the blessing to Python. It's just got more respect and it's on it's way up in the world.
If you want something to show you the way, checkout Google Code University. They endorse two languages for teaching at the moment- Python and C++.
http://code.google.com/edu/languages/index.html
Personally, my view is to be well-versed in at least 1 high level language like Python (Ruby is another popular choice but it appears to be losing it's war against Python), and 1 lowlevel language like C. Google Code University reflects this concept. Java could replace C's for for many uses though. Google uses C++, Java and Python.
In my view, with the world going towards webapps + mobile devices, things are really going the way of cutting out the intermediate languages/platforms like C#'s asp.net and Java. People either want rapid development (with decent performance, this is Python), or the most optimized code possible (C/C++ & Java also fills this role).
Something to keep an eye on is Google Go, something Google created because compilation times for C++ can get lengthy (~40+/- min out of the workday multiple times over to test changes), which is why they rely heavily on Python. I'm not sure it will ever leave the hallowed halls of Google, but it is certainly a timesaving, performance environment to work in. It's still in experimental stages, but Go is their contribution to increase productivity like Python but performance of C/C++. This would NOT be a recommended language to study though.
The more I've studied Python the past few weeks, the more I'm becoming sold on the overall arena- Python and the associated frameworks are solid and any serious IT professional (systems, programmer, whatever you do) should know it IMO- makes you very well rounded and teaches all the modern programming concepts. So this is from the view of someone who's been slowly indoctrinated, but I think it's all based on sound info.