1. Here are the top 10 software skills in job advertisements:
( 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, on their own they would not be a primary skill for developers. )
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.
The following book is probably good for beginners:
Programming in the Key of C#: A Primer for Aspiring Programmers
by Charles Petzold
'Compose your first software applications with programming maestro Charles Petzold.'
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:
Check the history of the author before buying.
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: A Microsoft competitor for C#, but nearly all serious programmers use C#. Not worth it if you can use C#, in my opinion.
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.
Others you could consider:
Java: a very serious language, shoulder-to-shoulder with C#, based on Unix or Linux more than Windows.
Python/Perl: If you're developing scripts, but want something more powerful.
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.
You can get a free development environment here for C# for Windows:
Microsoft Visual C# 2010 Express
You should learn a database as well: if you're going the C# route, use Microsoft's SQL Server, there is a free version:
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'.
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.