1. Demand for Skills in the Job Market
Here are the top 10 software skills in job advertisements, according to JobsAdsWatch:
http://www.jobadswatch.co.uk/jobstats/trends/topskillshttp://www.jobadswatch.co.uk/jobstats (Notes: 1. See below about C, I think that is still in demand because of the number of existing applications that use it, but not for new development; 2. SQL and SQL Server would be in demand because these skills would almost always be asked for as secondary skills in a development job, in any main programming language. On their own they would not be a primary skill for developers.)
2. C#
My recommendation is to learn C#.
C#, and the .NET libraries it is built on, are really the only development system for Microsoft Windows Desktop ( PCs ) and Web Servers, in my view.
Reading
The following book could be slightly basic, but is probably a good book for beginners, maybe you could skim it if you find it easy:
Programming in the Key of C#: A Primer for Aspiring Programmers
by Charles Petzold
'Compose your first software applications with programming maestro Charles Petzold.'
http://www.microsoft.com/learning/en/us/book.aspx?ID=6261&locale=en-us Charles Petzold has been on the Windows development book scene since the year dot, and I am sure this is a good book.
Microsoft Press generally do good books, and they are not biased, in my view. You can find others under 'Microsoft Visual C#', here:
http://www.microsoft.com/learning/en/us/training/format-books.aspx Check the history of the author before buying.
3. Other Languages
Don't learn these, you'd be wasting your time, in my opinion:
C and C++: not used for new development except in niche applications, there are already many skilled developers to fill those jobs. These two languages, especially C++, are more complicated than C#, and you could easily get lost, in fact that is why C++ is not used so much now - it's way too complicated for most work!
C# is a sensible simplification and is much more powerful.
You don't need to learn C or C++ before you learn C#. Just go straight for C#.
Visual Basic.NET (VB.NET): A Microsoft competitor for C#, which has the same level of functionality as C#. However, this language has its roots in the Visual Basic stable of languages, and maybe for historical reasons, is still not preferred by many serious developers. For example, Jeffrey Richter and Jon Skeet are two very good and serious writers, but their books only focus on C#.
It would also be easier for a C# developer to learn Java, because the syntax is similar.
Delphi: Used to be popular and was respected in its time, but not really used for new development now.
Pascal: barely used in industry now. Used to be used as an educational tool.
Visual Basic 6 (VB6): This is the original type of Visual Basic, but has now been replaced by Visual Basic.NET, so will be used less and less, and almost certainly not for any new development, just maintenance of existing applications.
Others you could consider:
Java: a very serious language, shoulder-to-shoulder with C#, used on Unix or Linux more than Windows.
Python/Perl: If you're developing scripts, but want something more powerful.
Javascript: Not as related to Java as you might imagine; a popular language, but you won't really be considered a heavy-weight developer if you only know Javascript.
Visual Basic for Applications (VBA): This is a language used for developing applications within MS Office ( Excel, Access, Word etc ). It is a fairly lightweight language, but can be powerful when combined with the Office libraries. C# can now be used instead of VBA in many of these applications ( look for Visual Studio Tools for Office on the web ).
4. C# Development Environment
You can get a free development environment here for C# for Windows:
Microsoft Visual C# 2010 Express
http://www.microsoft.com/express/Windows/ 5. Database
You should learn a database as well: if you're going the C# route, use Microsoft's SQL Server, there is a free version:
http://www.microsoft.com/express/Database/ There are some books under 'SQL Server' at the Microsoft Press link above, and obviously many others. This one might be suitable to start with: 'Microsoft SQL Server 2008 Step by Step'.
6. Summary
C# is Microsoft's strategic language for the next 10 years, at least, I would guess. It has one main development environment ( Visual Studio on Windows ) whereas with Java, there are a potentially confusing array of environments.
C# is a respected and powerful language at the core of Microsoft's future strategy.
7. Important
At the end of the day, you have to make your own decision, and what I recommend based on my experience may not be at all suitable for you. You will need to evaluate all this for yourself to decide what is suitable for you, based on facts your are comfortable with yourself.